diff options
author | Paulino Michelazzo <paulino@michelazzo.com.br> | 2016-10-18 22:48:23 +0200 |
---|---|---|
committer | Paulino Michelazzo <paulino@michelazzo.com.br> | 2016-10-18 22:48:23 +0200 |
commit | 99731f0bb1f6fd2815eeb9af504ce86df927657b (patch) | |
tree | b080efc608d2bbd52b77a4a0067402007f50c5a8 /src/Wallabag | |
parent | 3a3c6b866b52721431bed22426d9abfcd0d2dfe0 (diff) | |
parent | 7180aaed45dce62e40620a9e4b202526ebd6a3bb (diff) | |
download | wallabag-99731f0bb1f6fd2815eeb9af504ce86df927657b.tar.gz wallabag-99731f0bb1f6fd2815eeb9af504ce86df927657b.tar.zst wallabag-99731f0bb1f6fd2815eeb9af504ce86df927657b.zip |
Merge remote-tracking branch 'wallabag/master'
Diffstat (limited to 'src/Wallabag')
235 files changed, 5158 insertions, 20760 deletions
diff --git a/src/Wallabag/AnnotationBundle/Entity/Annotation.php b/src/Wallabag/AnnotationBundle/Entity/Annotation.php index 90ee7c2d..c48d8731 100644 --- a/src/Wallabag/AnnotationBundle/Entity/Annotation.php +++ b/src/Wallabag/AnnotationBundle/Entity/Annotation.php | |||
@@ -7,6 +7,7 @@ use JMS\Serializer\Annotation\ExclusionPolicy; | |||
7 | use JMS\Serializer\Annotation\Exclude; | 7 | use JMS\Serializer\Annotation\Exclude; |
8 | use JMS\Serializer\Annotation\VirtualProperty; | 8 | use JMS\Serializer\Annotation\VirtualProperty; |
9 | use JMS\Serializer\Annotation\SerializedName; | 9 | use JMS\Serializer\Annotation\SerializedName; |
10 | use JMS\Serializer\Annotation\Groups; | ||
10 | use Wallabag\UserBundle\Entity\User; | 11 | use Wallabag\UserBundle\Entity\User; |
11 | use Wallabag\CoreBundle\Entity\Entry; | 12 | use Wallabag\CoreBundle\Entity\Entry; |
12 | 13 | ||
@@ -33,6 +34,8 @@ class Annotation | |||
33 | * @var string | 34 | * @var string |
34 | * | 35 | * |
35 | * @ORM\Column(name="text", type="text") | 36 | * @ORM\Column(name="text", type="text") |
37 | * | ||
38 | * @Groups({"entries_for_user", "export_all"}) | ||
36 | */ | 39 | */ |
37 | private $text; | 40 | private $text; |
38 | 41 | ||
@@ -54,6 +57,8 @@ class Annotation | |||
54 | * @var string | 57 | * @var string |
55 | * | 58 | * |
56 | * @ORM\Column(name="quote", type="string") | 59 | * @ORM\Column(name="quote", type="string") |
60 | * | ||
61 | * @Groups({"entries_for_user", "export_all"}) | ||
57 | */ | 62 | */ |
58 | private $quote; | 63 | private $quote; |
59 | 64 | ||
@@ -61,6 +66,8 @@ class Annotation | |||
61 | * @var array | 66 | * @var array |
62 | * | 67 | * |
63 | * @ORM\Column(name="ranges", type="array") | 68 | * @ORM\Column(name="ranges", type="array") |
69 | * | ||
70 | * @Groups({"entries_for_user", "export_all"}) | ||
64 | */ | 71 | */ |
65 | private $ranges; | 72 | private $ranges; |
66 | 73 | ||
diff --git a/src/Wallabag/CoreBundle/Controller/DeveloperController.php b/src/Wallabag/ApiBundle/Controller/DeveloperController.php index d85ba5ee..5a36a260 100644 --- a/src/Wallabag/CoreBundle/Controller/DeveloperController.php +++ b/src/Wallabag/ApiBundle/Controller/DeveloperController.php | |||
@@ -1,12 +1,12 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Wallabag\CoreBundle\Controller; | 3 | namespace Wallabag\ApiBundle\Controller; |
4 | 4 | ||
5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | 5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; |
6 | use Symfony\Component\HttpFoundation\Request; | 6 | use Symfony\Component\HttpFoundation\Request; |
7 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | 7 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; |
8 | use Wallabag\ApiBundle\Entity\Client; | 8 | use Wallabag\ApiBundle\Entity\Client; |
9 | use Wallabag\CoreBundle\Form\Type\ClientType; | 9 | use Wallabag\ApiBundle\Form\Type\ClientType; |
10 | 10 | ||
11 | class DeveloperController extends Controller | 11 | class DeveloperController extends Controller |
12 | { | 12 | { |
@@ -21,7 +21,7 @@ class DeveloperController extends Controller | |||
21 | { | 21 | { |
22 | $clients = $this->getDoctrine()->getRepository('WallabagApiBundle:Client')->findAll(); | 22 | $clients = $this->getDoctrine()->getRepository('WallabagApiBundle:Client')->findAll(); |
23 | 23 | ||
24 | return $this->render('WallabagCoreBundle:Developer:index.html.twig', [ | 24 | return $this->render('@WallabagCore/themes/common/Developer/index.html.twig', [ |
25 | 'clients' => $clients, | 25 | 'clients' => $clients, |
26 | ]); | 26 | ]); |
27 | } | 27 | } |
@@ -49,16 +49,17 @@ class DeveloperController extends Controller | |||
49 | 49 | ||
50 | $this->get('session')->getFlashBag()->add( | 50 | $this->get('session')->getFlashBag()->add( |
51 | 'notice', | 51 | 'notice', |
52 | 'flashes.developer.notice.client_created' | 52 | $this->get('translator')->trans('flashes.developer.notice.client_created', ['%name%' => $client->getName()]) |
53 | ); | 53 | ); |
54 | 54 | ||
55 | return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', [ | 55 | return $this->render('@WallabagCore/themes/common/Developer/client_parameters.html.twig', [ |
56 | 'client_id' => $client->getPublicId(), | 56 | 'client_id' => $client->getPublicId(), |
57 | 'client_secret' => $client->getSecret(), | 57 | 'client_secret' => $client->getSecret(), |
58 | 'client_name' => $client->getName(), | ||
58 | ]); | 59 | ]); |
59 | } | 60 | } |
60 | 61 | ||
61 | return $this->render('WallabagCoreBundle:Developer:client.html.twig', [ | 62 | return $this->render('@WallabagCore/themes/common/Developer/client.html.twig', [ |
62 | 'form' => $clientForm->createView(), | 63 | 'form' => $clientForm->createView(), |
63 | ]); | 64 | ]); |
64 | } | 65 | } |
@@ -80,7 +81,7 @@ class DeveloperController extends Controller | |||
80 | 81 | ||
81 | $this->get('session')->getFlashBag()->add( | 82 | $this->get('session')->getFlashBag()->add( |
82 | 'notice', | 83 | 'notice', |
83 | 'flashes.developer.notice.client_deleted' | 84 | $this->get('translator')->trans('flashes.developer.notice.client_deleted', ['%name%' => $client->getName()]) |
84 | ); | 85 | ); |
85 | 86 | ||
86 | return $this->redirect($this->generateUrl('developer')); | 87 | return $this->redirect($this->generateUrl('developer')); |
@@ -95,6 +96,6 @@ class DeveloperController extends Controller | |||
95 | */ | 96 | */ |
96 | public function howtoFirstAppAction() | 97 | public function howtoFirstAppAction() |
97 | { | 98 | { |
98 | return $this->render('WallabagCoreBundle:Developer:howto_app.html.twig'); | 99 | return $this->render('@WallabagCore/themes/common/Developer/howto_app.html.twig'); |
99 | } | 100 | } |
100 | } | 101 | } |
diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php index af24e498..9997913d 100644 --- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php +++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php | |||
@@ -7,7 +7,7 @@ use Hateoas\Configuration\Route; | |||
7 | use Hateoas\Representation\Factory\PagerfantaFactory; | 7 | use Hateoas\Representation\Factory\PagerfantaFactory; |
8 | use Nelmio\ApiDocBundle\Annotation\ApiDoc; | 8 | use Nelmio\ApiDocBundle\Annotation\ApiDoc; |
9 | use Symfony\Component\HttpFoundation\Request; | 9 | use Symfony\Component\HttpFoundation\Request; |
10 | use Symfony\Component\HttpFoundation\Response; | 10 | use Symfony\Component\HttpFoundation\JsonResponse; |
11 | use Symfony\Component\Routing\Generator\UrlGeneratorInterface; | 11 | use Symfony\Component\Routing\Generator\UrlGeneratorInterface; |
12 | use Symfony\Component\Security\Core\Exception\AccessDeniedException; | 12 | use Symfony\Component\Security\Core\Exception\AccessDeniedException; |
13 | use Wallabag\CoreBundle\Entity\Entry; | 13 | use Wallabag\CoreBundle\Entity\Entry; |
@@ -23,6 +23,58 @@ class WallabagRestController extends FOSRestController | |||
23 | } | 23 | } |
24 | 24 | ||
25 | /** | 25 | /** |
26 | * Check if an entry exist by url. | ||
27 | * | ||
28 | * @ApiDoc( | ||
29 | * parameters={ | ||
30 | * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"}, | ||
31 | * {"name"="urls", "dataType"="string", "required"=false, "format"="An array of urls (?urls[]=http...&urls[]=http...)", "description"="Urls (as an array) to check if it exists"} | ||
32 | * } | ||
33 | * ) | ||
34 | * | ||
35 | * @return JsonResponse | ||
36 | */ | ||
37 | public function getEntriesExistsAction(Request $request) | ||
38 | { | ||
39 | $this->validateAuthentication(); | ||
40 | |||
41 | $urls = $request->query->get('urls', []); | ||
42 | |||
43 | // handle multiple urls first | ||
44 | if (!empty($urls)) { | ||
45 | $results = []; | ||
46 | foreach ($urls as $url) { | ||
47 | $res = $this->getDoctrine() | ||
48 | ->getRepository('WallabagCoreBundle:Entry') | ||
49 | ->findByUrlAndUserId($url, $this->getUser()->getId()); | ||
50 | |||
51 | $results[$url] = false === $res ? false : true; | ||
52 | } | ||
53 | |||
54 | $json = $this->get('serializer')->serialize($results, 'json'); | ||
55 | |||
56 | return (new JsonResponse())->setJson($json); | ||
57 | } | ||
58 | |||
59 | // let's see if it is a simple url? | ||
60 | $url = $request->query->get('url', ''); | ||
61 | |||
62 | if (empty($url)) { | ||
63 | throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$this->getUser()->getId()); | ||
64 | } | ||
65 | |||
66 | $res = $this->getDoctrine() | ||
67 | ->getRepository('WallabagCoreBundle:Entry') | ||
68 | ->findByUrlAndUserId($url, $this->getUser()->getId()); | ||
69 | |||
70 | $exists = false === $res ? false : true; | ||
71 | |||
72 | $json = $this->get('serializer')->serialize(['exists' => $exists], 'json'); | ||
73 | |||
74 | return (new JsonResponse())->setJson($json); | ||
75 | } | ||
76 | |||
77 | /** | ||
26 | * Retrieve all entries. It could be filtered by many options. | 78 | * Retrieve all entries. It could be filtered by many options. |
27 | * | 79 | * |
28 | * @ApiDoc( | 80 | * @ApiDoc( |
@@ -34,10 +86,11 @@ class WallabagRestController extends FOSRestController | |||
34 | * {"name"="page", "dataType"="integer", "required"=false, "format"="default '1'", "description"="what page you want."}, | 86 | * {"name"="page", "dataType"="integer", "required"=false, "format"="default '1'", "description"="what page you want."}, |
35 | * {"name"="perPage", "dataType"="integer", "required"=false, "format"="default'30'", "description"="results per page."}, | 87 | * {"name"="perPage", "dataType"="integer", "required"=false, "format"="default'30'", "description"="results per page."}, |
36 | * {"name"="tags", "dataType"="string", "required"=false, "format"="api,rest", "description"="a list of tags url encoded. Will returns entries that matches ALL tags."}, | 88 | * {"name"="tags", "dataType"="string", "required"=false, "format"="api,rest", "description"="a list of tags url encoded. Will returns entries that matches ALL tags."}, |
89 | * {"name"="since", "dataType"="integer", "required"=false, "format"="default '0'", "description"="The timestamp since when you want entries updated."}, | ||
37 | * } | 90 | * } |
38 | * ) | 91 | * ) |
39 | * | 92 | * |
40 | * @return Response | 93 | * @return JsonResponse |
41 | */ | 94 | */ |
42 | public function getEntriesAction(Request $request) | 95 | public function getEntriesAction(Request $request) |
43 | { | 96 | { |
@@ -49,10 +102,12 @@ class WallabagRestController extends FOSRestController | |||
49 | $order = $request->query->get('order', 'desc'); | 102 | $order = $request->query->get('order', 'desc'); |
50 | $page = (int) $request->query->get('page', 1); | 103 | $page = (int) $request->query->get('page', 1); |
51 | $perPage = (int) $request->query->get('perPage', 30); | 104 | $perPage = (int) $request->query->get('perPage', 30); |
105 | $tags = $request->query->get('tags', ''); | ||
106 | $since = $request->query->get('since', 0); | ||
52 | 107 | ||
53 | $pager = $this->getDoctrine() | 108 | $pager = $this->getDoctrine() |
54 | ->getRepository('WallabagCoreBundle:Entry') | 109 | ->getRepository('WallabagCoreBundle:Entry') |
55 | ->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order); | 110 | ->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order, $since, $tags); |
56 | 111 | ||
57 | $pager->setCurrentPage($page); | 112 | $pager->setCurrentPage($page); |
58 | $pager->setMaxPerPage($perPage); | 113 | $pager->setMaxPerPage($perPage); |
@@ -60,12 +115,25 @@ class WallabagRestController extends FOSRestController | |||
60 | $pagerfantaFactory = new PagerfantaFactory('page', 'perPage'); | 115 | $pagerfantaFactory = new PagerfantaFactory('page', 'perPage'); |
61 | $paginatedCollection = $pagerfantaFactory->createRepresentation( | 116 | $paginatedCollection = $pagerfantaFactory->createRepresentation( |
62 | $pager, | 117 | $pager, |
63 | new Route('api_get_entries', [], UrlGeneratorInterface::ABSOLUTE_URL) | 118 | new Route( |
119 | 'api_get_entries', | ||
120 | [ | ||
121 | 'archive' => $isArchived, | ||
122 | 'starred' => $isStarred, | ||
123 | 'sort' => $sort, | ||
124 | 'order' => $order, | ||
125 | 'page' => $page, | ||
126 | 'perPage' => $perPage, | ||
127 | 'tags' => $tags, | ||
128 | 'since' => $since, | ||
129 | ], | ||
130 | UrlGeneratorInterface::ABSOLUTE_URL | ||
131 | ) | ||
64 | ); | 132 | ); |
65 | 133 | ||
66 | $json = $this->get('serializer')->serialize($paginatedCollection, 'json'); | 134 | $json = $this->get('serializer')->serialize($paginatedCollection, 'json'); |
67 | 135 | ||
68 | return $this->renderJsonResponse($json); | 136 | return (new JsonResponse())->setJson($json); |
69 | } | 137 | } |
70 | 138 | ||
71 | /** | 139 | /** |
@@ -77,7 +145,7 @@ class WallabagRestController extends FOSRestController | |||
77 | * } | 145 | * } |
78 | * ) | 146 | * ) |
79 | * | 147 | * |
80 | * @return Response | 148 | * @return JsonResponse |
81 | */ | 149 | */ |
82 | public function getEntryAction(Entry $entry) | 150 | public function getEntryAction(Entry $entry) |
83 | { | 151 | { |
@@ -86,7 +154,7 @@ class WallabagRestController extends FOSRestController | |||
86 | 154 | ||
87 | $json = $this->get('serializer')->serialize($entry, 'json'); | 155 | $json = $this->get('serializer')->serialize($entry, 'json'); |
88 | 156 | ||
89 | return $this->renderJsonResponse($json); | 157 | return (new JsonResponse())->setJson($json); |
90 | } | 158 | } |
91 | 159 | ||
92 | /** | 160 | /** |
@@ -102,7 +170,7 @@ class WallabagRestController extends FOSRestController | |||
102 | * } | 170 | * } |
103 | * ) | 171 | * ) |
104 | * | 172 | * |
105 | * @return Response | 173 | * @return JsonResponse |
106 | */ | 174 | */ |
107 | public function postEntriesAction(Request $request) | 175 | public function postEntriesAction(Request $request) |
108 | { | 176 | { |
@@ -146,7 +214,7 @@ class WallabagRestController extends FOSRestController | |||
146 | 214 | ||
147 | $json = $this->get('serializer')->serialize($entry, 'json'); | 215 | $json = $this->get('serializer')->serialize($entry, 'json'); |
148 | 216 | ||
149 | return $this->renderJsonResponse($json); | 217 | return (new JsonResponse())->setJson($json); |
150 | } | 218 | } |
151 | 219 | ||
152 | /** | 220 | /** |
@@ -164,7 +232,7 @@ class WallabagRestController extends FOSRestController | |||
164 | * } | 232 | * } |
165 | * ) | 233 | * ) |
166 | * | 234 | * |
167 | * @return Response | 235 | * @return JsonResponse |
168 | */ | 236 | */ |
169 | public function patchEntriesAction(Entry $entry, Request $request) | 237 | public function patchEntriesAction(Entry $entry, Request $request) |
170 | { | 238 | { |
@@ -197,7 +265,7 @@ class WallabagRestController extends FOSRestController | |||
197 | 265 | ||
198 | $json = $this->get('serializer')->serialize($entry, 'json'); | 266 | $json = $this->get('serializer')->serialize($entry, 'json'); |
199 | 267 | ||
200 | return $this->renderJsonResponse($json); | 268 | return (new JsonResponse())->setJson($json); |
201 | } | 269 | } |
202 | 270 | ||
203 | /** | 271 | /** |
@@ -209,7 +277,7 @@ class WallabagRestController extends FOSRestController | |||
209 | * } | 277 | * } |
210 | * ) | 278 | * ) |
211 | * | 279 | * |
212 | * @return Response | 280 | * @return JsonResponse |
213 | */ | 281 | */ |
214 | public function deleteEntriesAction(Entry $entry) | 282 | public function deleteEntriesAction(Entry $entry) |
215 | { | 283 | { |
@@ -222,7 +290,7 @@ class WallabagRestController extends FOSRestController | |||
222 | 290 | ||
223 | $json = $this->get('serializer')->serialize($entry, 'json'); | 291 | $json = $this->get('serializer')->serialize($entry, 'json'); |
224 | 292 | ||
225 | return $this->renderJsonResponse($json); | 293 | return (new JsonResponse())->setJson($json); |
226 | } | 294 | } |
227 | 295 | ||
228 | /** | 296 | /** |
@@ -234,7 +302,7 @@ class WallabagRestController extends FOSRestController | |||
234 | * } | 302 | * } |
235 | * ) | 303 | * ) |
236 | * | 304 | * |
237 | * @return Response | 305 | * @return JsonResponse |
238 | */ | 306 | */ |
239 | public function getEntriesTagsAction(Entry $entry) | 307 | public function getEntriesTagsAction(Entry $entry) |
240 | { | 308 | { |
@@ -243,7 +311,7 @@ class WallabagRestController extends FOSRestController | |||
243 | 311 | ||
244 | $json = $this->get('serializer')->serialize($entry->getTags(), 'json'); | 312 | $json = $this->get('serializer')->serialize($entry->getTags(), 'json'); |
245 | 313 | ||
246 | return $this->renderJsonResponse($json); | 314 | return (new JsonResponse())->setJson($json); |
247 | } | 315 | } |
248 | 316 | ||
249 | /** | 317 | /** |
@@ -258,7 +326,7 @@ class WallabagRestController extends FOSRestController | |||
258 | * } | 326 | * } |
259 | * ) | 327 | * ) |
260 | * | 328 | * |
261 | * @return Response | 329 | * @return JsonResponse |
262 | */ | 330 | */ |
263 | public function postEntriesTagsAction(Request $request, Entry $entry) | 331 | public function postEntriesTagsAction(Request $request, Entry $entry) |
264 | { | 332 | { |
@@ -276,7 +344,7 @@ class WallabagRestController extends FOSRestController | |||
276 | 344 | ||
277 | $json = $this->get('serializer')->serialize($entry, 'json'); | 345 | $json = $this->get('serializer')->serialize($entry, 'json'); |
278 | 346 | ||
279 | return $this->renderJsonResponse($json); | 347 | return (new JsonResponse())->setJson($json); |
280 | } | 348 | } |
281 | 349 | ||
282 | /** | 350 | /** |
@@ -289,7 +357,7 @@ class WallabagRestController extends FOSRestController | |||
289 | * } | 357 | * } |
290 | * ) | 358 | * ) |
291 | * | 359 | * |
292 | * @return Response | 360 | * @return JsonResponse |
293 | */ | 361 | */ |
294 | public function deleteEntriesTagsAction(Entry $entry, Tag $tag) | 362 | public function deleteEntriesTagsAction(Entry $entry, Tag $tag) |
295 | { | 363 | { |
@@ -303,7 +371,7 @@ class WallabagRestController extends FOSRestController | |||
303 | 371 | ||
304 | $json = $this->get('serializer')->serialize($entry, 'json'); | 372 | $json = $this->get('serializer')->serialize($entry, 'json'); |
305 | 373 | ||
306 | return $this->renderJsonResponse($json); | 374 | return (new JsonResponse())->setJson($json); |
307 | } | 375 | } |
308 | 376 | ||
309 | /** | 377 | /** |
@@ -311,7 +379,7 @@ class WallabagRestController extends FOSRestController | |||
311 | * | 379 | * |
312 | * @ApiDoc() | 380 | * @ApiDoc() |
313 | * | 381 | * |
314 | * @return Response | 382 | * @return JsonResponse |
315 | */ | 383 | */ |
316 | public function getTagsAction() | 384 | public function getTagsAction() |
317 | { | 385 | { |
@@ -323,7 +391,82 @@ class WallabagRestController extends FOSRestController | |||
323 | 391 | ||
324 | $json = $this->get('serializer')->serialize($tags, 'json'); | 392 | $json = $this->get('serializer')->serialize($tags, 'json'); |
325 | 393 | ||
326 | return $this->renderJsonResponse($json); | 394 | return (new JsonResponse())->setJson($json); |
395 | } | ||
396 | |||
397 | /** | ||
398 | * Permanently remove one tag from **every** entry. | ||
399 | * | ||
400 | * @ApiDoc( | ||
401 | * requirements={ | ||
402 | * {"name"="tag", "dataType"="string", "required"=true, "requirement"="\w+", "description"="Tag as a string"} | ||
403 | * } | ||
404 | * ) | ||
405 | * | ||
406 | * @return JsonResponse | ||
407 | */ | ||
408 | public function deleteTagLabelAction(Request $request) | ||
409 | { | ||
410 | $this->validateAuthentication(); | ||
411 | $label = $request->request->get('tag', ''); | ||
412 | |||
413 | $tag = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($label); | ||
414 | |||
415 | if (empty($tag)) { | ||
416 | throw $this->createNotFoundException('Tag not found'); | ||
417 | } | ||
418 | |||
419 | $this->getDoctrine() | ||
420 | ->getRepository('WallabagCoreBundle:Entry') | ||
421 | ->removeTag($this->getUser()->getId(), $tag); | ||
422 | |||
423 | $this->cleanOrphanTag($tag); | ||
424 | |||
425 | $json = $this->get('serializer')->serialize($tag, 'json'); | ||
426 | |||
427 | return (new JsonResponse())->setJson($json); | ||
428 | } | ||
429 | |||
430 | /** | ||
431 | * Permanently remove some tags from **every** entry. | ||
432 | * | ||
433 | * @ApiDoc( | ||
434 | * requirements={ | ||
435 | * {"name"="tags", "dataType"="string", "required"=true, "format"="tag1,tag2", "description"="Tags as strings (comma splitted)"} | ||
436 | * } | ||
437 | * ) | ||
438 | * | ||
439 | * @return JsonResponse | ||
440 | */ | ||
441 | public function deleteTagsLabelAction(Request $request) | ||
442 | { | ||
443 | $this->validateAuthentication(); | ||
444 | |||
445 | $tagsLabels = $request->request->get('tags', ''); | ||
446 | |||
447 | $tags = []; | ||
448 | |||
449 | foreach (explode(',', $tagsLabels) as $tagLabel) { | ||
450 | $tagEntity = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($tagLabel); | ||
451 | |||
452 | if (!empty($tagEntity)) { | ||
453 | $tags[] = $tagEntity; | ||
454 | } | ||
455 | } | ||
456 | |||
457 | if (empty($tags)) { | ||
458 | throw $this->createNotFoundException('Tags not found'); | ||
459 | } | ||
460 | |||
461 | $this->getDoctrine() | ||
462 | ->getRepository('WallabagCoreBundle:Entry') | ||
463 | ->removeTags($this->getUser()->getId(), $tags); | ||
464 | |||
465 | $this->cleanOrphanTag($tags); | ||
466 | |||
467 | $json = $this->get('serializer')->serialize($tags, 'json'); | ||
468 | |||
469 | return (new JsonResponse())->setJson($json); | ||
327 | } | 470 | } |
328 | 471 | ||
329 | /** | 472 | /** |
@@ -335,7 +478,7 @@ class WallabagRestController extends FOSRestController | |||
335 | * } | 478 | * } |
336 | * ) | 479 | * ) |
337 | * | 480 | * |
338 | * @return Response | 481 | * @return JsonResponse |
339 | */ | 482 | */ |
340 | public function deleteTagAction(Tag $tag) | 483 | public function deleteTagAction(Tag $tag) |
341 | { | 484 | { |
@@ -345,16 +488,19 @@ class WallabagRestController extends FOSRestController | |||
345 | ->getRepository('WallabagCoreBundle:Entry') | 488 | ->getRepository('WallabagCoreBundle:Entry') |
346 | ->removeTag($this->getUser()->getId(), $tag); | 489 | ->removeTag($this->getUser()->getId(), $tag); |
347 | 490 | ||
491 | $this->cleanOrphanTag($tag); | ||
492 | |||
348 | $json = $this->get('serializer')->serialize($tag, 'json'); | 493 | $json = $this->get('serializer')->serialize($tag, 'json'); |
349 | 494 | ||
350 | return $this->renderJsonResponse($json); | 495 | return (new JsonResponse())->setJson($json); |
351 | } | 496 | } |
497 | |||
352 | /** | 498 | /** |
353 | * Retrieve version number. | 499 | * Retrieve version number. |
354 | * | 500 | * |
355 | * @ApiDoc() | 501 | * @ApiDoc() |
356 | * | 502 | * |
357 | * @return Response | 503 | * @return JsonResponse |
358 | */ | 504 | */ |
359 | public function getVersionAction() | 505 | public function getVersionAction() |
360 | { | 506 | { |
@@ -362,7 +508,29 @@ class WallabagRestController extends FOSRestController | |||
362 | 508 | ||
363 | $json = $this->get('serializer')->serialize($version, 'json'); | 509 | $json = $this->get('serializer')->serialize($version, 'json'); |
364 | 510 | ||
365 | return $this->renderJsonResponse($json); | 511 | return (new JsonResponse())->setJson($json); |
512 | } | ||
513 | |||
514 | /** | ||
515 | * Remove orphan tag in case no entries are associated to it. | ||
516 | * | ||
517 | * @param Tag|array $tags | ||
518 | */ | ||
519 | private function cleanOrphanTag($tags) | ||
520 | { | ||
521 | if (!is_array($tags)) { | ||
522 | $tags = [$tags]; | ||
523 | } | ||
524 | |||
525 | $em = $this->getDoctrine()->getManager(); | ||
526 | |||
527 | foreach ($tags as $tag) { | ||
528 | if (count($tag->getEntries()) === 0) { | ||
529 | $em->remove($tag); | ||
530 | } | ||
531 | } | ||
532 | |||
533 | $em->flush(); | ||
366 | } | 534 | } |
367 | 535 | ||
368 | /** | 536 | /** |
@@ -378,17 +546,4 @@ class WallabagRestController extends FOSRestController | |||
378 | throw $this->createAccessDeniedException('Access forbidden. Entry user id: '.$requestUserId.', logged user id: '.$user->getId()); | 546 | throw $this->createAccessDeniedException('Access forbidden. Entry user id: '.$requestUserId.', logged user id: '.$user->getId()); |
379 | } | 547 | } |
380 | } | 548 | } |
381 | |||
382 | /** | ||
383 | * Send a JSON Response. | ||
384 | * We don't use the Symfony JsonRespone, because it takes an array as parameter instead of a JSON string. | ||
385 | * | ||
386 | * @param string $json | ||
387 | * | ||
388 | * @return Response | ||
389 | */ | ||
390 | private function renderJsonResponse($json) | ||
391 | { | ||
392 | return new Response($json, 200, ['application/json']); | ||
393 | } | ||
394 | } | 549 | } |
diff --git a/src/Wallabag/ApiBundle/Entity/AccessToken.php b/src/Wallabag/ApiBundle/Entity/AccessToken.php index 2ff63a83..c09a0c80 100644 --- a/src/Wallabag/ApiBundle/Entity/AccessToken.php +++ b/src/Wallabag/ApiBundle/Entity/AccessToken.php | |||
@@ -19,7 +19,7 @@ class AccessToken extends BaseAccessToken | |||
19 | protected $id; | 19 | protected $id; |
20 | 20 | ||
21 | /** | 21 | /** |
22 | * @ORM\ManyToOne(targetEntity="Client") | 22 | * @ORM\ManyToOne(targetEntity="Client", inversedBy="accessTokens") |
23 | * @ORM\JoinColumn(nullable=false) | 23 | * @ORM\JoinColumn(nullable=false) |
24 | */ | 24 | */ |
25 | protected $client; | 25 | protected $client; |
diff --git a/src/Wallabag/ApiBundle/Entity/Client.php b/src/Wallabag/ApiBundle/Entity/Client.php index c04ed0f6..f7898ac8 100644 --- a/src/Wallabag/ApiBundle/Entity/Client.php +++ b/src/Wallabag/ApiBundle/Entity/Client.php | |||
@@ -18,8 +18,49 @@ class Client extends BaseClient | |||
18 | */ | 18 | */ |
19 | protected $id; | 19 | protected $id; |
20 | 20 | ||
21 | /** | ||
22 | * @var string | ||
23 | * | ||
24 | * @ORM\Column(name="name", type="text", nullable=true) | ||
25 | */ | ||
26 | protected $name; | ||
27 | |||
28 | /** | ||
29 | * @ORM\OneToMany(targetEntity="RefreshToken", mappedBy="client", cascade={"remove"}) | ||
30 | */ | ||
31 | protected $refreshTokens; | ||
32 | |||
33 | /** | ||
34 | * @ORM\OneToMany(targetEntity="AccessToken", mappedBy="client", cascade={"remove"}) | ||
35 | */ | ||
36 | protected $accessTokens; | ||
37 | |||
21 | public function __construct() | 38 | public function __construct() |
22 | { | 39 | { |
23 | parent::__construct(); | 40 | parent::__construct(); |
24 | } | 41 | } |
42 | |||
43 | /** | ||
44 | * Get name. | ||
45 | * | ||
46 | * @return string | ||
47 | */ | ||
48 | public function getName() | ||
49 | { | ||
50 | return $this->name; | ||
51 | } | ||
52 | |||
53 | /** | ||
54 | * Set name. | ||
55 | * | ||
56 | * @param string $name | ||
57 | * | ||
58 | * @return Client | ||
59 | */ | ||
60 | public function setName($name) | ||
61 | { | ||
62 | $this->name = $name; | ||
63 | |||
64 | return $this; | ||
65 | } | ||
25 | } | 66 | } |
diff --git a/src/Wallabag/ApiBundle/Entity/RefreshToken.php b/src/Wallabag/ApiBundle/Entity/RefreshToken.php index 6d0cab68..822a02d8 100644 --- a/src/Wallabag/ApiBundle/Entity/RefreshToken.php +++ b/src/Wallabag/ApiBundle/Entity/RefreshToken.php | |||
@@ -19,7 +19,7 @@ class RefreshToken extends BaseRefreshToken | |||
19 | protected $id; | 19 | protected $id; |
20 | 20 | ||
21 | /** | 21 | /** |
22 | * @ORM\ManyToOne(targetEntity="Client") | 22 | * @ORM\ManyToOne(targetEntity="Client", inversedBy="refreshTokens") |
23 | * @ORM\JoinColumn(nullable=false) | 23 | * @ORM\JoinColumn(nullable=false) |
24 | */ | 24 | */ |
25 | protected $client; | 25 | protected $client; |
diff --git a/src/Wallabag/CoreBundle/Form/Type/ClientType.php b/src/Wallabag/ApiBundle/Form/Type/ClientType.php index 8b351e60..0ea1a9c5 100644 --- a/src/Wallabag/CoreBundle/Form/Type/ClientType.php +++ b/src/Wallabag/ApiBundle/Form/Type/ClientType.php | |||
@@ -1,11 +1,12 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Wallabag\CoreBundle\Form\Type; | 3 | namespace Wallabag\ApiBundle\Form\Type; |
4 | 4 | ||
5 | use Symfony\Component\Form\AbstractType; | 5 | use Symfony\Component\Form\AbstractType; |
6 | use Symfony\Component\Form\CallbackTransformer; | 6 | use Symfony\Component\Form\CallbackTransformer; |
7 | use Symfony\Component\Form\Extension\Core\Type\SubmitType; | 7 | use Symfony\Component\Form\Extension\Core\Type\SubmitType; |
8 | use Symfony\Component\Form\Extension\Core\Type\UrlType; | 8 | use Symfony\Component\Form\Extension\Core\Type\UrlType; |
9 | use Symfony\Component\Form\Extension\Core\Type\TextType; | ||
9 | use Symfony\Component\Form\FormBuilderInterface; | 10 | use Symfony\Component\Form\FormBuilderInterface; |
10 | use Symfony\Component\OptionsResolver\OptionsResolver; | 11 | use Symfony\Component\OptionsResolver\OptionsResolver; |
11 | 12 | ||
@@ -14,7 +15,8 @@ class ClientType extends AbstractType | |||
14 | public function buildForm(FormBuilderInterface $builder, array $options) | 15 | public function buildForm(FormBuilderInterface $builder, array $options) |
15 | { | 16 | { |
16 | $builder | 17 | $builder |
17 | ->add('redirect_uris', UrlType::class, ['required' => true, 'label' => 'developer.client.form.redirect_uris_label']) | 18 | ->add('name', TextType::class, ['label' => 'developer.client.form.name_label']) |
19 | ->add('redirect_uris', UrlType::class, ['required' => false, 'label' => 'developer.client.form.redirect_uris_label']) | ||
18 | ->add('save', SubmitType::class, ['label' => 'developer.client.form.save_label']) | 20 | ->add('save', SubmitType::class, ['label' => 'developer.client.form.save_label']) |
19 | ; | 21 | ; |
20 | 22 | ||
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php index 035eb865..8e438229 100644 --- a/src/Wallabag/CoreBundle/Command/InstallCommand.php +++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php | |||
@@ -2,12 +2,14 @@ | |||
2 | 2 | ||
3 | namespace Wallabag\CoreBundle\Command; | 3 | namespace Wallabag\CoreBundle\Command; |
4 | 4 | ||
5 | use FOS\UserBundle\Event\UserEvent; | ||
6 | use FOS\UserBundle\FOSUserEvents; | ||
5 | use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; | 7 | use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; |
6 | use Symfony\Component\Console\Helper\Table; | 8 | use Symfony\Component\Console\Helper\Table; |
7 | use Symfony\Component\Console\Input\ArrayInput; | 9 | use Symfony\Component\Console\Input\ArrayInput; |
8 | use Symfony\Component\Console\Input\InputInterface; | 10 | use Symfony\Component\Console\Input\InputInterface; |
9 | use Symfony\Component\Console\Input\InputOption; | 11 | use Symfony\Component\Console\Input\InputOption; |
10 | use Symfony\Component\Console\Output\NullOutput; | 12 | use Symfony\Component\Console\Output\BufferedOutput; |
11 | use Symfony\Component\Console\Output\OutputInterface; | 13 | use Symfony\Component\Console\Output\OutputInterface; |
12 | use Symfony\Component\Console\Question\ConfirmationQuestion; | 14 | use Symfony\Component\Console\Question\ConfirmationQuestion; |
13 | use Symfony\Component\Console\Question\Question; | 15 | use Symfony\Component\Console\Question\Question; |
@@ -61,7 +63,6 @@ class InstallCommand extends ContainerAwareCommand | |||
61 | ->setupDatabase() | 63 | ->setupDatabase() |
62 | ->setupAdmin() | 64 | ->setupAdmin() |
63 | ->setupConfig() | 65 | ->setupConfig() |
64 | ->setupAsset() | ||
65 | ; | 66 | ; |
66 | 67 | ||
67 | $output->writeln('<info>Wallabag has been successfully installed.</info>'); | 68 | $output->writeln('<info>Wallabag has been successfully installed.</info>'); |
@@ -70,7 +71,7 @@ class InstallCommand extends ContainerAwareCommand | |||
70 | 71 | ||
71 | protected function checkRequirements() | 72 | protected function checkRequirements() |
72 | { | 73 | { |
73 | $this->defaultOutput->writeln('<info><comment>Step 1 of 5.</comment> Checking system requirements.</info>'); | 74 | $this->defaultOutput->writeln('<info><comment>Step 1 of 4.</comment> Checking system requirements.</info>'); |
74 | 75 | ||
75 | $rows = []; | 76 | $rows = []; |
76 | 77 | ||
@@ -96,7 +97,8 @@ class InstallCommand extends ContainerAwareCommand | |||
96 | try { | 97 | try { |
97 | $this->getContainer()->get('doctrine')->getManager()->getConnection()->connect(); | 98 | $this->getContainer()->get('doctrine')->getManager()->getConnection()->connect(); |
98 | } catch (\Exception $e) { | 99 | } catch (\Exception $e) { |
99 | if (false === strpos($e->getMessage(), 'Unknown database')) { | 100 | if (false === strpos($e->getMessage(), 'Unknown database') |
101 | && false === strpos($e->getMessage(), 'database "'.$this->getContainer()->getParameter('database_name').'" does not exist')) { | ||
100 | $fulfilled = false; | 102 | $fulfilled = false; |
101 | $status = '<error>ERROR!</error>'; | 103 | $status = '<error>ERROR!</error>'; |
102 | $help = 'Can\'t connect to the database: '.$e->getMessage(); | 104 | $help = 'Can\'t connect to the database: '.$e->getMessage(); |
@@ -138,7 +140,7 @@ class InstallCommand extends ContainerAwareCommand | |||
138 | 140 | ||
139 | protected function setupDatabase() | 141 | protected function setupDatabase() |
140 | { | 142 | { |
141 | $this->defaultOutput->writeln('<info><comment>Step 2 of 5.</comment> Setting up database.</info>'); | 143 | $this->defaultOutput->writeln('<info><comment>Step 2 of 4.</comment> Setting up database.</info>'); |
142 | 144 | ||
143 | // user want to reset everything? Don't care about what is already here | 145 | // user want to reset everything? Don't care about what is already here |
144 | if (true === $this->defaultInput->getOption('reset')) { | 146 | if (true === $this->defaultInput->getOption('reset')) { |
@@ -209,7 +211,7 @@ class InstallCommand extends ContainerAwareCommand | |||
209 | 211 | ||
210 | protected function setupAdmin() | 212 | protected function setupAdmin() |
211 | { | 213 | { |
212 | $this->defaultOutput->writeln('<info><comment>Step 3 of 5.</comment> Administration setup.</info>'); | 214 | $this->defaultOutput->writeln('<info><comment>Step 3 of 4.</comment> Administration setup.</info>'); |
213 | 215 | ||
214 | $questionHelper = $this->getHelperSet()->get('question'); | 216 | $questionHelper = $this->getHelperSet()->get('question'); |
215 | $question = new ConfirmationQuestion('Would you like to create a new admin user (recommended) ? (Y/n)', true); | 217 | $question = new ConfirmationQuestion('Would you like to create a new admin user (recommended) ? (Y/n)', true); |
@@ -237,14 +239,9 @@ class InstallCommand extends ContainerAwareCommand | |||
237 | 239 | ||
238 | $em->persist($user); | 240 | $em->persist($user); |
239 | 241 | ||
240 | $config = new Config($user); | 242 | // dispatch a created event so the associated config will be created |
241 | $config->setTheme($this->getContainer()->getParameter('wallabag_core.theme')); | 243 | $event = new UserEvent($user); |
242 | $config->setItemsPerPage($this->getContainer()->getParameter('wallabag_core.items_on_page')); | 244 | $this->getContainer()->get('event_dispatcher')->dispatch(FOSUserEvents::USER_CREATED, $event); |
243 | $config->setRssLimit($this->getContainer()->getParameter('wallabag_core.rss_limit')); | ||
244 | $config->setReadingSpeed($this->getContainer()->getParameter('wallabag_core.reading_speed')); | ||
245 | $config->setLanguage($this->getContainer()->getParameter('wallabag_core.language')); | ||
246 | |||
247 | $em->persist($config); | ||
248 | 245 | ||
249 | $this->defaultOutput->writeln(''); | 246 | $this->defaultOutput->writeln(''); |
250 | 247 | ||
@@ -253,7 +250,7 @@ class InstallCommand extends ContainerAwareCommand | |||
253 | 250 | ||
254 | protected function setupConfig() | 251 | protected function setupConfig() |
255 | { | 252 | { |
256 | $this->defaultOutput->writeln('<info><comment>Step 4 of 5.</comment> Config setup.</info>'); | 253 | $this->defaultOutput->writeln('<info><comment>Step 4 of 4.</comment> Config setup.</info>'); |
257 | $em = $this->getContainer()->get('doctrine.orm.entity_manager'); | 254 | $em = $this->getContainer()->get('doctrine.orm.entity_manager'); |
258 | 255 | ||
259 | // cleanup before insert new stuff | 256 | // cleanup before insert new stuff |
@@ -261,6 +258,11 @@ class InstallCommand extends ContainerAwareCommand | |||
261 | 258 | ||
262 | $settings = [ | 259 | $settings = [ |
263 | [ | 260 | [ |
261 | 'name' => 'share_public', | ||
262 | 'value' => '1', | ||
263 | 'section' => 'entry', | ||
264 | ], | ||
265 | [ | ||
264 | 'name' => 'carrot', | 266 | 'name' => 'carrot', |
265 | 'value' => '1', | 267 | 'value' => '1', |
266 | 'section' => 'entry', | 268 | 'section' => 'entry', |
@@ -331,8 +333,13 @@ class InstallCommand extends ContainerAwareCommand | |||
331 | 'section' => 'export', | 333 | 'section' => 'export', |
332 | ], | 334 | ], |
333 | [ | 335 | [ |
334 | 'name' => 'pocket_consumer_key', | 336 | 'name' => 'import_with_redis', |
335 | 'value' => null, | 337 | 'value' => '0', |
338 | 'section' => 'import', | ||
339 | ], | ||
340 | [ | ||
341 | 'name' => 'import_with_rabbitmq', | ||
342 | 'value' => '0', | ||
336 | 'section' => 'import', | 343 | 'section' => 'import', |
337 | ], | 344 | ], |
338 | [ | 345 | [ |
@@ -392,20 +399,6 @@ class InstallCommand extends ContainerAwareCommand | |||
392 | return $this; | 399 | return $this; |
393 | } | 400 | } |
394 | 401 | ||
395 | protected function setupAsset() | ||
396 | { | ||
397 | $this->defaultOutput->writeln('<info><comment>Step 5 of 5.</comment> Installing assets.</info>'); | ||
398 | |||
399 | $this | ||
400 | ->runCommand('assets:install') | ||
401 | ->runCommand('assetic:dump') | ||
402 | ; | ||
403 | |||
404 | $this->defaultOutput->writeln(''); | ||
405 | |||
406 | return $this; | ||
407 | } | ||
408 | |||
409 | /** | 402 | /** |
410 | * Run a command. | 403 | * Run a command. |
411 | * | 404 | * |
@@ -428,16 +421,18 @@ class InstallCommand extends ContainerAwareCommand | |||
428 | } | 421 | } |
429 | 422 | ||
430 | $this->getApplication()->setAutoExit(false); | 423 | $this->getApplication()->setAutoExit(false); |
431 | $exitCode = $this->getApplication()->run(new ArrayInput($parameters), new NullOutput()); | 424 | |
425 | $output = new BufferedOutput(); | ||
426 | $exitCode = $this->getApplication()->run(new ArrayInput($parameters), $output); | ||
432 | 427 | ||
433 | if (0 !== $exitCode) { | 428 | if (0 !== $exitCode) { |
434 | $this->getApplication()->setAutoExit(true); | 429 | $this->getApplication()->setAutoExit(true); |
435 | 430 | ||
436 | $errorMessage = sprintf('The command "%s" terminated with an error code: %u.', $command, $exitCode); | 431 | $this->defaultOutput->writeln(''); |
437 | $this->defaultOutput->writeln("<error>$errorMessage</error>"); | 432 | $this->defaultOutput->writeln('<error>The command "'.$command.'" generates some errors: </error>'); |
438 | $exception = new \Exception($errorMessage, $exitCode); | 433 | $this->defaultOutput->writeln($output->fetch()); |
439 | 434 | ||
440 | throw $exception; | 435 | die(); |
441 | } | 436 | } |
442 | 437 | ||
443 | // PDO does not always close the connection after Doctrine commands. | 438 | // PDO does not always close the connection after Doctrine commands. |
diff --git a/src/Wallabag/CoreBundle/Command/TagAllCommand.php b/src/Wallabag/CoreBundle/Command/TagAllCommand.php index db1a9ab7..3f9bb04d 100644 --- a/src/Wallabag/CoreBundle/Command/TagAllCommand.php +++ b/src/Wallabag/CoreBundle/Command/TagAllCommand.php | |||
@@ -34,10 +34,13 @@ class TagAllCommand extends ContainerAwareCommand | |||
34 | } | 34 | } |
35 | $tagger = $this->getContainer()->get('wallabag_core.rule_based_tagger'); | 35 | $tagger = $this->getContainer()->get('wallabag_core.rule_based_tagger'); |
36 | 36 | ||
37 | $output->write(sprintf('Tagging entries for user « <info>%s</info> »... ', $user->getUserName())); | 37 | $output->write(sprintf('Tagging entries for user « <comment>%s</comment> »... ', $user->getUserName())); |
38 | 38 | ||
39 | $entries = $tagger->tagAllForUser($user); | 39 | $entries = $tagger->tagAllForUser($user); |
40 | 40 | ||
41 | $output->writeln('<info>Done.</info>'); | ||
42 | $output->write(sprintf('Persist entries ... ', $user->getUserName())); | ||
43 | |||
41 | $em = $this->getDoctrine()->getManager(); | 44 | $em = $this->getDoctrine()->getManager(); |
42 | foreach ($entries as $entry) { | 45 | foreach ($entries as $entry) { |
43 | $em->persist($entry); | 46 | $em->persist($entry); |
diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php index 4f75511b..91cdcae5 100644 --- a/src/Wallabag/CoreBundle/Controller/ConfigController.php +++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php | |||
@@ -11,7 +11,6 @@ use Wallabag\CoreBundle\Entity\Config; | |||
11 | use Wallabag\CoreBundle\Entity\TaggingRule; | 11 | use Wallabag\CoreBundle\Entity\TaggingRule; |
12 | use Wallabag\CoreBundle\Form\Type\ConfigType; | 12 | use Wallabag\CoreBundle\Form\Type\ConfigType; |
13 | use Wallabag\CoreBundle\Form\Type\ChangePasswordType; | 13 | use Wallabag\CoreBundle\Form\Type\ChangePasswordType; |
14 | use Wallabag\CoreBundle\Form\Type\NewUserType; | ||
15 | use Wallabag\CoreBundle\Form\Type\RssType; | 14 | use Wallabag\CoreBundle\Form\Type\RssType; |
16 | use Wallabag\CoreBundle\Form\Type\TaggingRuleType; | 15 | use Wallabag\CoreBundle\Form\Type\TaggingRuleType; |
17 | use Wallabag\CoreBundle\Form\Type\UserInformationType; | 16 | use Wallabag\CoreBundle\Form\Type\UserInformationType; |
@@ -106,7 +105,21 @@ class ConfigController extends Controller | |||
106 | 105 | ||
107 | // handle tagging rule | 106 | // handle tagging rule |
108 | $taggingRule = new TaggingRule(); | 107 | $taggingRule = new TaggingRule(); |
109 | $newTaggingRule = $this->createForm(TaggingRuleType::class, $taggingRule, ['action' => $this->generateUrl('config').'#set5']); | 108 | $action = $this->generateUrl('config').'#set5'; |
109 | |||
110 | if ($request->query->has('tagging-rule')) { | ||
111 | $taggingRule = $this->getDoctrine() | ||
112 | ->getRepository('WallabagCoreBundle:TaggingRule') | ||
113 | ->find($request->query->get('tagging-rule')); | ||
114 | |||
115 | if ($this->getUser()->getId() !== $taggingRule->getConfig()->getUser()->getId()) { | ||
116 | return $this->redirect($action); | ||
117 | } | ||
118 | |||
119 | $action = $this->generateUrl('config').'?tagging-rule='.$taggingRule->getId().'#set5'; | ||
120 | } | ||
121 | |||
122 | $newTaggingRule = $this->createForm(TaggingRuleType::class, $taggingRule, ['action' => $action]); | ||
110 | $newTaggingRule->handleRequest($request); | 123 | $newTaggingRule->handleRequest($request); |
111 | 124 | ||
112 | if ($newTaggingRule->isValid()) { | 125 | if ($newTaggingRule->isValid()) { |
@@ -122,45 +135,12 @@ class ConfigController extends Controller | |||
122 | return $this->redirect($this->generateUrl('config').'#set5'); | 135 | return $this->redirect($this->generateUrl('config').'#set5'); |
123 | } | 136 | } |
124 | 137 | ||
125 | // handle adding new user | ||
126 | $newUser = $userManager->createUser(); | ||
127 | // enable created user by default | ||
128 | $newUser->setEnabled(true); | ||
129 | $newUserForm = $this->createForm(NewUserType::class, $newUser, [ | ||
130 | 'validation_groups' => ['Profile'], | ||
131 | 'action' => $this->generateUrl('config').'#set6', | ||
132 | ]); | ||
133 | $newUserForm->handleRequest($request); | ||
134 | |||
135 | if ($newUserForm->isValid() && $this->get('security.authorization_checker')->isGranted('ROLE_SUPER_ADMIN')) { | ||
136 | $userManager->updateUser($newUser, true); | ||
137 | |||
138 | $config = new Config($newUser); | ||
139 | $config->setTheme($this->getParameter('wallabag_core.theme')); | ||
140 | $config->setItemsPerPage($this->getParameter('wallabag_core.items_on_page')); | ||
141 | $config->setRssLimit($this->getParameter('wallabag_core.rss_limit')); | ||
142 | $config->setLanguage($this->getParameter('wallabag_core.language')); | ||
143 | $config->setReadingSpeed($this->getParameter('wallabag_core.reading_speed')); | ||
144 | |||
145 | $em->persist($config); | ||
146 | |||
147 | $em->flush(); | ||
148 | |||
149 | $this->get('session')->getFlashBag()->add( | ||
150 | 'notice', | ||
151 | $this->get('translator')->trans('flashes.config.notice.user_added', ['%username%' => $newUser->getUsername()]) | ||
152 | ); | ||
153 | |||
154 | return $this->redirect($this->generateUrl('config').'#set6'); | ||
155 | } | ||
156 | |||
157 | return $this->render('WallabagCoreBundle:Config:index.html.twig', [ | 138 | return $this->render('WallabagCoreBundle:Config:index.html.twig', [ |
158 | 'form' => [ | 139 | 'form' => [ |
159 | 'config' => $configForm->createView(), | 140 | 'config' => $configForm->createView(), |
160 | 'rss' => $rssForm->createView(), | 141 | 'rss' => $rssForm->createView(), |
161 | 'pwd' => $pwdForm->createView(), | 142 | 'pwd' => $pwdForm->createView(), |
162 | 'user' => $userForm->createView(), | 143 | 'user' => $userForm->createView(), |
163 | 'new_user' => $newUserForm->createView(), | ||
164 | 'new_tagging_rule' => $newTaggingRule->createView(), | 144 | 'new_tagging_rule' => $newTaggingRule->createView(), |
165 | ], | 145 | ], |
166 | 'rss' => [ | 146 | 'rss' => [ |
@@ -210,9 +190,7 @@ class ConfigController extends Controller | |||
210 | */ | 190 | */ |
211 | public function deleteTaggingRuleAction(TaggingRule $rule) | 191 | public function deleteTaggingRuleAction(TaggingRule $rule) |
212 | { | 192 | { |
213 | if ($this->getUser()->getId() != $rule->getConfig()->getUser()->getId()) { | 193 | $this->validateRuleAction($rule); |
214 | throw $this->createAccessDeniedException('You can not access this tagging rule.'); | ||
215 | } | ||
216 | 194 | ||
217 | $em = $this->getDoctrine()->getManager(); | 195 | $em = $this->getDoctrine()->getManager(); |
218 | $em->remove($rule); | 196 | $em->remove($rule); |
@@ -227,6 +205,34 @@ class ConfigController extends Controller | |||
227 | } | 205 | } |
228 | 206 | ||
229 | /** | 207 | /** |
208 | * Edit a tagging rule. | ||
209 | * | ||
210 | * @param TaggingRule $rule | ||
211 | * | ||
212 | * @Route("/tagging-rule/edit/{id}", requirements={"id" = "\d+"}, name="edit_tagging_rule") | ||
213 | * | ||
214 | * @return RedirectResponse | ||
215 | */ | ||
216 | public function editTaggingRuleAction(TaggingRule $rule) | ||
217 | { | ||
218 | $this->validateRuleAction($rule); | ||
219 | |||
220 | return $this->redirect($this->generateUrl('config').'?tagging-rule='.$rule->getId().'#set5'); | ||
221 | } | ||
222 | |||
223 | /** | ||
224 | * Validate that a rule can be edited/deleted by the current user. | ||
225 | * | ||
226 | * @param TaggingRule $rule | ||
227 | */ | ||
228 | private function validateRuleAction(TaggingRule $rule) | ||
229 | { | ||
230 | if ($this->getUser()->getId() != $rule->getConfig()->getUser()->getId()) { | ||
231 | throw $this->createAccessDeniedException('You can not access this tagging rule.'); | ||
232 | } | ||
233 | } | ||
234 | |||
235 | /** | ||
230 | * Retrieve config for the current user. | 236 | * Retrieve config for the current user. |
231 | * If no config were found, create a new one. | 237 | * If no config were found, create a new one. |
232 | * | 238 | * |
@@ -238,6 +244,7 @@ class ConfigController extends Controller | |||
238 | ->getRepository('WallabagCoreBundle:Config') | 244 | ->getRepository('WallabagCoreBundle:Config') |
239 | ->findOneByUser($this->getUser()); | 245 | ->findOneByUser($this->getUser()); |
240 | 246 | ||
247 | // should NEVER HAPPEN ... | ||
241 | if (!$config) { | 248 | if (!$config) { |
242 | $config = new Config($this->getUser()); | 249 | $config = new Config($this->getUser()); |
243 | } | 250 | } |
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index ccdf9406..3b28e635 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php | |||
@@ -4,7 +4,6 @@ namespace Wallabag\CoreBundle\Controller; | |||
4 | 4 | ||
5 | use Pagerfanta\Adapter\DoctrineORMAdapter; | 5 | use Pagerfanta\Adapter\DoctrineORMAdapter; |
6 | use Pagerfanta\Exception\OutOfRangeCurrentPageException; | 6 | use Pagerfanta\Exception\OutOfRangeCurrentPageException; |
7 | use Pagerfanta\Pagerfanta; | ||
8 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | 7 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; |
9 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | 8 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; |
10 | use Symfony\Component\HttpFoundation\Request; | 9 | use Symfony\Component\HttpFoundation\Request; |
@@ -13,30 +12,40 @@ use Wallabag\CoreBundle\Entity\Entry; | |||
13 | use Wallabag\CoreBundle\Form\Type\EntryFilterType; | 12 | use Wallabag\CoreBundle\Form\Type\EntryFilterType; |
14 | use Wallabag\CoreBundle\Form\Type\EditEntryType; | 13 | use Wallabag\CoreBundle\Form\Type\EditEntryType; |
15 | use Wallabag\CoreBundle\Form\Type\NewEntryType; | 14 | use Wallabag\CoreBundle\Form\Type\NewEntryType; |
15 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache; | ||
16 | 16 | ||
17 | class EntryController extends Controller | 17 | class EntryController extends Controller |
18 | { | 18 | { |
19 | /** | 19 | /** |
20 | * @param Entry $entry | 20 | * Fetch content and update entry. |
21 | * In case it fails, entry will return to avod loosing the data. | ||
22 | * | ||
23 | * @param Entry $entry | ||
24 | * @param string $prefixMessage Should be the translation key: entry_saved or entry_reloaded | ||
25 | * | ||
26 | * @return Entry | ||
21 | */ | 27 | */ |
22 | private function updateEntry(Entry $entry) | 28 | private function updateEntry(Entry $entry, $prefixMessage = 'entry_saved') |
23 | { | 29 | { |
30 | // put default title in case of fetching content failed | ||
31 | $entry->setTitle('No title found'); | ||
32 | |||
33 | $message = 'flashes.entry.notice.'.$prefixMessage; | ||
34 | |||
24 | try { | 35 | try { |
25 | $entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl()); | 36 | $entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl()); |
26 | |||
27 | $em = $this->getDoctrine()->getManager(); | ||
28 | $em->persist($entry); | ||
29 | $em->flush(); | ||
30 | } catch (\Exception $e) { | 37 | } catch (\Exception $e) { |
31 | $this->get('logger')->error('Error while saving an entry', [ | 38 | $this->get('logger')->error('Error while saving an entry', [ |
32 | 'exception' => $e, | 39 | 'exception' => $e, |
33 | 'entry' => $entry, | 40 | 'entry' => $entry, |
34 | ]); | 41 | ]); |
35 | 42 | ||
36 | return false; | 43 | $message = 'flashes.entry.notice.'.$prefixMessage.'_failed'; |
37 | } | 44 | } |
38 | 45 | ||
39 | return true; | 46 | $this->get('session')->getFlashBag()->add('notice', $message); |
47 | |||
48 | return $entry; | ||
40 | } | 49 | } |
41 | 50 | ||
42 | /** | 51 | /** |
@@ -66,12 +75,11 @@ class EntryController extends Controller | |||
66 | return $this->redirect($this->generateUrl('view', ['id' => $existingEntry->getId()])); | 75 | return $this->redirect($this->generateUrl('view', ['id' => $existingEntry->getId()])); |
67 | } | 76 | } |
68 | 77 | ||
69 | $message = 'flashes.entry.notice.entry_saved'; | 78 | $this->updateEntry($entry); |
70 | if (false === $this->updateEntry($entry)) { | ||
71 | $message = 'flashes.entry.notice.entry_saved_failed'; | ||
72 | } | ||
73 | 79 | ||
74 | $this->get('session')->getFlashBag()->add('notice', $message); | 80 | $em = $this->getDoctrine()->getManager(); |
81 | $em->persist($entry); | ||
82 | $em->flush(); | ||
75 | 83 | ||
76 | return $this->redirect($this->generateUrl('homepage')); | 84 | return $this->redirect($this->generateUrl('homepage')); |
77 | } | 85 | } |
@@ -95,6 +103,10 @@ class EntryController extends Controller | |||
95 | 103 | ||
96 | if (false === $this->checkIfEntryAlreadyExists($entry)) { | 104 | if (false === $this->checkIfEntryAlreadyExists($entry)) { |
97 | $this->updateEntry($entry); | 105 | $this->updateEntry($entry); |
106 | |||
107 | $em = $this->getDoctrine()->getManager(); | ||
108 | $em->persist($entry); | ||
109 | $em->flush(); | ||
98 | } | 110 | } |
99 | 111 | ||
100 | return $this->redirect($this->generateUrl('homepage')); | 112 | return $this->redirect($this->generateUrl('homepage')); |
@@ -226,6 +238,10 @@ class EntryController extends Controller | |||
226 | $repository = $this->get('wallabag_core.entry_repository'); | 238 | $repository = $this->get('wallabag_core.entry_repository'); |
227 | 239 | ||
228 | switch ($type) { | 240 | switch ($type) { |
241 | case 'untagged': | ||
242 | $qb = $repository->getBuilderForUntaggedByUser($this->getUser()->getId()); | ||
243 | |||
244 | break; | ||
229 | case 'starred': | 245 | case 'starred': |
230 | $qb = $repository->getBuilderForStarredByUser($this->getUser()->getId()); | 246 | $qb = $repository->getBuilderForStarredByUser($this->getUser()->getId()); |
231 | break; | 247 | break; |
@@ -257,9 +273,10 @@ class EntryController extends Controller | |||
257 | } | 273 | } |
258 | 274 | ||
259 | $pagerAdapter = new DoctrineORMAdapter($qb->getQuery()); | 275 | $pagerAdapter = new DoctrineORMAdapter($qb->getQuery()); |
260 | $entries = new Pagerfanta($pagerAdapter); | ||
261 | 276 | ||
262 | $entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage()); | 277 | $entries = $this->get('wallabag_core.helper.prepare_pager_for_entries') |
278 | ->prepare($pagerAdapter, $page); | ||
279 | |||
263 | try { | 280 | try { |
264 | $entries->setCurrentPage($page); | 281 | $entries->setCurrentPage($page); |
265 | } catch (OutOfRangeCurrentPageException $e) { | 282 | } catch (OutOfRangeCurrentPageException $e) { |
@@ -311,15 +328,11 @@ class EntryController extends Controller | |||
311 | { | 328 | { |
312 | $this->checkUserAction($entry); | 329 | $this->checkUserAction($entry); |
313 | 330 | ||
314 | $message = 'flashes.entry.notice.entry_reloaded'; | 331 | $this->updateEntry($entry, 'entry_reloaded'); |
315 | if (false === $this->updateEntry($entry)) { | ||
316 | $message = 'flashes.entry.notice.entry_reload_failed'; | ||
317 | } | ||
318 | 332 | ||
319 | $this->get('session')->getFlashBag()->add( | 333 | $em = $this->getDoctrine()->getManager(); |
320 | 'notice', | 334 | $em->persist($entry); |
321 | $message | 335 | $em->flush(); |
322 | ); | ||
323 | 336 | ||
324 | return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()])); | 337 | return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()])); |
325 | } | 338 | } |
@@ -434,7 +447,7 @@ class EntryController extends Controller | |||
434 | */ | 447 | */ |
435 | private function checkUserAction(Entry $entry) | 448 | private function checkUserAction(Entry $entry) |
436 | { | 449 | { |
437 | if ($this->getUser()->getId() != $entry->getUser()->getId()) { | 450 | if (null === $this->getUser() || $this->getUser()->getId() != $entry->getUser()->getId()) { |
438 | throw $this->createAccessDeniedException('You can not access this entry.'); | 451 | throw $this->createAccessDeniedException('You can not access this entry.'); |
439 | } | 452 | } |
440 | } | 453 | } |
@@ -450,4 +463,91 @@ class EntryController extends Controller | |||
450 | { | 463 | { |
451 | return $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId()); | 464 | return $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($entry->getUrl(), $this->getUser()->getId()); |
452 | } | 465 | } |
466 | |||
467 | /** | ||
468 | * Get public URL for entry (and generate it if necessary). | ||
469 | * | ||
470 | * @param Entry $entry | ||
471 | * | ||
472 | * @Route("/share/{id}", requirements={"id" = "\d+"}, name="share") | ||
473 | * | ||
474 | * @return \Symfony\Component\HttpFoundation\Response | ||
475 | */ | ||
476 | public function shareAction(Entry $entry) | ||
477 | { | ||
478 | $this->checkUserAction($entry); | ||
479 | |||
480 | if (null === $entry->getUuid()) { | ||
481 | $entry->generateUuid(); | ||
482 | |||
483 | $em = $this->getDoctrine()->getManager(); | ||
484 | $em->persist($entry); | ||
485 | $em->flush(); | ||
486 | } | ||
487 | |||
488 | return $this->redirect($this->generateUrl('share_entry', [ | ||
489 | 'uuid' => $entry->getUuid(), | ||
490 | ])); | ||
491 | } | ||
492 | |||
493 | /** | ||
494 | * Disable public sharing for an entry. | ||
495 | * | ||
496 | * @param Entry $entry | ||
497 | * | ||
498 | * @Route("/share/delete/{id}", requirements={"id" = "\d+"}, name="delete_share") | ||
499 | * | ||
500 | * @return \Symfony\Component\HttpFoundation\Response | ||
501 | */ | ||
502 | public function deleteShareAction(Entry $entry) | ||
503 | { | ||
504 | $this->checkUserAction($entry); | ||
505 | |||
506 | $entry->cleanUuid(); | ||
507 | |||
508 | $em = $this->getDoctrine()->getManager(); | ||
509 | $em->persist($entry); | ||
510 | $em->flush(); | ||
511 | |||
512 | return $this->redirect($this->generateUrl('view', [ | ||
513 | 'id' => $entry->getId(), | ||
514 | ])); | ||
515 | } | ||
516 | |||
517 | /** | ||
518 | * Ability to view a content publicly. | ||
519 | * | ||
520 | * @param Entry $entry | ||
521 | * | ||
522 | * @Route("/share/{uuid}", requirements={"uuid" = ".+"}, name="share_entry") | ||
523 | * @Cache(maxage="25200", smaxage="25200", public=true) | ||
524 | * | ||
525 | * @return \Symfony\Component\HttpFoundation\Response | ||
526 | */ | ||
527 | public function shareEntryAction(Entry $entry) | ||
528 | { | ||
529 | if (!$this->get('craue_config')->get('share_public')) { | ||
530 | throw $this->createAccessDeniedException('Sharing an entry is disabled for this user.'); | ||
531 | } | ||
532 | |||
533 | return $this->render( | ||
534 | '@WallabagCore/themes/common/Entry/share.html.twig', | ||
535 | ['entry' => $entry] | ||
536 | ); | ||
537 | } | ||
538 | |||
539 | /** | ||
540 | * Shows untagged articles for current user. | ||
541 | * | ||
542 | * @param Request $request | ||
543 | * @param int $page | ||
544 | * | ||
545 | * @Route("/untagged/list/{page}", name="untagged", defaults={"page" = "1"}) | ||
546 | * | ||
547 | * @return \Symfony\Component\HttpFoundation\Response | ||
548 | */ | ||
549 | public function showUntaggedEntriesAction(Request $request, $page) | ||
550 | { | ||
551 | return $this->showEntries('untagged', $request, $page); | ||
552 | } | ||
453 | } | 553 | } |
diff --git a/src/Wallabag/CoreBundle/Controller/ExceptionController.php b/src/Wallabag/CoreBundle/Controller/ExceptionController.php new file mode 100644 index 00000000..abfa9c2f --- /dev/null +++ b/src/Wallabag/CoreBundle/Controller/ExceptionController.php | |||
@@ -0,0 +1,40 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Controller; | ||
4 | |||
5 | use Symfony\Bundle\TwigBundle\Controller\ExceptionController as BaseExceptionController; | ||
6 | use Symfony\Component\HttpFoundation\Request; | ||
7 | |||
8 | /** | ||
9 | * This controller allow us to customize the error template. | ||
10 | * The only modified line from the parent template is for "WallabagCoreBundle". | ||
11 | */ | ||
12 | class ExceptionController extends BaseExceptionController | ||
13 | { | ||
14 | protected function findTemplate(Request $request, $format, $code, $showException) | ||
15 | { | ||
16 | $name = $showException ? 'exception' : 'error'; | ||
17 | if ($showException && 'html' == $format) { | ||
18 | $name = 'exception_full'; | ||
19 | } | ||
20 | |||
21 | // For error pages, try to find a template for the specific HTTP status code and format | ||
22 | if (!$showException) { | ||
23 | $template = sprintf('WallabagCoreBundle:Exception:%s.%s.twig', $name, $format); | ||
24 | if ($this->templateExists($template)) { | ||
25 | return $template; | ||
26 | } | ||
27 | } | ||
28 | |||
29 | // try to find a template for the given format | ||
30 | $template = sprintf('@Twig/Exception/%s.%s.twig', $name, $format); | ||
31 | if ($this->templateExists($template)) { | ||
32 | return $template; | ||
33 | } | ||
34 | |||
35 | // default to a generic HTML exception | ||
36 | $request->setRequestFormat('html'); | ||
37 | |||
38 | return sprintf('@Twig/Exception/%s.html.twig', $showException ? 'exception_full' : $name); | ||
39 | } | ||
40 | } | ||
diff --git a/src/Wallabag/CoreBundle/Controller/ExportController.php b/src/Wallabag/CoreBundle/Controller/ExportController.php index 944c755d..6191d5d7 100644 --- a/src/Wallabag/CoreBundle/Controller/ExportController.php +++ b/src/Wallabag/CoreBundle/Controller/ExportController.php | |||
@@ -46,7 +46,7 @@ class ExportController extends Controller | |||
46 | * | 46 | * |
47 | * @Route("/export/{category}.{format}", name="export_entries", requirements={ | 47 | * @Route("/export/{category}.{format}", name="export_entries", requirements={ |
48 | * "format": "epub|mobi|pdf|json|xml|txt|csv", | 48 | * "format": "epub|mobi|pdf|json|xml|txt|csv", |
49 | * "category": "all|unread|starred|archive" | 49 | * "category": "all|unread|starred|archive|tag_entries|untagged" |
50 | * }) | 50 | * }) |
51 | * | 51 | * |
52 | * @return \Symfony\Component\HttpFoundation\Response | 52 | * @return \Symfony\Component\HttpFoundation\Response |
diff --git a/src/Wallabag/CoreBundle/Controller/FooterController.php b/src/Wallabag/CoreBundle/Controller/FooterController.php deleted file mode 100644 index fd93c436..00000000 --- a/src/Wallabag/CoreBundle/Controller/FooterController.php +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Controller; | ||
4 | |||
5 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
6 | |||
7 | class FooterController extends Controller | ||
8 | { | ||
9 | /** | ||
10 | * Display the footer. | ||
11 | * | ||
12 | * @return \Symfony\Component\HttpFoundation\Response | ||
13 | */ | ||
14 | public function indexAction() | ||
15 | { | ||
16 | $addonsUrl = $this->container->getParameter('addons_url'); | ||
17 | $socialsUrl = $this->container->getParameter('socials_url'); | ||
18 | |||
19 | return $this->render( | ||
20 | 'WallabagCoreBundle::footer.html.twig', | ||
21 | [ | ||
22 | 'addonsUrl' => $addonsUrl, | ||
23 | 'socialsUrl' => $socialsUrl, | ||
24 | ] | ||
25 | ); | ||
26 | } | ||
27 | } | ||
diff --git a/src/Wallabag/CoreBundle/Controller/RssController.php b/src/Wallabag/CoreBundle/Controller/RssController.php index 2118885c..38e3b5a0 100644 --- a/src/Wallabag/CoreBundle/Controller/RssController.php +++ b/src/Wallabag/CoreBundle/Controller/RssController.php | |||
@@ -87,7 +87,7 @@ class RssController extends Controller | |||
87 | $perPage = $user->getConfig()->getRssLimit() ?: $this->getParameter('wallabag_core.rss_limit'); | 87 | $perPage = $user->getConfig()->getRssLimit() ?: $this->getParameter('wallabag_core.rss_limit'); |
88 | $entries->setMaxPerPage($perPage); | 88 | $entries->setMaxPerPage($perPage); |
89 | 89 | ||
90 | return $this->render('WallabagCoreBundle:Entry:entries.xml.twig', [ | 90 | return $this->render('@WallabagCore/themes/common/Entry/entries.xml.twig', [ |
91 | 'type' => $type, | 91 | 'type' => $type, |
92 | 'entries' => $entries, | 92 | 'entries' => $entries, |
93 | ]); | 93 | ]); |
diff --git a/src/Wallabag/CoreBundle/Controller/StaticController.php b/src/Wallabag/CoreBundle/Controller/StaticController.php index 2a57f06f..82714217 100644 --- a/src/Wallabag/CoreBundle/Controller/StaticController.php +++ b/src/Wallabag/CoreBundle/Controller/StaticController.php | |||
@@ -15,7 +15,7 @@ class StaticController extends Controller | |||
15 | $addonsUrl = $this->container->getParameter('addons_url'); | 15 | $addonsUrl = $this->container->getParameter('addons_url'); |
16 | 16 | ||
17 | return $this->render( | 17 | return $this->render( |
18 | 'WallabagCoreBundle:Static:howto.html.twig', | 18 | '@WallabagCore/themes/common/Static/howto.html.twig', |
19 | ['addonsUrl' => $addonsUrl] | 19 | ['addonsUrl' => $addonsUrl] |
20 | ); | 20 | ); |
21 | } | 21 | } |
@@ -26,7 +26,7 @@ class StaticController extends Controller | |||
26 | public function aboutAction() | 26 | public function aboutAction() |
27 | { | 27 | { |
28 | return $this->render( | 28 | return $this->render( |
29 | 'WallabagCoreBundle:Static:about.html.twig', | 29 | '@WallabagCore/themes/common/Static/about.html.twig', |
30 | [ | 30 | [ |
31 | 'version' => $this->getParameter('wallabag_core.version'), | 31 | 'version' => $this->getParameter('wallabag_core.version'), |
32 | 'paypal_url' => $this->getParameter('wallabag_core.paypal_url'), | 32 | 'paypal_url' => $this->getParameter('wallabag_core.paypal_url'), |
@@ -40,7 +40,7 @@ class StaticController extends Controller | |||
40 | public function quickstartAction() | 40 | public function quickstartAction() |
41 | { | 41 | { |
42 | return $this->render( | 42 | return $this->render( |
43 | 'WallabagCoreBundle:Static:quickstart.html.twig', | 43 | '@WallabagCore/themes/common/Static/quickstart.html.twig', |
44 | [] | 44 | [] |
45 | ); | 45 | ); |
46 | } | 46 | } |
diff --git a/src/Wallabag/CoreBundle/Controller/TagController.php b/src/Wallabag/CoreBundle/Controller/TagController.php index 8645fb44..5acc6852 100644 --- a/src/Wallabag/CoreBundle/Controller/TagController.php +++ b/src/Wallabag/CoreBundle/Controller/TagController.php | |||
@@ -2,12 +2,15 @@ | |||
2 | 2 | ||
3 | namespace Wallabag\CoreBundle\Controller; | 3 | namespace Wallabag\CoreBundle\Controller; |
4 | 4 | ||
5 | use Pagerfanta\Adapter\ArrayAdapter; | ||
6 | use Pagerfanta\Exception\OutOfRangeCurrentPageException; | ||
5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | 7 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; |
6 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | 8 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; |
7 | use Symfony\Component\HttpFoundation\Request; | 9 | use Symfony\Component\HttpFoundation\Request; |
8 | use Wallabag\CoreBundle\Entity\Entry; | 10 | use Wallabag\CoreBundle\Entity\Entry; |
9 | use Wallabag\CoreBundle\Entity\Tag; | 11 | use Wallabag\CoreBundle\Entity\Tag; |
10 | use Wallabag\CoreBundle\Form\Type\NewTagType; | 12 | use Wallabag\CoreBundle\Form\Type\NewTagType; |
13 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; | ||
11 | 14 | ||
12 | class TagController extends Controller | 15 | class TagController extends Controller |
13 | { | 16 | { |
@@ -60,10 +63,12 @@ class TagController extends Controller | |||
60 | $entry->removeTag($tag); | 63 | $entry->removeTag($tag); |
61 | $em = $this->getDoctrine()->getManager(); | 64 | $em = $this->getDoctrine()->getManager(); |
62 | $em->flush(); | 65 | $em->flush(); |
63 | if (count($tag->getEntries()) == 0) { | 66 | |
67 | // remove orphan tag in case no entries are associated to it | ||
68 | if (count($tag->getEntries()) === 0) { | ||
64 | $em->remove($tag); | 69 | $em->remove($tag); |
70 | $em->flush(); | ||
65 | } | 71 | } |
66 | $em->flush(); | ||
67 | 72 | ||
68 | $redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer')); | 73 | $redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer')); |
69 | 74 | ||
@@ -83,11 +88,61 @@ class TagController extends Controller | |||
83 | ->getRepository('WallabagCoreBundle:Tag') | 88 | ->getRepository('WallabagCoreBundle:Tag') |
84 | ->findAllTags($this->getUser()->getId()); | 89 | ->findAllTags($this->getUser()->getId()); |
85 | 90 | ||
86 | return $this->render( | 91 | $flatTags = []; |
87 | 'WallabagCoreBundle:Tag:tags.html.twig', | 92 | |
88 | [ | 93 | foreach ($tags as $key => $tag) { |
89 | 'tags' => $tags, | 94 | $nbEntries = $this->getDoctrine() |
90 | ] | 95 | ->getRepository('WallabagCoreBundle:Entry') |
91 | ); | 96 | ->countAllEntriesByUserIdAndTagId($this->getUser()->getId(), $tag['id']); |
97 | |||
98 | $flatTags[] = [ | ||
99 | 'id' => $tag['id'], | ||
100 | 'label' => $tag['label'], | ||
101 | 'slug' => $tag['slug'], | ||
102 | 'nbEntries' => $nbEntries, | ||
103 | ]; | ||
104 | } | ||
105 | |||
106 | return $this->render('WallabagCoreBundle:Tag:tags.html.twig', [ | ||
107 | 'tags' => $flatTags, | ||
108 | ]); | ||
109 | } | ||
110 | |||
111 | /** | ||
112 | * @param Tag $tag | ||
113 | * @param int $page | ||
114 | * | ||
115 | * @Route("/tag/list/{slug}/{page}", name="tag_entries", defaults={"page" = "1"}) | ||
116 | * @ParamConverter("tag", options={"mapping": {"slug": "slug"}}) | ||
117 | * | ||
118 | * @return \Symfony\Component\HttpFoundation\Response | ||
119 | */ | ||
120 | public function showEntriesForTagAction(Tag $tag, $page, Request $request) | ||
121 | { | ||
122 | $entriesByTag = $this->getDoctrine() | ||
123 | ->getRepository('WallabagCoreBundle:Entry') | ||
124 | ->findAllByTagId($this->getUser()->getId(), $tag->getId()); | ||
125 | |||
126 | $pagerAdapter = new ArrayAdapter($entriesByTag); | ||
127 | |||
128 | $entries = $this->get('wallabag_core.helper.prepare_pager_for_entries') | ||
129 | ->prepare($pagerAdapter, $page); | ||
130 | |||
131 | try { | ||
132 | $entries->setCurrentPage($page); | ||
133 | } catch (OutOfRangeCurrentPageException $e) { | ||
134 | if ($page > 1) { | ||
135 | return $this->redirect($this->generateUrl($request->get('_route'), [ | ||
136 | 'slug' => $tag->getSlug(), | ||
137 | 'page' => $entries->getNbPages(), | ||
138 | ]), 302); | ||
139 | } | ||
140 | } | ||
141 | |||
142 | return $this->render('WallabagCoreBundle:Entry:entries.html.twig', [ | ||
143 | 'form' => null, | ||
144 | 'entries' => $entries, | ||
145 | 'currentPage' => $page, | ||
146 | ]); | ||
92 | } | 147 | } |
93 | } | 148 | } |
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php index 03be9667..921c739f 100644 --- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php +++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php | |||
@@ -20,6 +20,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface | |||
20 | $adminConfig->setItemsPerPage(30); | 20 | $adminConfig->setItemsPerPage(30); |
21 | $adminConfig->setReadingSpeed(1); | 21 | $adminConfig->setReadingSpeed(1); |
22 | $adminConfig->setLanguage('en'); | 22 | $adminConfig->setLanguage('en'); |
23 | $adminConfig->setPocketConsumerKey('xxxxx'); | ||
23 | 24 | ||
24 | $manager->persist($adminConfig); | 25 | $manager->persist($adminConfig); |
25 | 26 | ||
@@ -30,6 +31,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface | |||
30 | $bobConfig->setItemsPerPage(10); | 31 | $bobConfig->setItemsPerPage(10); |
31 | $bobConfig->setReadingSpeed(1); | 32 | $bobConfig->setReadingSpeed(1); |
32 | $bobConfig->setLanguage('fr'); | 33 | $bobConfig->setLanguage('fr'); |
34 | $bobConfig->setPocketConsumerKey(null); | ||
33 | 35 | ||
34 | $manager->persist($bobConfig); | 36 | $manager->persist($bobConfig); |
35 | 37 | ||
@@ -40,6 +42,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface | |||
40 | $emptyConfig->setItemsPerPage(10); | 42 | $emptyConfig->setItemsPerPage(10); |
41 | $emptyConfig->setReadingSpeed(1); | 43 | $emptyConfig->setReadingSpeed(1); |
42 | $emptyConfig->setLanguage('en'); | 44 | $emptyConfig->setLanguage('en'); |
45 | $emptyConfig->setPocketConsumerKey(null); | ||
43 | 46 | ||
44 | $manager->persist($emptyConfig); | 47 | $manager->persist($emptyConfig); |
45 | 48 | ||
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php index 6c6a331a..fedad009 100644 --- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php +++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php | |||
@@ -23,6 +23,9 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface | |||
23 | $entry1->setContent('This is my content /o/'); | 23 | $entry1->setContent('This is my content /o/'); |
24 | $entry1->setLanguage('en'); | 24 | $entry1->setLanguage('en'); |
25 | 25 | ||
26 | $entry1->addTag($this->getReference('foo-tag')); | ||
27 | $entry1->addTag($this->getReference('baz-tag')); | ||
28 | |||
26 | $manager->persist($entry1); | 29 | $manager->persist($entry1); |
27 | 30 | ||
28 | $this->addReference('entry1', $entry1); | 31 | $this->addReference('entry1', $entry1); |
@@ -96,6 +99,7 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface | |||
96 | $entry6->setContent('This is my content /o/'); | 99 | $entry6->setContent('This is my content /o/'); |
97 | $entry6->setArchived(true); | 100 | $entry6->setArchived(true); |
98 | $entry6->setLanguage('de'); | 101 | $entry6->setLanguage('de'); |
102 | $entry6->addTag($this->getReference('bar-tag')); | ||
99 | 103 | ||
100 | $manager->persist($entry6); | 104 | $manager->persist($entry6); |
101 | 105 | ||
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php index 09058796..9425f961 100644 --- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php +++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php | |||
@@ -16,6 +16,11 @@ class LoadSettingData extends AbstractFixture implements OrderedFixtureInterface | |||
16 | { | 16 | { |
17 | $settings = [ | 17 | $settings = [ |
18 | [ | 18 | [ |
19 | 'name' => 'share_public', | ||
20 | 'value' => '1', | ||
21 | 'section' => 'entry', | ||
22 | ], | ||
23 | [ | ||
19 | 'name' => 'carrot', | 24 | 'name' => 'carrot', |
20 | 'value' => '1', | 25 | 'value' => '1', |
21 | 'section' => 'entry', | 26 | 'section' => 'entry', |
@@ -86,8 +91,13 @@ class LoadSettingData extends AbstractFixture implements OrderedFixtureInterface | |||
86 | 'section' => 'export', | 91 | 'section' => 'export', |
87 | ], | 92 | ], |
88 | [ | 93 | [ |
89 | 'name' => 'pocket_consumer_key', | 94 | 'name' => 'import_with_redis', |
90 | 'value' => null, | 95 | 'value' => '0', |
96 | 'section' => 'import', | ||
97 | ], | ||
98 | [ | ||
99 | 'name' => 'import_with_rabbitmq', | ||
100 | 'value' => '0', | ||
91 | 'section' => 'import', | 101 | 'section' => 'import', |
92 | ], | 102 | ], |
93 | [ | 103 | [ |
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTagData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTagData.php index 8553dced..09e99f36 100644 --- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTagData.php +++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTagData.php | |||
@@ -28,6 +28,13 @@ class LoadTagData extends AbstractFixture implements OrderedFixtureInterface | |||
28 | 28 | ||
29 | $this->addReference('bar-tag', $tag2); | 29 | $this->addReference('bar-tag', $tag2); |
30 | 30 | ||
31 | $tag3 = new Tag(); | ||
32 | $tag3->setLabel('baz'); | ||
33 | |||
34 | $manager->persist($tag3); | ||
35 | |||
36 | $this->addReference('baz-tag', $tag3); | ||
37 | |||
31 | $manager->flush(); | 38 | $manager->flush(); |
32 | } | 39 | } |
33 | 40 | ||
diff --git a/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php b/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php index d1bb9820..d8141eea 100644 --- a/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php +++ b/src/Wallabag/CoreBundle/DependencyInjection/Configuration.php | |||
@@ -36,6 +36,9 @@ class Configuration implements ConfigurationInterface | |||
36 | ->end() | 36 | ->end() |
37 | ->scalarNode('paypal_url') | 37 | ->scalarNode('paypal_url') |
38 | ->end() | 38 | ->end() |
39 | ->integerNode('cache_lifetime') | ||
40 | ->defaultValue(10) | ||
41 | ->end() | ||
39 | ->end() | 42 | ->end() |
40 | ; | 43 | ; |
41 | 44 | ||
diff --git a/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php index 7d08b73b..0cbde908 100644 --- a/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php +++ b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php | |||
@@ -22,6 +22,7 @@ class WallabagCoreExtension extends Extension | |||
22 | $container->setParameter('wallabag_core.reading_speed', $config['reading_speed']); | 22 | $container->setParameter('wallabag_core.reading_speed', $config['reading_speed']); |
23 | $container->setParameter('wallabag_core.version', $config['version']); | 23 | $container->setParameter('wallabag_core.version', $config['version']); |
24 | $container->setParameter('wallabag_core.paypal_url', $config['paypal_url']); | 24 | $container->setParameter('wallabag_core.paypal_url', $config['paypal_url']); |
25 | $container->setParameter('wallabag_core.cache_lifetime', $config['cache_lifetime']); | ||
25 | 26 | ||
26 | $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); | 27 | $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); |
27 | $loader->load('services.yml'); | 28 | $loader->load('services.yml'); |
diff --git a/src/Wallabag/CoreBundle/Entity/Config.php b/src/Wallabag/CoreBundle/Entity/Config.php index a25656d3..d0f0e3f3 100644 --- a/src/Wallabag/CoreBundle/Entity/Config.php +++ b/src/Wallabag/CoreBundle/Entity/Config.php | |||
@@ -81,6 +81,13 @@ class Config | |||
81 | private $readingSpeed; | 81 | private $readingSpeed; |
82 | 82 | ||
83 | /** | 83 | /** |
84 | * @var string | ||
85 | * | ||
86 | * @ORM\Column(name="pocket_consumer_key", type="string", nullable=true) | ||
87 | */ | ||
88 | private $pocketConsumerKey; | ||
89 | |||
90 | /** | ||
84 | * @ORM\OneToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="config") | 91 | * @ORM\OneToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="config") |
85 | */ | 92 | */ |
86 | private $user; | 93 | private $user; |
@@ -279,6 +286,30 @@ class Config | |||
279 | } | 286 | } |
280 | 287 | ||
281 | /** | 288 | /** |
289 | * Set pocketConsumerKey. | ||
290 | * | ||
291 | * @param string $pocketConsumerKey | ||
292 | * | ||
293 | * @return Config | ||
294 | */ | ||
295 | public function setPocketConsumerKey($pocketConsumerKey) | ||
296 | { | ||
297 | $this->pocketConsumerKey = $pocketConsumerKey; | ||
298 | |||
299 | return $this; | ||
300 | } | ||
301 | |||
302 | /** | ||
303 | * Get pocketConsumerKey. | ||
304 | * | ||
305 | * @return string | ||
306 | */ | ||
307 | public function getPocketConsumerKey() | ||
308 | { | ||
309 | return $this->pocketConsumerKey; | ||
310 | } | ||
311 | |||
312 | /** | ||
282 | * @param TaggingRule $rule | 313 | * @param TaggingRule $rule |
283 | * | 314 | * |
284 | * @return Config | 315 | * @return Config |
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php index ceae78b0..f2da3f4d 100644 --- a/src/Wallabag/CoreBundle/Entity/Entry.php +++ b/src/Wallabag/CoreBundle/Entity/Entry.php | |||
@@ -40,6 +40,15 @@ class Entry | |||
40 | /** | 40 | /** |
41 | * @var string | 41 | * @var string |
42 | * | 42 | * |
43 | * @ORM\Column(name="uuid", type="text", nullable=true) | ||
44 | * | ||
45 | * @Groups({"entries_for_user", "export_all"}) | ||
46 | */ | ||
47 | private $uuid; | ||
48 | |||
49 | /** | ||
50 | * @var string | ||
51 | * | ||
43 | * @ORM\Column(name="title", type="text", nullable=true) | 52 | * @ORM\Column(name="title", type="text", nullable=true) |
44 | * | 53 | * |
45 | * @Groups({"entries_for_user", "export_all"}) | 54 | * @Groups({"entries_for_user", "export_all"}) |
@@ -88,20 +97,20 @@ class Entry | |||
88 | private $content; | 97 | private $content; |
89 | 98 | ||
90 | /** | 99 | /** |
91 | * @var date | 100 | * @var \DateTime |
92 | * | 101 | * |
93 | * @ORM\Column(name="created_at", type="datetime") | 102 | * @ORM\Column(name="created_at", type="datetime") |
94 | * | 103 | * |
95 | * @Groups({"export_all"}) | 104 | * @Groups({"entries_for_user", "export_all"}) |
96 | */ | 105 | */ |
97 | private $createdAt; | 106 | private $createdAt; |
98 | 107 | ||
99 | /** | 108 | /** |
100 | * @var date | 109 | * @var \DateTime |
101 | * | 110 | * |
102 | * @ORM\Column(name="updated_at", type="datetime") | 111 | * @ORM\Column(name="updated_at", type="datetime") |
103 | * | 112 | * |
104 | * @Groups({"export_all"}) | 113 | * @Groups({"entries_for_user", "export_all"}) |
105 | */ | 114 | */ |
106 | private $updatedAt; | 115 | private $updatedAt; |
107 | 116 | ||
@@ -187,8 +196,6 @@ class Entry | |||
187 | * @ORM\JoinColumn(name="tag_id", referencedColumnName="id") | 196 | * @ORM\JoinColumn(name="tag_id", referencedColumnName="id") |
188 | * } | 197 | * } |
189 | * ) | 198 | * ) |
190 | * | ||
191 | * @Groups({"entries_for_user", "export_all"}) | ||
192 | */ | 199 | */ |
193 | private $tags; | 200 | private $tags; |
194 | 201 | ||
@@ -401,7 +408,22 @@ class Entry | |||
401 | } | 408 | } |
402 | 409 | ||
403 | /** | 410 | /** |
404 | * @return string | 411 | * Set created_at. |
412 | * Only used when importing data from an other service. | ||
413 | * | ||
414 | * @param \DateTime $createdAt | ||
415 | * | ||
416 | * @return Entry | ||
417 | */ | ||
418 | public function setCreatedAt(\DateTime $createdAt) | ||
419 | { | ||
420 | $this->createdAt = $createdAt; | ||
421 | |||
422 | return $this; | ||
423 | } | ||
424 | |||
425 | /** | ||
426 | * @return \DateTime | ||
405 | */ | 427 | */ |
406 | public function getCreatedAt() | 428 | public function getCreatedAt() |
407 | { | 429 | { |
@@ -409,7 +431,7 @@ class Entry | |||
409 | } | 431 | } |
410 | 432 | ||
411 | /** | 433 | /** |
412 | * @return string | 434 | * @return \DateTime |
413 | */ | 435 | */ |
414 | public function getUpdatedAt() | 436 | public function getUpdatedAt() |
415 | { | 437 | { |
@@ -518,6 +540,21 @@ class Entry | |||
518 | } | 540 | } |
519 | 541 | ||
520 | /** | 542 | /** |
543 | * @VirtualProperty | ||
544 | * @SerializedName("tags") | ||
545 | * @Groups({"entries_for_user", "export_all"}) | ||
546 | */ | ||
547 | public function getSerializedTags() | ||
548 | { | ||
549 | $data = []; | ||
550 | foreach ($this->tags as $tag) { | ||
551 | $data[] = $tag->getLabel(); | ||
552 | } | ||
553 | |||
554 | return $data; | ||
555 | } | ||
556 | |||
557 | /** | ||
521 | * @param Tag $tag | 558 | * @param Tag $tag |
522 | */ | 559 | */ |
523 | public function addTag(Tag $tag) | 560 | public function addTag(Tag $tag) |
@@ -595,4 +632,37 @@ class Entry | |||
595 | { | 632 | { |
596 | return $this->language; | 633 | return $this->language; |
597 | } | 634 | } |
635 | |||
636 | /** | ||
637 | * @return string | ||
638 | */ | ||
639 | public function getUuid() | ||
640 | { | ||
641 | return $this->uuid; | ||
642 | } | ||
643 | |||
644 | /** | ||
645 | * @param string $uuid | ||
646 | * | ||
647 | * @return Entry | ||
648 | */ | ||
649 | public function setUuid($uuid) | ||
650 | { | ||
651 | $this->uuid = $uuid; | ||
652 | |||
653 | return $this; | ||
654 | } | ||
655 | |||
656 | public function generateUuid() | ||
657 | { | ||
658 | if (null === $this->uuid) { | ||
659 | // @see http://blog.kevingomez.fr/til/2015/07/26/why-is-uniqid-slow/ for true parameter | ||
660 | $this->uuid = uniqid('', true); | ||
661 | } | ||
662 | } | ||
663 | |||
664 | public function cleanUuid() | ||
665 | { | ||
666 | $this->uuid = null; | ||
667 | } | ||
598 | } | 668 | } |
diff --git a/src/Wallabag/CoreBundle/Form/Type/ConfigType.php b/src/Wallabag/CoreBundle/Form/Type/ConfigType.php index 7d25cc80..0bac2874 100644 --- a/src/Wallabag/CoreBundle/Form/Type/ConfigType.php +++ b/src/Wallabag/CoreBundle/Form/Type/ConfigType.php | |||
@@ -52,6 +52,9 @@ class ConfigType extends AbstractType | |||
52 | 'choices' => array_flip($this->languages), | 52 | 'choices' => array_flip($this->languages), |
53 | 'label' => 'config.form_settings.language_label', | 53 | 'label' => 'config.form_settings.language_label', |
54 | ]) | 54 | ]) |
55 | ->add('pocket_consumer_key', null, [ | ||
56 | 'label' => 'config.form_settings.pocket_consumer_key_label', | ||
57 | ]) | ||
55 | ->add('save', SubmitType::class, [ | 58 | ->add('save', SubmitType::class, [ |
56 | 'label' => 'config.form.save', | 59 | 'label' => 'config.form.save', |
57 | ]) | 60 | ]) |
diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php index 5dd684f2..8019df42 100644 --- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php +++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php | |||
@@ -95,14 +95,24 @@ class ContentProxy | |||
95 | * Assign some tags to an entry. | 95 | * Assign some tags to an entry. |
96 | * | 96 | * |
97 | * @param Entry $entry | 97 | * @param Entry $entry |
98 | * @param array|string $tags An array of tag or a string coma separated of tag | 98 | * @param array|string $tags An array of tag or a string coma separated of tag |
99 | * @param array $entitiesReady Entities from the EntityManager which are persisted but not yet flushed | ||
100 | * It is mostly to fix duplicate tag on import @see http://stackoverflow.com/a/7879164/569101 | ||
99 | */ | 101 | */ |
100 | public function assignTagsToEntry(Entry $entry, $tags) | 102 | public function assignTagsToEntry(Entry $entry, $tags, array $entitiesReady = []) |
101 | { | 103 | { |
102 | if (!is_array($tags)) { | 104 | if (!is_array($tags)) { |
103 | $tags = explode(',', $tags); | 105 | $tags = explode(',', $tags); |
104 | } | 106 | } |
105 | 107 | ||
108 | // keeps only Tag entity from the "not yet flushed entities" | ||
109 | $tagsNotYetFlushed = []; | ||
110 | foreach ($entitiesReady as $entity) { | ||
111 | if ($entity instanceof Tag) { | ||
112 | $tagsNotYetFlushed[$entity->getLabel()] = $entity; | ||
113 | } | ||
114 | } | ||
115 | |||
106 | foreach ($tags as $label) { | 116 | foreach ($tags as $label) { |
107 | $label = trim($label); | 117 | $label = trim($label); |
108 | 118 | ||
@@ -111,11 +121,15 @@ class ContentProxy | |||
111 | continue; | 121 | continue; |
112 | } | 122 | } |
113 | 123 | ||
114 | $tagEntity = $this->tagRepository->findOneByLabel($label); | 124 | if (isset($tagsNotYetFlushed[$label])) { |
125 | $tagEntity = $tagsNotYetFlushed[$label]; | ||
126 | } else { | ||
127 | $tagEntity = $this->tagRepository->findOneByLabel($label); | ||
115 | 128 | ||
116 | if (is_null($tagEntity)) { | 129 | if (is_null($tagEntity)) { |
117 | $tagEntity = new Tag(); | 130 | $tagEntity = new Tag(); |
118 | $tagEntity->setLabel($label); | 131 | $tagEntity->setLabel($label); |
132 | } | ||
119 | } | 133 | } |
120 | 134 | ||
121 | // only add the tag on the entry if the relation doesn't exist | 135 | // only add the tag on the entry if the relation doesn't exist |
diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php index ccf4e4f3..e50c68a6 100644 --- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php +++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php | |||
@@ -21,7 +21,6 @@ class EntriesExport | |||
21 | private $entries = []; | 21 | private $entries = []; |
22 | private $authors = ['wallabag']; | 22 | private $authors = ['wallabag']; |
23 | private $language = ''; | 23 | private $language = ''; |
24 | private $tags = []; | ||
25 | private $footerTemplate = '<div style="text-align:center;"> | 24 | private $footerTemplate = '<div style="text-align:center;"> |
26 | <p>Produced by wallabag with %EXPORT_METHOD%</p> | 25 | <p>Produced by wallabag with %EXPORT_METHOD%</p> |
27 | <p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p> | 26 | <p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p> |
@@ -53,10 +52,6 @@ class EntriesExport | |||
53 | 52 | ||
54 | $this->entries = $entries; | 53 | $this->entries = $entries; |
55 | 54 | ||
56 | foreach ($entries as $entry) { | ||
57 | $this->tags[] = $entry->getTags(); | ||
58 | } | ||
59 | |||
60 | return $this; | 55 | return $this; |
61 | } | 56 | } |
62 | 57 | ||
@@ -159,8 +154,8 @@ class EntriesExport | |||
159 | 154 | ||
160 | // set tags as subjects | 155 | // set tags as subjects |
161 | foreach ($this->entries as $entry) { | 156 | foreach ($this->entries as $entry) { |
162 | foreach ($this->tags as $tag) { | 157 | foreach ($entry->getTags() as $tag) { |
163 | $book->setSubject($tag['value']); | 158 | $book->setSubject($tag->getLabel()); |
164 | } | 159 | } |
165 | 160 | ||
166 | // the reader in Kobo Devices doesn't likes special caracters | 161 | // the reader in Kobo Devices doesn't likes special caracters |
@@ -265,8 +260,8 @@ class EntriesExport | |||
265 | * Adding actual entries | 260 | * Adding actual entries |
266 | */ | 261 | */ |
267 | foreach ($this->entries as $entry) { | 262 | foreach ($this->entries as $entry) { |
268 | foreach ($this->tags as $tag) { | 263 | foreach ($entry->getTags() as $tag) { |
269 | $pdf->SetKeywords($tag['value']); | 264 | $pdf->SetKeywords($tag->getLabel()); |
270 | } | 265 | } |
271 | 266 | ||
272 | $pdf->AddPage(); | 267 | $pdf->AddPage(); |
@@ -302,7 +297,7 @@ class EntriesExport | |||
302 | $enclosure = '"'; | 297 | $enclosure = '"'; |
303 | $handle = fopen('php://memory', 'rb+'); | 298 | $handle = fopen('php://memory', 'rb+'); |
304 | 299 | ||
305 | fputcsv($handle, ['Title', 'URL', 'Content', 'Tags', 'MIME Type', 'Language'], $delimiter, $enclosure); | 300 | fputcsv($handle, ['Title', 'URL', 'Content', 'Tags', 'MIME Type', 'Language', 'Creation date'], $delimiter, $enclosure); |
306 | 301 | ||
307 | foreach ($this->entries as $entry) { | 302 | foreach ($this->entries as $entry) { |
308 | fputcsv( | 303 | fputcsv( |
@@ -315,6 +310,7 @@ class EntriesExport | |||
315 | implode(', ', $entry->getTags()->toArray()), | 310 | implode(', ', $entry->getTags()->toArray()), |
316 | $entry->getMimetype(), | 311 | $entry->getMimetype(), |
317 | $entry->getLanguage(), | 312 | $entry->getLanguage(), |
313 | $entry->getCreatedAt()->format('d/m/Y h:i:s'), | ||
318 | ], | 314 | ], |
319 | $delimiter, | 315 | $delimiter, |
320 | $enclosure | 316 | $enclosure |
diff --git a/src/Wallabag/CoreBundle/Helper/PreparePagerForEntries.php b/src/Wallabag/CoreBundle/Helper/PreparePagerForEntries.php new file mode 100644 index 00000000..f9066bee --- /dev/null +++ b/src/Wallabag/CoreBundle/Helper/PreparePagerForEntries.php | |||
@@ -0,0 +1,34 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Helper; | ||
4 | |||
5 | use Pagerfanta\Adapter\AdapterInterface; | ||
6 | use Pagerfanta\Pagerfanta; | ||
7 | use Symfony\Component\Routing\Router; | ||
8 | use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; | ||
9 | |||
10 | class PreparePagerForEntries | ||
11 | { | ||
12 | private $user; | ||
13 | private $router; | ||
14 | |||
15 | public function __construct(TokenStorage $token, Router $router) | ||
16 | { | ||
17 | $this->user = $token->getToken()->getUser(); | ||
18 | $this->router = $router; | ||
19 | } | ||
20 | |||
21 | /** | ||
22 | * @param AdapterInterface $adapter | ||
23 | * @param int $page | ||
24 | * | ||
25 | * @return null|Pagerfanta | ||
26 | */ | ||
27 | public function prepare(AdapterInterface $adapter, $page = 1) | ||
28 | { | ||
29 | $entries = new Pagerfanta($adapter); | ||
30 | $entries->setMaxPerPage($this->user->getConfig()->getItemsPerPage()); | ||
31 | |||
32 | return $entries; | ||
33 | } | ||
34 | } | ||
diff --git a/src/Wallabag/CoreBundle/Helper/RuleBasedTagger.php b/src/Wallabag/CoreBundle/Helper/RuleBasedTagger.php index 239d09ae..b490e209 100644 --- a/src/Wallabag/CoreBundle/Helper/RuleBasedTagger.php +++ b/src/Wallabag/CoreBundle/Helper/RuleBasedTagger.php | |||
@@ -55,6 +55,7 @@ class RuleBasedTagger | |||
55 | { | 55 | { |
56 | $rules = $this->getRulesForUser($user); | 56 | $rules = $this->getRulesForUser($user); |
57 | $entries = []; | 57 | $entries = []; |
58 | $tagsCache = []; | ||
58 | 59 | ||
59 | foreach ($rules as $rule) { | 60 | foreach ($rules as $rule) { |
60 | $qb = $this->entryRepository->getBuilderForAllByUser($user->getId()); | 61 | $qb = $this->entryRepository->getBuilderForAllByUser($user->getId()); |
@@ -62,7 +63,12 @@ class RuleBasedTagger | |||
62 | 63 | ||
63 | foreach ($entries as $entry) { | 64 | foreach ($entries as $entry) { |
64 | foreach ($rule->getTags() as $label) { | 65 | foreach ($rule->getTags() as $label) { |
65 | $tag = $this->getTag($label); | 66 | // avoid new tag duplicate by manually caching them |
67 | if (!isset($tagsCache[$label])) { | ||
68 | $tagsCache[$label] = $this->getTag($label); | ||
69 | } | ||
70 | |||
71 | $tag = $tagsCache[$label]; | ||
66 | 72 | ||
67 | $entry->addTag($tag); | 73 | $entry->addTag($tag); |
68 | } | 74 | } |
diff --git a/src/Wallabag/CoreBundle/ParamConverter/UsernameRssTokenConverter.php b/src/Wallabag/CoreBundle/ParamConverter/UsernameRssTokenConverter.php index 6ea2a4f3..40b5673d 100644 --- a/src/Wallabag/CoreBundle/ParamConverter/UsernameRssTokenConverter.php +++ b/src/Wallabag/CoreBundle/ParamConverter/UsernameRssTokenConverter.php | |||
@@ -49,7 +49,7 @@ class UsernameRssTokenConverter implements ParamConverterInterface | |||
49 | $em = $this->registry->getManagerForClass($configuration->getClass()); | 49 | $em = $this->registry->getManagerForClass($configuration->getClass()); |
50 | 50 | ||
51 | // Check, if class name is what we need | 51 | // Check, if class name is what we need |
52 | if ('Wallabag\UserBundle\Entity\User' !== $em->getClassMetadata($configuration->getClass())->getName()) { | 52 | if (null !== $em && 'Wallabag\UserBundle\Entity\User' !== $em->getClassMetadata($configuration->getClass())->getName()) { |
53 | return false; | 53 | return false; |
54 | } | 54 | } |
55 | 55 | ||
@@ -69,9 +69,8 @@ class UsernameRssTokenConverter implements ParamConverterInterface | |||
69 | $username = $request->attributes->get('username'); | 69 | $username = $request->attributes->get('username'); |
70 | $rssToken = $request->attributes->get('token'); | 70 | $rssToken = $request->attributes->get('token'); |
71 | 71 | ||
72 | // Check, if route attributes exists | 72 | if (!$request->attributes->has('username') || !$request->attributes->has('token')) { |
73 | if (null === $username || null === $rssToken) { | 73 | return false; |
74 | throw new \InvalidArgumentException('Route attribute is missing'); | ||
75 | } | 74 | } |
76 | 75 | ||
77 | // Get actual entity manager for class | 76 | // Get actual entity manager for class |
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index 4d45e5f5..cd2b47b9 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php | |||
@@ -3,6 +3,7 @@ | |||
3 | namespace Wallabag\CoreBundle\Repository; | 3 | namespace Wallabag\CoreBundle\Repository; |
4 | 4 | ||
5 | use Doctrine\ORM\EntityRepository; | 5 | use Doctrine\ORM\EntityRepository; |
6 | use Doctrine\ORM\Query; | ||
6 | use Pagerfanta\Adapter\DoctrineORMAdapter; | 7 | use Pagerfanta\Adapter\DoctrineORMAdapter; |
7 | use Pagerfanta\Pagerfanta; | 8 | use Pagerfanta\Pagerfanta; |
8 | use Wallabag\CoreBundle\Entity\Tag; | 9 | use Wallabag\CoreBundle\Entity\Tag; |
@@ -85,6 +86,22 @@ class EntryRepository extends EntityRepository | |||
85 | } | 86 | } |
86 | 87 | ||
87 | /** | 88 | /** |
89 | * Retrieves untagged entries for a user. | ||
90 | * | ||
91 | * @param int $userId | ||
92 | * | ||
93 | * @return QueryBuilder | ||
94 | */ | ||
95 | public function getBuilderForUntaggedByUser($userId) | ||
96 | { | ||
97 | return $this | ||
98 | ->getBuilderByUser($userId) | ||
99 | ->leftJoin('e.tags', 't') | ||
100 | ->groupBy('e.id') | ||
101 | ->having('count(t.id) = 0'); | ||
102 | } | ||
103 | |||
104 | /** | ||
88 | * Find Entries. | 105 | * Find Entries. |
89 | * | 106 | * |
90 | * @param int $userId | 107 | * @param int $userId |
@@ -92,12 +109,15 @@ class EntryRepository extends EntityRepository | |||
92 | * @param bool $isStarred | 109 | * @param bool $isStarred |
93 | * @param string $sort | 110 | * @param string $sort |
94 | * @param string $order | 111 | * @param string $order |
112 | * @param int $since | ||
113 | * @param string $tags | ||
95 | * | 114 | * |
96 | * @return array | 115 | * @return array |
97 | */ | 116 | */ |
98 | public function findEntries($userId, $isArchived = null, $isStarred = null, $sort = 'created', $order = 'ASC') | 117 | public function findEntries($userId, $isArchived = null, $isStarred = null, $sort = 'created', $order = 'ASC', $since = 0, $tags = '') |
99 | { | 118 | { |
100 | $qb = $this->createQueryBuilder('e') | 119 | $qb = $this->createQueryBuilder('e') |
120 | ->leftJoin('e.tags', 't') | ||
101 | ->where('e.user =:userId')->setParameter('userId', $userId); | 121 | ->where('e.user =:userId')->setParameter('userId', $userId); |
102 | 122 | ||
103 | if (null !== $isArchived) { | 123 | if (null !== $isArchived) { |
@@ -108,6 +128,16 @@ class EntryRepository extends EntityRepository | |||
108 | $qb->andWhere('e.isStarred =:isStarred')->setParameter('isStarred', (bool) $isStarred); | 128 | $qb->andWhere('e.isStarred =:isStarred')->setParameter('isStarred', (bool) $isStarred); |
109 | } | 129 | } |
110 | 130 | ||
131 | if ($since > 0) { | ||
132 | $qb->andWhere('e.updatedAt > :since')->setParameter('since', new \DateTime(date('Y-m-d H:i:s', $since))); | ||
133 | } | ||
134 | |||
135 | if ('' !== $tags) { | ||
136 | foreach (explode(',', $tags) as $tag) { | ||
137 | $qb->andWhere('t.label = :label')->setParameter('label', $tag); | ||
138 | } | ||
139 | } | ||
140 | |||
111 | if ('created' === $sort) { | 141 | if ('created' === $sort) { |
112 | $qb->orderBy('e.id', $order); | 142 | $qb->orderBy('e.id', $order); |
113 | } elseif ('updated' === $sort) { | 143 | } elseif ('updated' === $sort) { |
@@ -210,6 +240,19 @@ class EntryRepository extends EntityRepository | |||
210 | } | 240 | } |
211 | 241 | ||
212 | /** | 242 | /** |
243 | * Remove tags from all user entries. | ||
244 | * | ||
245 | * @param int $userId | ||
246 | * @param Array<Tag> $tags | ||
247 | */ | ||
248 | public function removeTags($userId, $tags) | ||
249 | { | ||
250 | foreach ($tags as $tag) { | ||
251 | $this->removeTag($userId, $tag); | ||
252 | } | ||
253 | } | ||
254 | |||
255 | /** | ||
213 | * Find all entries that are attached to a give tag id. | 256 | * Find all entries that are attached to a give tag id. |
214 | * | 257 | * |
215 | * @param int $userId | 258 | * @param int $userId |
@@ -238,7 +281,7 @@ class EntryRepository extends EntityRepository | |||
238 | public function findByUrlAndUserId($url, $userId) | 281 | public function findByUrlAndUserId($url, $userId) |
239 | { | 282 | { |
240 | $res = $this->createQueryBuilder('e') | 283 | $res = $this->createQueryBuilder('e') |
241 | ->where('e.url = :url')->setParameter('url', $url) | 284 | ->where('e.url = :url')->setParameter('url', urldecode($url)) |
242 | ->andWhere('e.user = :user_id')->setParameter('user_id', $userId) | 285 | ->andWhere('e.user = :user_id')->setParameter('user_id', $userId) |
243 | ->getQuery() | 286 | ->getQuery() |
244 | ->getResult(); | 287 | ->getResult(); |
@@ -266,4 +309,24 @@ class EntryRepository extends EntityRepository | |||
266 | 309 | ||
267 | return $qb->getQuery()->getSingleScalarResult(); | 310 | return $qb->getQuery()->getSingleScalarResult(); |
268 | } | 311 | } |
312 | |||
313 | /** | ||
314 | * Count all entries for a tag and a user. | ||
315 | * | ||
316 | * @param int $userId | ||
317 | * @param int $tagId | ||
318 | * | ||
319 | * @return int | ||
320 | */ | ||
321 | public function countAllEntriesByUserIdAndTagId($userId, $tagId) | ||
322 | { | ||
323 | $qb = $this->createQueryBuilder('e') | ||
324 | ->select('count(e.id)') | ||
325 | ->leftJoin('e.tags', 't') | ||
326 | ->where('e.user=:userId')->setParameter('userId', $userId) | ||
327 | ->andWhere('t.id=:tagId')->setParameter('tagId', $tagId) | ||
328 | ; | ||
329 | |||
330 | return $qb->getQuery()->getSingleScalarResult(); | ||
331 | } | ||
269 | } | 332 | } |
diff --git a/src/Wallabag/CoreBundle/Repository/TagRepository.php b/src/Wallabag/CoreBundle/Repository/TagRepository.php index abf915fe..e76878d4 100644 --- a/src/Wallabag/CoreBundle/Repository/TagRepository.php +++ b/src/Wallabag/CoreBundle/Repository/TagRepository.php | |||
@@ -7,7 +7,33 @@ use Doctrine\ORM\EntityRepository; | |||
7 | class TagRepository extends EntityRepository | 7 | class TagRepository extends EntityRepository |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * Find Tags. | 10 | * Count all tags per user. |
11 | * | ||
12 | * @param int $userId | ||
13 | * @param int $cacheLifeTime Duration of the cache for this query | ||
14 | * | ||
15 | * @return int | ||
16 | */ | ||
17 | public function countAllTags($userId, $cacheLifeTime = null) | ||
18 | { | ||
19 | $query = $this->createQueryBuilder('t') | ||
20 | ->select('t.slug') | ||
21 | ->leftJoin('t.entries', 'e') | ||
22 | ->where('e.user = :userId')->setParameter('userId', $userId) | ||
23 | ->groupBy('t.slug') | ||
24 | ->getQuery(); | ||
25 | |||
26 | if (null !== $cacheLifeTime) { | ||
27 | $query->useQueryCache(true); | ||
28 | $query->useResultCache(true); | ||
29 | $query->setResultCacheLifetime($cacheLifeTime); | ||
30 | } | ||
31 | |||
32 | return count($query->getArrayResult()); | ||
33 | } | ||
34 | |||
35 | /** | ||
36 | * Find all tags per user. | ||
11 | * | 37 | * |
12 | * @param int $userId | 38 | * @param int $userId |
13 | * | 39 | * |
@@ -16,10 +42,14 @@ class TagRepository extends EntityRepository | |||
16 | public function findAllTags($userId) | 42 | public function findAllTags($userId) |
17 | { | 43 | { |
18 | return $this->createQueryBuilder('t') | 44 | return $this->createQueryBuilder('t') |
45 | ->select('t.slug', 't.label', 't.id') | ||
19 | ->leftJoin('t.entries', 'e') | 46 | ->leftJoin('t.entries', 'e') |
20 | ->where('e.user = :userId')->setParameter('userId', $userId) | 47 | ->where('e.user = :userId')->setParameter('userId', $userId) |
48 | ->groupBy('t.slug') | ||
49 | ->addGroupBy('t.label') | ||
50 | ->addGroupBy('t.id') | ||
21 | ->getQuery() | 51 | ->getQuery() |
22 | ->getResult(); | 52 | ->getArrayResult(); |
23 | } | 53 | } |
24 | 54 | ||
25 | /** | 55 | /** |
diff --git a/src/Wallabag/CoreBundle/Resources/config/parameters.yml b/src/Wallabag/CoreBundle/Resources/config/parameters.yml index abd9ab68..6068e84c 100644 --- a/src/Wallabag/CoreBundle/Resources/config/parameters.yml +++ b/src/Wallabag/CoreBundle/Resources/config/parameters.yml | |||
@@ -6,7 +6,3 @@ parameters: | |||
6 | google_play: https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche | 6 | google_play: https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche |
7 | ios: https://itunes.apple.com/app/wallabag/id828331015?mt=8 | 7 | ios: https://itunes.apple.com/app/wallabag/id828331015?mt=8 |
8 | windows: https://www.microsoft.com/store/apps/wallabag/9nblggh11646 | 8 | windows: https://www.microsoft.com/store/apps/wallabag/9nblggh11646 |
9 | socials_url: | ||
10 | twitter: https://twitter.com/wallabagapp | ||
11 | google_plus: https://plus.google.com/+WallabagOrg/posts | ||
12 | facebook: https://facebook.com/Wallabag | ||
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml index f8835198..a4b727f4 100644 --- a/src/Wallabag/CoreBundle/Resources/config/services.yml +++ b/src/Wallabag/CoreBundle/Resources/config/services.yml | |||
@@ -29,7 +29,7 @@ services: | |||
29 | arguments: | 29 | arguments: |
30 | - "@doctrine" | 30 | - "@doctrine" |
31 | 31 | ||
32 | wallabag_core.table_prefix_subscriber: | 32 | wallabag_core.subscriber.table_prefix: |
33 | class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber | 33 | class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber |
34 | arguments: | 34 | arguments: |
35 | - "%database_table_prefix%" | 35 | - "%database_table_prefix%" |
@@ -88,17 +88,6 @@ services: | |||
88 | arguments: | 88 | arguments: |
89 | - WallabagCoreBundle:Tag | 89 | - WallabagCoreBundle:Tag |
90 | 90 | ||
91 | wallabag_core.registration_confirmed: | ||
92 | class: Wallabag\CoreBundle\EventListener\RegistrationConfirmedListener | ||
93 | arguments: | ||
94 | - "@doctrine.orm.entity_manager" | ||
95 | - "%wallabag_core.theme%" | ||
96 | - "%wallabag_core.items_on_page%" | ||
97 | - "%wallabag_core.rss_limit%" | ||
98 | - "%wallabag_core.language%" | ||
99 | tags: | ||
100 | - { name: kernel.event_subscriber } | ||
101 | |||
102 | wallabag_core.helper.entries_export: | 91 | wallabag_core.helper.entries_export: |
103 | class: Wallabag\CoreBundle\Helper\EntriesExport | 92 | class: Wallabag\CoreBundle\Helper\EntriesExport |
104 | arguments: | 93 | arguments: |
@@ -119,3 +108,24 @@ services: | |||
119 | class: Wallabag\CoreBundle\Helper\Redirect | 108 | class: Wallabag\CoreBundle\Helper\Redirect |
120 | arguments: | 109 | arguments: |
121 | - "@router" | 110 | - "@router" |
111 | |||
112 | wallabag_core.helper.prepare_pager_for_entries: | ||
113 | class: Wallabag\CoreBundle\Helper\PreparePagerForEntries | ||
114 | arguments: | ||
115 | - "@security.token_storage" | ||
116 | - "@router" | ||
117 | |||
118 | wallabag_core.redis.client: | ||
119 | class: Predis\Client | ||
120 | arguments: | ||
121 | - | ||
122 | scheme: '%redis_scheme%' | ||
123 | host: '%redis_host%' | ||
124 | port: '%redis_port%' | ||
125 | path: '%redis_path%' | ||
126 | |||
127 | wallabag_core.exception_controller: | ||
128 | class: Wallabag\CoreBundle\Controller\ExceptionController | ||
129 | arguments: | ||
130 | - '@twig' | ||
131 | - '%kernel.debug%' | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-114.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-114.png deleted file mode 100755 index 0e96edd5..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-114.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-120.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-120.png deleted file mode 100755 index dc5aab1c..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-120.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-144.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-144.png deleted file mode 100755 index 1d005db6..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-144.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-152.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-152.png deleted file mode 100755 index f915231f..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-152.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-57.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-57.png deleted file mode 100755 index 5aa19ed9..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-57.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-72.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-72.png deleted file mode 100755 index b8b48e1b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-72.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-76.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-76.png deleted file mode 100755 index 9f9dba27..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon-76.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon.png deleted file mode 100755 index 9cf29e2b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/apple-touch-icon.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/favicon.ico b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/favicon.ico deleted file mode 100755 index 0346558b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/appicon/favicon.ico +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/carrot-icon--black.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/carrot-icon--black.png deleted file mode 100644 index 6da7925b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/carrot-icon--black.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/carrot-icon--white.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/carrot-icon--white.png deleted file mode 100644 index a70044b6..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/carrot-icon--white.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/diaspora-icon--black.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/diaspora-icon--black.png deleted file mode 100644 index 32bca194..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/diaspora-icon--black.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/diaspora-icon--white.png b/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/diaspora-icon--white.png deleted file mode 100644 index fc48d47c..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/img/icons/diaspora-icon--white.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/annotator.min.js b/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/annotator.min.js deleted file mode 100644 index fdc35c69..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/annotator.min.js +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | /* | ||
2 | ** Annotator v2.0.0-alpha.3-0f076c7 | ||
3 | ** https://github.com/okfn/annotator/ | ||
4 | ** | ||
5 | ** Copyright 2016, the Annotator project contributors. | ||
6 | ** Dual licensed under the MIT and GPLv3 licenses. | ||
7 | ** https://github.com/okfn/annotator/blob/master/LICENSE | ||
8 | ** | ||
9 | ** Built at: 2016-02-26 15:02:00Z | ||
10 | */ | ||
11 | (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.annotator=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){(function(global){"use strict";var insertCss=require("insert-css");var css=require("./css/annotator.css");insertCss(css);var app=require("./src/app");var util=require("./src/util");exports.App=app.App;exports.authz=require("./src/authz");exports.identity=require("./src/identity");exports.notification=require("./src/notification");exports.storage=require("./src/storage");exports.ui=require("./src/ui");exports.util=util;exports.ext={};var wgxpath=global.wgxpath;if(typeof wgxpath!=="undefined"&&wgxpath!==null&&typeof wgxpath.install==="function"){wgxpath.install()}var _annotator=global.annotator;exports.noConflict=function noConflict(){global.annotator=_annotator;return this}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./css/annotator.css":2,"./src/app":13,"./src/authz":14,"./src/identity":15,"./src/notification":16,"./src/storage":18,"./src/ui":19,"./src/util":30,"insert-css":6}],2:[function(require,module,exports){module.exports='.annotator-filter *,.annotator-notice,.annotator-widget *{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-weight:400;text-align:left;margin:0;padding:0;background:0 0;-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;-moz-box-shadow:none;-webkit-box-shadow:none;-o-box-shadow:none;box-shadow:none;color:#909090}.annotator-adder{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAAAwCAYAAAD+WvNWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMzgwMTE3NDA3MjA2ODExODRCQUU5RDY0RTkyQTJDNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowOUY5RUFERDYwOEIxMUUxOTQ1RDkyQzU2OTNEMDZENCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowOUY5RUFEQzYwOEIxMUUxOTQ1RDkyQzU2OTNEMDZENCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA1ODAxMTc0MDcyMDY4MTE5MTA5OUIyNDhFRUQ1QkM4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAzODAxMTc0MDcyMDY4MTE4NEJBRTlENjRFOTJBMkM2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+CtAI3wAAGEBJREFUeNrMnAd8FMe9x3+7d6cuEIgqhCQQ3cI0QQyIblPiENcQ20KiPPzBuLzkYSeOA6Q5zufl896L7cQxOMYRVWAgxjE2YDq2qAIZJJkiUYR6Be5O0p3ubnfezF7R6rS7VxBlkvEdd3s735n57b/M7IojhIDjOKgU9xfchnXrFtPjltE6Gne/CJQrj9bVmQsXrqf/JuzDTRs2EO8D52dmap3Hwz/9+X9K/PTtPeGnyBL/oS2LPfwzXljXjv9g9kK/+H8WNXsxB8aPe8SPPAKy+v3GvR7+n0fNacfPaQiIfch98vHHY/R6/bL+ycmLhg0bhq6xsXednjHdbGhAYWEhbpSUrHU4HKv/48UXz7GvNq5f36YTGQsWaA0+N3XeR2N4Xr8sKTF5Ub9+QxEZ1ZWe/673AM2NN3Hl6vcoKy9ZK4qO1Ue2LZX4Zzyf1ab1g1sWafK/GjVzjA78sjE/GLto8oxpiI/vA4h3EZ22KhIRFRUVOPT1AeTnnVsrQFz9QeM+id9bRHoteFaZeCakpS1KSkqCzWaDyWTCvSjhERFIm5SGuLi4JSeOH2cfveQWjLeItPg5TrcsdczERTFdk2G2AMY61+V0V+eAg8EQi8HDJqNnj95Lcs+28jPBTH/un37z6zh+2U8XpC8aO3QUSIMV4qVbd78DPNAnNAaZz83HqeFDl2zfsMXD/17jHvw8ulVEvBb8P9eulSwPU31jY6MkIFEU70llbZnNjeibkIDExMQljMXNRUUkWU6ibEo4mfVZlpiQvCiyUzLqjYC1hdpmevWKd7myNlhbDbeByM4DEd8ncQljcXMd2kq9kaQCbf7XomctG00tT2rScJByM9BsZ+YBkgm9m1UgUlukzIxx/Udg+KgRSxiLm+s98x5OS0DuTvC0LB0ydAgsFus9E453tVgsSHl4OINZKufVEJCHn+P4pX2TUmBsdgmH3NvqoG2aaNv9B4wEYwmUn7qupdPSJkNssECkkyqK97iyNustmDnjMTAWJb3o1a6AH86ZE0YnLSUsLAxWdjndxxISYmC+KGXkyJGGc+fOsVEXifroS/wJQ2aH8RyfwuliYLfffauvViSrFNaJubWUbnEjDPWV5yV++OBPDekfpjPoUnqEdAFpbrl/HaAiiuWjqZr5lP76HoZrjlonP+ck4tWi/oS+fSN0Oh0dfBsEQbjP1QEai+GRceOi3YwLFy/mFObAwx8VEx9BOw2b/d64LS135hB46PQ69EgY6+E/vO1FjrSPhj383XWdIgwGA4iFuhJ6EiLep0rb5h0EIaEhGGyI8/C/Z3K6MVULZLFaeTZBbldyPwtrn7EwJlmMQLRiIIfdIvELrknUSPnQaCxDk7kqYK4e8WNhs95GSFgMc1GqxzkEp8tiTP7y2+Dg2TspLBGJRr5HUG6uRVVjfcD8qb2GwtjSiM6hUdTf85pWiLFITDJ+9l/VLMxht3NuATEroFbs1D+sWfMRNm3aFHAHvv32Wxw7loNHHnkE4eHhGgLiXRNg52RXqWYMIQr0WJqOSvGIhoCs5nI8MyMUT82cGDD/whWlGJpowaUbTdCH91EVkTT/jEVoy88+U+WHyHkuHo0OlFvqEPHjAZg699mA+Ytf2gnb4EiYixsQZ+iiKiLO1b6LifNK2JSvALsgcCK7gn24l3/84x9BiefGjRJs3LgRK1asxOrVa6RgWasdxsKYZFeA9JkaPxGd/CwYFDTqE9OYePoEzL/490Y8Ng54Y8kgPEnPYWmsoJZGUGxDCkhZ0Cy25deyQAKI8xiRaNbIHw5AwtyRAfPXvrYP+mnxGPafjyLy8WRUWm7ScRZV23GuLpI2/FoWCILD4UmVtVzY7t17pNedOz/DuHHj/IvL6EAfPXpUEhB7/+mnn0qB8qJFi+hriOLCouSOKJP35+pWi/GLPl3Y9PHdpdd3PmlBcTnve4lQFKglNCIxrjOendMXOp7DE4/GweaowFfHacqli2rfX5GxihJTW351MHa1Ow2XtgXqOWWQ9Gr6v1zgutmPmFiEyd6Mzgnd0O3JUeBonNj38REotYtoPlCFSBKmmAmQVgskc5/tBcTJV6iJy31pubCWFmeGFh0djStXrvjsALM0Z86cxejRo/CHP/web7/9R2lx8rPPdkquLCUlRVFwRPQkLq2MYrvggGt9lYIHnwIKMThFc6OaaMdK7gl31GFIvAVXK5uwcXc8np+lR2Q4jx9N642L5QKKy6AoIKe7asuvENxwbV453y6MD3FOob3CBJ2onaoxK9hAzLAODEfj9Urot11GxDODwEcYED87BY1XHBCvGZVdGKfASHug17ASflkguZBY1qZVrFYrvvzyK8nlTZkyBa+/vhy/+tWbePfd95CZmYGHH34YDodD3QI5XZh/FsjFL/oKomWT7PM4Wx2mjgGef3wAvsmtxebd5eD5BDwzHdh/muBqhfI5RNHJKgbA73FhgjMT8mkZaaDr67gGwQw+rTeGPTsG1ceKUbK9EP2oBQ2bmwzb0TII143KHXB95mbyZyvD2WFpArQtkDxT8nXcnj17sGvXLixYkIkPP1xNU3Mdli9fjuTkZAwYMAC3b99WHFTGICosvImam1rE6TZ8BNHyeFbrOIu5ErPH6yRL8+XRevxkVk8a89Rg2yEzymujcfmGugVzLh6L7VaetVxY674U0czCWseIJkUax1U1NSB8eiL6zh6Oqq8voM+TI0AcIhq+uIqYqibYi2+5on0FDEK8QudWPrUgGm4X5lyVVF8plgtIq2ZnZ2P//gOSeE6ePCVZmiNHjiI3Nxfx8fG4efOmM1hW/D2Ru7BWRuUZ59yTI0/j1ao8U1U7pslUhSemGvBYWg98cZi6sKQQ6HUcpozrjv4JUSi4SlBbcU6zHacVFdsxauzAA7IYSK16RKlxTDVN8aNooBw3Yygq9hQifGA3KfbpNWkQovt1h+1iPfJriny0o8zIq1+/8Fz1WtXbzSjV7du34/jxE3j66aewb99+nD59GrGxsTRoXojhw4dL+2zp6fM1zyGxKPh0TQskiU97oU82/u0XAanIm6l45k7SYcrYbjhwvAGpw8IxalgMjI0C9p6gqXBJC+rLT2Hz/4zQbKfNZPtjgVy5DnNNoiCq1lb+9t/ZHHZpfSh8Vj/0nDAQ1UcuI3pkHGIf7guHyQrrgRtoLq5DbvUFjP94gWobxLUO1M4KcRoCgmfyxKAtkNlspsHxZzTj+gZPPfWkZHFOnTqFLl26UMGkY968eaiqqsKsWbOllWa1NtzWxPs+DK0YQmKH6HO/Su5m2uxjOWzgHJX40eQQzJjQHfuP12Hk4DCkpsTA1CTi65PAvw6LiIrkcHhjmuI55JUo7F74dGF+WSDl42yUv1q8jaiZyeg9dQgqD19EVEpPdBuVCMHcAuvhUjR/eQVcpAFzvnrdZ1tqRTsGoj9soYGvpbnZZ0dZgCyf4Pr6euz8/HNqXZowZ/ZsfL7zc1y8dAnstpDXXnuNZlw/QGVFRZugWa0dGip5VqO94y5Nfnr11Jpo8GjSWsl1lhp6TKOVuAbSjq5htUif2wU9YsPw9bEGTBnTGQ8NiEJZjQPrdhPsO0Ngp+gtQqsLrDIqt2Ojsad0JXsLyEdwxgRWe+EaBKNV9Ziu4mPSa92F60Cj3bnyTQSYYoGkF9MQ2SMGJbvOoMe0oYhN6QtL6U3UrT0N417qsuwUvmcE4thYOgTUFChn0brOYcpi11oHct9swG4207hjsa3FdR1369YtfPXVbjQ3NUuZ1cFDhyTxJCQk4KWXlmLUyBGoq61t5/DV2mGfK938QHy4MCkyVr1rQrnDRHSgU0gd5s+JQq9uYSgsNmHiyChJPBV1AtbvEbAvl6bN7iUdoqBGxXO3d2Hww4VxAtsW8OMeJHaMw7XO04Wgb+Z4RPXsgvqCUnSnsQ4Tj7X8Nmo/zoVp92WqatE59kIro1o7jCFgF+bLdKkVFs/s+vJLlNy4IYnn22+/ke4s7NOnjySeQYMG4ZZKtuWPKffXAkliCOLWwwjDbaTPMmBY/3DkF93EhBERGDE4GtUNIjbsJTh9kW2rcAGf1+mCA7kAPHsamtX7uKYIET0XpCImJR4150rQLW0AdVtJaKkyoeHjM7AeKwXv0D6HVjv+uzB3Bzn4Z4FcluokjXHYWk9cXG/s2LEDVdXVGDhwIN5++w/oS7Mto9Eo7Z+5B09+btV2OHdM4/8EEFcaH5gBIpg+miD98ThU1bXg6RndEdc9FNcrBfx5sw3fFet8nkN9LEUQBB4D+ZrA1lTbue3RaeZADF4wGU0Vt5A0bywi+3SF5WoDKn53AC1nKtunUV4CUmNQmxefMZBLQX70gJOyory87ySBlJdXSGk5i3lWrPg1uyEMdfX1bY5v8+r93os00BgIUuAtBGQlOGLDlNERMOg59OkRCh1N1ctqBLy7TURZnR53clOOxOIlGE0+uQvzoxvsGAc9f4/pg8EbdIiK7wpOz8N64xZq3zkC8bpJ+Tyil6sK0IXpfWVhfsdA9Bi2lsPclfvfDz30EJYv/y/JfTFRsaq17KEZAwWahYH4dYXLS2xUE0YN6e7hKioTseZzEXlFzoD5TkqwFogXtUMl+XH2biHolprkGVbrhVrUvXsc1hMVUsDMqyygus0kL6qfO+gsTEl4ahdMYUEhevXqheeeew5paRMl12W1WNDU1OQUo49VM07j3IFbIBJQDCTYTJgwPgb1Rg67jjtw5hLB5VKaEJi19sjYBi/bwIz0MwYKfCWaJ/4JqEmwonfacIg1zbi54wKaj5XB9n0thAYLtSCi4tgyQVscLZ4xVhUQgepKtM8YyJcFiomJkdZ7mOtiT1E8/czTUlvSExw03nGn6UrnYC7ufP556X337t19WqCAYiDXSrqvYmwiiIoAUgfcwjfHS3Ekh8DcJMBqE6jV0RYgc3EjU3rQd73QYPQjCQgkjWdxHxOQQPsuqI+/eIum+NFhcIzvgfzDuSAHTsFuskCw2CHatX0fc3GJ41Kdc1HXLLWlKCDGoGBJiIqASBsL5ENAmZmZeOedd/Dff/7zHZn4n86bpykgLwtENCwQke+F+So7jnD42U+A/31jyB3x//sYD60Htrz2woiGBSJtLBC7g0JUH/+mdQUI/c0k/OCjzDvit26+AJ1KOxIDp8DoTwwEHwJ64okfIzw8DCtXrgoYmu3es62M+fPTkTZxIhoaGjouBnKtRPsq2fsFKb5543ldwPxMvxdvEHz+rYAvckSt/CLolWieXeYah5k/yqPmXkDXP04NXDUCQUtBDRo3FaJpy/eqazq8xrKFqoAKCgsbJ0+Zwp6NkTIotcmqr6vDzMcek24GC2ZthN0fxITDnkRVEqr0Gf2/xWq1HTh40OjvXtjt2kuNvRIfgY46dl7KENU5th8WpHo3Cs+sCC/QGKvZVn09x+jvQmKRtapxnDAAOnbbjchpJoDNa/OleidFB/UlFFZaHDbbCXOR0VcM5MYkNTU1gt1mO2M0GVNDQyNosKg+wEwAatbD7xRaxcqxpxnY2pHDbv/Om1EhhvB8Z22qpyFWyxnOXpaq1ydIT2fcj6KnI8y1lFFrpcBP1Pkb7GbBQYQz1Tpzam9dGIhNuC/8XIgOFbwZAsR2/NqbqfQAk9mclZd3nrqoUPDU3XDUEt3LysQTFhaKgoILMJpMWd4LMdq78TRzbWnMaijZg+hwZkXv/eDraJus7VtlB2Gzmtvx+3BhpFlsyfrG+j30ESHQcbwUo9zTSttkbZ+0XUYTZWm3EKYiIPfiLXn//fe3FhUVbygs/B6RkWEwGPSSO3MH1nersjZYW0y4hYUFuHDh4oa//vWv2+VsGjGQ55hLp7O23qou2GCv34Ou0RxCDezc7pju7lQnP4ewEA5dogjsdV+hoTJvw+XcdQr8oiZ/VtWRrRcbSzccNRRB3ykMOjb+7H90cu9qZWKlbek6heKw/jIKzNc3rKs60p5fIwYirpRCzMnJ+RO7FbO8rCxjzJjR6BzTBexpVfcEOhyilKqLYnCrtGyw2Z2JrLrdGHuU2nj7JnLPnMX1ayXrjxw9+o6bp00qI4rwxV9XdvZP9ECuU31RRvd+M4GweBBdJ9c9RtS322gGYvPvtlc1KxMWAoSGOOMdqQ+CEZytAnUX98JYf3l9bekpRX6NPxPi4T9jvvYnGsNy10NrMqbEPoQ4eydECqHO37IO2GhwbnU4bwcIqgP05KFUBqG81AGOVhPfgmqDCUeshSg2V64/aSxS5tdI491VOHHiRD2tby7IzDxcUlKaodfrh1ML0c198JChgzFhwgTYaJARqIiYeEJDDcg9nYv8/EL5AmENFeWF2trajes3bNjLlpXg3DcOyAKx39RX5NXT+ma/4U8dNtVfzuB43XCOa+WP7TMWnfu+AGMTH7CImHg6RVIRVm5HWWmO3DXVEFG4YG1u2Hi9YKcGv+iTP890rZ7WN5/t9cjhq7aqDD3lpz7Awz8quj+e0o8CZ3Y4H8YPVDyRIdgVWYBTlstOQkF67rrGYREu0Dhs447qk6r8akE054Z3vWcrgbxrIg9KAbuzMvfHv/rqqyx/f2EiTcMDEZFbPKdOncaxYye2/u1vf/u9TOWCq115FWSdwFtvvUUUYiBVftdEtuMfOMa8qhchL3ROSA9IRG7xWCu3oap479ais5sC4h82fqlaEK3I75rIdvwL46etQiT3wjNigCJyieffEfk42JS/NavsUED8rybNIWouzG0+OVknIDt5mw588MEHv6WnY4/ppk+aNMkvETHxsOfATp48ycSzhZ7jNzJwUQbr3QE3m8bfVgiMv/jspt+yxzd6gqR3Tpjvl4g84qn4FFVX9m4pOrs5YH6NFD4g/nXlh3/LJXCEi+TSf+KviFzi2RlNxdNcsIWKJ3B+V7jhKwaC68dEdmJe1gGpM1QAq1555RV2zPzJkydrisgtHuoWmXiy6W9XymAFlY4I3j7Yxz5XQPxFeZtXsYioJxHnd07M1BRRq3i2orJ4b3ZxXnaQ/GKH8WeVHlqFRI4gGvN/SkaDM2mIiIknKgSfdTqPg5b87KzSg0Hxu2WtZoG4Nmpr3wFe1gF2DvHvf/87BXmFWYaMqVOmKIqIBWihVDzHqXhyco5n09+soB/bvVQuqlSP7/3lL3/pywIFzF+ct2WlcwsfGZ2TlEXkEU/5Fqd4vtsSFP/QcYsJOpg/6wYVQhIVUScu4zlxNHglEVHxgIrnX53PY39LQTb9TVD8ryQ/7qHXskDenZGbVvdfadDJG6WCWEXIy2xsMqZNYyJqzc5YdsJinmPHjkni+fDDD3/tgpd3QAm4DfwvfvEL4scue1D8VBDMEqEXCBXRgjYicovHUp5NxbMn+8p3nwbFP2TcQuLHFktQ/FklB1ZREYGLQcbzxEtETDzRIdjRJd8pnpIDQfG/kvwjv/5GohK8fFPf3Yl26qTCWEkI+2tohIpoGux2h3SxMfHk5OTIxWPz6oCgkCq2uaHwjTfeIAHcohEUPxXGShaf9IJIRbRIEhErTvFsRmURFc+5bUHxDxmbSeD/PUpB8WeV7F9J+nEgXbiMdLclYmNGLc+2rvnYZyvIXleyPyj+lwfMbTf6ej+vBO9/K5lYT2OrV69e6XwkCBmPPjpDsj7s0Z6cnGOb6Xdu5du84NunibS8/vrrxJ/N047kv3Juu8Tfi/J3TV4srdk33tjELM9m+l1A/INTM+45/7rr+1aiPz0olsuYz4+RNkM/7XoO++35m+l3AfG/PHCuJrQ+yM4QtL3JsV1H16xZs4IKh32eyf7ihks8b8lUr2Q6iVwwHVwC4r96fgfll1brMnX6MCqe3VQ8//LJPzg13etc4n3hX3dt3woumY5/F2SGwoB9joLNWdf2+eR/edCPAxp/fQd0SJ4ttFkMY4KxWCx5Op0u4pNPPlkvi/YV4ZcvX04IuWd/DNAnPxOMYG/J4zg+4lrhFz75B495geAB4s+6+vVbln72PB3l33ztgE/+ZYOfCJie8/GX6v06h8wnyzMDveu9/CqRp4vtxBNM43/5y1/ueMO5I/gl8QRRLp/NfiD4mXiC2oq6U3rXxBOFVUzmY1tcr/Lq6CjxdERxTfwd8Qcrno4orom/I/5gxdMhAlIQkXwF064CLzwI4lERUUD891M8KiIKiP9OxNNhAvISEVFZDpevaJIHRTwKIvKb/0EQj4KI/Oa/U/F0qIA03JnS+wdKPD7cmSL/gyQeH+5Mkb8jxHOnWZiWiOTBLVH6/kEtbmHIglui9P2DWtzCWH3534r8HSUcd/l/AQYA7PGYKl3+RK0AAAAASUVORK5CYII=);background-repeat:no-repeat}.annotator-editor a:after,.annotator-filter .annotator-filter-navigation button:after,.annotator-filter .annotator-filter-property .annotator-filter-clear,.annotator-resize,.annotator-viewer .annotator-controls a,.annotator-viewer .annotator-controls button,.annotator-widget:after{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAEiCAYAAAD0w4JOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDY0MTMzNTM2QUQzMTFFMUE2REJERDgwQTM3Njg5NTUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDY0MTMzNTQ2QUQzMTFFMUE2REJERDgwQTM3Njg5NTUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2ODkwQjlFQzZBRDExMUUxQTZEQkREODBBMzc2ODk1NSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENjQxMzM1MjZBRDMxMUUxQTZEQkREODBBMzc2ODk1NSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkijPpwAABBRSURBVHja7JsJVBRXFoarq5tNQZZWo6BxTRQXNOooxhWQBLcYlwRkMirmOKMnmVFHUcYdDUp0Yo5OopM4cQM1TlyjUSFGwIUWFQUjatxNQEFEFtnX+W/7Sovqqt7w5EwMdc6ltldf3/fevffderxSZWVlZbi5uTXh6rAVFBTkqbVubl07eno2d3BwaGgtZNPGjYf5wsLCDRu/+ir20aNH2dZCcnNzN6uPHTv2S2xsbHZaWpqLJZqJIR9FRMTxdHFJeHiiJZrl5+fniiF0jRdumgsjyOZNm44AshHPxAnXeXEhUzAJJEF8j5cWVoIZg9CmqqiokK3CksWLX3d0dJwy+f3331Cr1RoliEajMQ4Sw2xsbHglTZ6CampquOex8dxz2l5gkEY4qKyslOu1Qa6urpPRs9VkW2RjFmskQCaFhASQLZEZkDlYBBJDnJ2dXSnwmYLxpiDCdVMw3hyIObCnlr1g/nwfQCYpQcQbOTM5tbgDeDEkZPLkoaYgSpqpKysqnkIaNWrkYq7dUEim0EwhmkI1bw1ETjNVTk7OA2sg0jarDyO/ZhiJjtpS4923L1dWVs5VV1vW8Dyv4uzsbLnkc+c4dceOnn1LS0vat23bhnvSgypOpTItajXP2dvbcefOneVSL146ys+dOzvgyuWrMadOJeKGrb6AeRBb7syZM1xqyo9HwfDncZ0L+0dowGXATpw4qVfVGEyAJCUBkvrjUTzrTwzUkirDcfOewk5w9oBp8AD9iljoGt07rTvNpaRcPDqPIOx5+mlOkPnz5wakpV2JiU84ztlRNTVqTsXzeuHValyz4xJ1Ou4CICjrL37WoPsXLAgD7HJMXFw8Z2ur4dT8E23s7Wy4UydPchcupB5FGX8ZOxKUeyYLF84LSLt0OebYsXi9ZvYOdtwJBsE9f7lnVAUFuYp2smxpxJFOnTu9aWtry6VcSDm6cNF8f6WyRkEMFg7rclq0aP7fjZWrDyNmeL9c8iDedu7YMRK7xoHjx28y2tjGcsivt29PaOTsPNAGeSIGidNBwcF9La6aAPH18+UG+QzmtFqtN67pLALt2LYtAUOUHoLMWO/1BMM45o17OgUQ2dEz2R4drYf4AMLzakTNahY5n8FQRid9rpZG26KiE5ypOkP89JqIjZWOVSqeG+zrw7lp3bxRVidbteitUQnOLtQmhhApzMfXFzCtN57R1QJFbdkKiMtAP0Ao7lB16CE5oXtUTYJRB+BZPUzd6uWXE1xcXQcO8R+iqIms3aADWrdpw2VmZrbQJeoCeBdoYinkWTVVHNVC21jrrSopKakh67Y2ChCMXmw0xizbXM2I8dyc9gUObBpTBTw8WqixGw45n5GRnl4XjaZD9kP+DaibVSA8OAu7SHZKWm3GtTYWgfDATOxWQGxElynsepkNAoSq808JhII7DZKHzWpsQGYwiPhHyPzD0NifmtVGrE1WUlSQaDIXkNVm2REgc1jDiqtTBQk1pkmtqgEyCLu/SqpKkFmArDHLsgGxw57euaiXIkSQOeZCBI1egtCs324IxVGy3s9NtYkcqCtkGBtXHkLeAyTBGl8rZPZxCfIAkNIXLB6h9/4A6a/gMv0hvUyCUKgLdlsoXODYXwJ5E7sDzPM7G7OjPtjvgnjSizNkqwDDPoD9AL08E2QXaa7Ua40gLUTXmkHW44Gd2I9ndiZsLVh52ar9AAlmNiRs7eg9ByIOYtkMHGe0+6HBW9ithbSSKXcH8iFs7DuTvYZC31KKpFAuyhhE2v3kJkEK5YJZwytbtru7B8GGQjZCmhopmwkJgcRCu2o5jXwh2yWQWyxS3pH05teQwUpVK4Jkia49YA07l/ast8T3ihR7DfXvhuP/Mq2CATksarsRrBPuQQJx76Kp7vfGzh4F42V8zQe7YtxL+u2EkVoDZJ8+fej8VQi9vPRmg8BpCKXAN5OSkqpNVg0QR7VaPR3n05FLN6k9mcJnYLcK178ErEQRBIgTMtMNyG4Djaqv0XyJMtMBM4jrPCC8vb19KEHatWtXMHbs2LtOTk7lQoHGjRuXjBs37q6Hh0cRyvwZr+5/kW1s3GhXVVWlfxXv27fvhTlz5iybNm1aCuBVeEsqnzFjRmJoaOjS7t27X2fVXIgfdzfQtnnz5sPv3r2r/3/Rvn37WkdHR/8I1UNdXV1X4kdK+vfvPxsPNm3YsKE++JWWlmpbtNBH0C21QDY2NgOEk8LCwlY4340HhwM2DZfKcaxFJ+wsKip6OlfZoEGDwVIQD/Vrzc1Ciyb+/v4UGS9A0nx8fDxRHSdxGbzTaQ2q1qpVq3vnz58XGrYUbZIM0FVo0gOXyqBZ8p49ey6tW7fO8/Hjx7ZUrm3btgbZLe/p6Xnczs6ODI8bMWJEGiDTAfGAFjGo5nc4rh4zZswMaKYPKdSjXl5e8XLdfzQgIEBf6ODBg2qcv47qRcH4GuNlpRWOd+Bap8TERH0CNnz48Gv9+vVLkDNINXrtg8jIyEWootaYQaIHs2AKc5s1a7aVZS8GLuJ0//798M2bN4+NiYlxxztcLR90dHSsGDlyZHpwcHBU06ZNKWUuNRZGnGAjwTdu3BifkpLS7PLly05oJ65r164FMMZ0WH0UXIRG5GJz4pGajaad2RBOnXCZSYa0OrVAMueOEFc23tODuUyKxSBpQBS3hcbd3b396NGj+/v6+np16NDhVfRcNar40/fff5+ya9euk/n5+XeYlsoRomfPnv3j4+O3oJ0e1Ug2uMeDQ4cOfdmlS5deQlSVzgfoqzNkyJDXrl+/Hl9jYrt48eIh/GBHWRCq4HTq1KmtVLC4uDgZu48QVrKFhxGD7mC3DCZxjc5jY2M/o9HGAAQfGlBeXv6YCqEtKLd2weFYNM9jALNwTJ7e5OzZs1Hsx7JXrlzZ3QCk0+nmCb+el5d3Jzw8/ANKpnDqC6FBQLt27dp5CDGZQrnjx49/aACCe2yRNOx9wPsJvQBN3iorK8sXl7l58+bnUpDGwcGh1lQEQqyNt7d3GYUdeqXo1atXKQraissgWlbIDAyaZOzfZ/8+TMd5iEqluhMWFvZHmEIpjncDNAHttR6RUsuC31kDA4LanihUxOq+ivLGNWvWzAYjF4Hs3qJFi6bgWuvU1NStrBepR1satBH+0ERLJBXKyMi4AMP7Ag2bJbRHbm7unQMHDqzPzs7+ic5RNgw7lZxB0oErfumgKYOE5tHYNVSybAHmBlkB+8mXAnDtISALcdhI7LRiUUnmgowmEWj4akXvF1+g4Zs6hYmGRUIyhXLKRIzlUuJshEYOyvZDUBUHaTaCax/jcINcAiHORlpi6NmJHulrIhtZi06ZDViF3HAE43aINAahZAIWD0bl3wD7E55RGYBcXFy84f3vKkFo9IWVJ82aNSsVY34lNF8Ky25pAELW8Ta6VnZCSqvV0hB+ys/Pb/qZM2d2oRxlI+4Y194wAKFLe9IBDduBgYG3e/TooX/dwg+UzZw5U4chnNKatgjDoXAnDc07oikGGrQf1G1AB+3bt8/FABgJ1duvWrXqvUGDBl0HZBYgbSgtRBu6irIRZwONkDTRywqH0UL7zjvvvILBMQLD9+qhQ4cS5GVAvkIju4pMoQY/+osBCDFbh8arIkdEo89euHDhAgC+ZZpsFEP0bzbNmhUhG/nBADRgwIADqEbG0ymaqqrZqN5+xJ5NgBhMzmHcO4cU57gBqGXLlmkTJ07c0K1bt0dPp68qKjoCaLAOibJbZL00o5Oj5CKu6enpS5CIvo3hpjnito2kOsVBQUE/jxo16hP0zUY2q6OYRDijjQJv3boViDzJHdGyCaUz6Lnszp07X0GnbGRv5JXmZCPk/ZRD08wE2UoBez2/xhIJztxshGfZiBsbRSgePWKQEuk8tlI2Yo8M1xOJZz9kI52QWL2CqpYg6F9FHE/duXMnrX24K9c+4s0B7jEKxngQXV6ikI18gQy4h7FsRD116tQ3MzMzL5kK/uiEfTDgNrIgdKv7lStXYk2MHlmIkAV0jKHpYyRkDQxAyOqDULDMCITSGh/kRpMoa8GWsXr16l5SEA8H7AdHtJVrOGjxC+5NQui4mpyc3Ap7Ncb95sgHDGe+7t279x0biovhGovx8H6mSQZpQoYdFRW1VEgJcb/q9u3b6wyq9vDhwz1suD6PzL4nUhZnnG6AUBRshiQ+HJA80WBZmZWV9YkBKCcnZxErUI3R4Ru4Ak1wksO6b9q0abEYwjQtR0IWaABCKvc6bhYLBRGbd+NV9D1UJ4IyEmnjI9ymYecul43YoTfWiwtTBoJrRXK9iLYMUkwicPASChwxIxtZRm9TprKRxpDlaKocmWzkKnYTITbmZiNqNuNH89tjWSSk6aBk2FCWMe9/kf+7vnz5ilp1k55b8q+/moiI5TWiHpCemyVKD1sM44w8bDXI6mrJgercRnWGGbPsGpkB1CqDVP3GXeR3CLI4CsgZFzPGOvmaVRADkLWQWiApxKp4pACxDPQ8IIL3S728xlKHFexIVRevr3faFwZkdQIhE0ZeoJFWLh5ZBTOlidkwc6plFkwpibA4tPAW/FOh3tfqQRaBrHrRMZWNmDvyPheIrPdbmwO8wBmbNB5ZldLI2ZGq3td+RRBNz0NWWr2ShRaguLi4LFOr1R9UVVXdx6U5FoP8/Pym2dvbr8jLy3O2em1NUFDQ4cLCwoA6t9G2bdscpk6des3BwaGyTiC0yachISHX9+zZk4Qq3qtrxuYEmQWJO3v2bEzv3r2/qWui1R6y5Hl4f72vWTgjY0n78UoDZp2rplKpHCCd6gIiB+44evTod1NSUhZb21Yvd+jQYZROp9tZWVlZVlxcnKU03aFo2di8du/evVa88MQqEP58IZ0Itxakhkyj1R51AkkWDui1QzXvWw0SAWmVyjeWguq9vx70XCIkxjD6T3E4ZGlSUlK+1Rrt3buXFpPSmtFbyEimQdRWgRo0aPA2O6b/X6+DXAQs4Hm0EYXZw4CF1Qnk5uZWGhgY+CnaK9KqjM3W1rZ62LBhVydMmDDdw8PjqMWNlJubewL5UWZiYmIo/WPTmgRCiJBLIc2tBdTHo/+3tMaS1IZnRknLX23qpNLBgwddk5OT93p5edG/nFtLtTTbIOPi4uif4TXl5eUFBw4cWOfo6EgfWTS1GiRa7vnzmjVrKD9qXyeQaAuzBCS37OxnyAykf3utCiPck9U8tEIzEpASa15qaHkHLfloY860UL3314Pk4pG7u4ex+7QYhT60bA6Jh2yAlGZkpBu1bOlGn6HtF52P4Z587duVk6xpM1a1cSLIEchJkYazzG0jWuxOCTstfKMv6OhLMlquF8vuDzcH1I5BaKO1o/tEk3jC0sUcUyD69RvckwWDHIuStIDSHjKE3actwlgYoRXj/2HH9GYkfGlInyreEZ3/jXuyoFlWIy8RRBgAxJ+WCRD6cPdfxgzyI3ZMHwPu4Z6sgKaPLO+z6ze5J0usPzMVIYWPKZ0YuJr1lPB91ihImjmhlj5bfI118SlIHkRIRqeYAxFchNZiX+EMP6ScImq7WpuSi5SwTHYyc4u7rFEvWuS09TH79wz6nwADANCoQA3w0fcjAAAAAElFTkSuQmCC);background-repeat:no-repeat}.annotator-hl{background:#FFFF0A;background:rgba(255,255,10,.3);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4DFFFF0A, endColorstr=#4DFFFF0A)"}.annotator-hl-temporary{background:#007CFF;background:rgba(0,124,255,.3);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4D007CFF, endColorstr=#4D007CFF)"}.annotator-wrapper{position:relative}.annotator-adder,.annotator-notice,.annotator-outer{z-index:1020}.annotator-adder,.annotator-notice,.annotator-outer,.annotator-widget{position:absolute;font-size:10px;line-height:1}.annotator-hide{display:none;visibility:hidden}.annotator-adder{margin-top:-48px;margin-left:-24px;width:48px;height:48px;background-position:left top}.annotator-adder:hover{background-position:center top}.annotator-adder:active{background-position:center right}.annotator-adder button{display:block;width:36px;height:41px;margin:0 auto;border:none;background:0 0;text-indent:-999em;cursor:pointer}.annotator-outer{width:0;height:0}.annotator-widget{margin:0;padding:0;bottom:15px;left:-18px;min-width:265px;background-color:#FBFBFB;background-color:rgba(251,251,251,.98);border:1px solid #7A7A7A;border:1px solid rgba(122,122,122,.6);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.2);-moz-box-shadow:0 5px 15px rgba(0,0,0,.2);-o-box-shadow:0 5px 15px rgba(0,0,0,.2);box-shadow:0 5px 15px rgba(0,0,0,.2)}.annotator-invert-x .annotator-widget{left:auto;right:-18px}.annotator-invert-y .annotator-widget{bottom:auto;top:8px}.annotator-widget strong{font-weight:700}.annotator-widget .annotator-item,.annotator-widget .annotator-listing{padding:0;margin:0;list-style:none}.annotator-widget:after{content:"";display:block;width:18px;height:10px;background-position:0 0;position:absolute;bottom:-10px;left:8px}.annotator-invert-x .annotator-widget:after{left:auto;right:8px}.annotator-invert-y .annotator-widget:after{background-position:0 -15px;bottom:auto;top:-9px}.annotator-editor .annotator-item input,.annotator-editor .annotator-item textarea,.annotator-widget .annotator-item{position:relative;font-size:12px}.annotator-viewer .annotator-item{border-top:2px solid #7A7A7A;border-top:2px solid rgba(122,122,122,.2)}.annotator-widget .annotator-item:first-child{border-top:none}.annotator-editor .annotator-item,.annotator-viewer div{border-top:1px solid #858585;border-top:1px solid rgba(133,133,133,.11)}.annotator-viewer div{padding:6px}.annotator-viewer .annotator-item ol,.annotator-viewer .annotator-item ul{padding:4px 16px}.annotator-editor .annotator-item:first-child textarea,.annotator-viewer div:first-of-type{padding-top:12px;padding-bottom:12px;color:#3c3c3c;font-size:13px;font-style:italic;line-height:1.3;border-top:none}.annotator-viewer .annotator-controls{position:relative;top:5px;right:5px;padding-left:5px;opacity:0;-webkit-transition:opacity .2s ease-in;-moz-transition:opacity .2s ease-in;-o-transition:opacity .2s ease-in;transition:opacity .2s ease-in;float:right}.annotator-viewer li .annotator-controls.annotator-visible,.annotator-viewer li:hover .annotator-controls{opacity:1}.annotator-viewer .annotator-controls a,.annotator-viewer .annotator-controls button{cursor:pointer;display:inline-block;width:13px;height:13px;margin-left:2px;border:none;opacity:.2;text-indent:-900em;background-color:transparent;outline:0}.annotator-viewer .annotator-controls a:focus,.annotator-viewer .annotator-controls a:hover,.annotator-viewer .annotator-controls button:focus,.annotator-viewer .annotator-controls button:hover{opacity:.9}.annotator-viewer .annotator-controls a:active,.annotator-viewer .annotator-controls button:active{opacity:1}.annotator-viewer .annotator-controls button[disabled]{display:none}.annotator-viewer .annotator-controls .annotator-edit{background-position:0 -60px}.annotator-viewer .annotator-controls .annotator-delete{background-position:0 -75px}.annotator-viewer .annotator-controls .annotator-link{background-position:0 -270px}.annotator-editor .annotator-item{position:relative}.annotator-editor .annotator-item label{top:0;display:inline;cursor:pointer;font-size:12px}.annotator-editor .annotator-item input,.annotator-editor .annotator-item textarea{display:block;min-width:100%;padding:10px 8px;border:none;margin:0;color:#3c3c3c;background:0 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;resize:none}.annotator-editor .annotator-item textarea::-webkit-scrollbar{height:8px;width:8px}.annotator-editor .annotator-item textarea::-webkit-scrollbar-track-piece{margin:13px 0 3px;background-color:#e5e5e5;-webkit-border-radius:4px}.annotator-editor .annotator-item textarea::-webkit-scrollbar-thumb:vertical{height:25px;background-color:#ccc;-webkit-border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1)}.annotator-editor .annotator-item textarea::-webkit-scrollbar-thumb:horizontal{width:25px;background-color:#ccc;-webkit-border-radius:4px}.annotator-editor .annotator-item:first-child textarea{min-height:5.5em;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.annotator-editor .annotator-item input:focus,.annotator-editor .annotator-item textarea:focus{background-color:#f3f3f3;outline:0}.annotator-editor .annotator-item input[type=checkbox],.annotator-editor .annotator-item input[type=radio]{width:auto;min-width:0;padding:0;display:inline;margin:0 4px 0 0;cursor:pointer}.annotator-editor .annotator-checkbox{padding:8px 6px}.annotator-editor .annotator-controls,.annotator-filter,.annotator-filter .annotator-filter-navigation button{text-align:right;padding:3px;border-top:1px solid #d4d4d4;background-color:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),color-stop(.6,#dcdcdc),to(#d2d2d2));background-image:-moz-linear-gradient(to bottom,#f5f5f5,#dcdcdc 60%,#d2d2d2);background-image:-webkit-linear-gradient(to bottom,#f5f5f5,#dcdcdc 60%,#d2d2d2);background-image:linear-gradient(to bottom,#f5f5f5,#dcdcdc 60%,#d2d2d2);-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.7),inset -1px 0 0 rgba(255,255,255,.7),inset 0 1px 0 rgba(255,255,255,.7);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.7),inset -1px 0 0 rgba(255,255,255,.7),inset 0 1px 0 rgba(255,255,255,.7);-o-box-shadow:inset 1px 0 0 rgba(255,255,255,.7),inset -1px 0 0 rgba(255,255,255,.7),inset 0 1px 0 rgba(255,255,255,.7);box-shadow:inset 1px 0 0 rgba(255,255,255,.7),inset -1px 0 0 rgba(255,255,255,.7),inset 0 1px 0 rgba(255,255,255,.7);-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-o-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.annotator-editor.annotator-invert-y .annotator-controls{border-top:none;border-bottom:1px solid #b4b4b4;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;-o-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.annotator-editor a,.annotator-filter .annotator-filter-property label{position:relative;display:inline-block;padding:0 6px 0 22px;color:#363636;text-shadow:0 1px 0 rgba(255,255,255,.75);text-decoration:none;line-height:24px;font-size:12px;font-weight:700;border:1px solid #a2a2a2;background-color:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),color-stop(.5,#d2d2d2),color-stop(.5,#bebebe),to(#d2d2d2));background-image:-moz-linear-gradient(to bottom,#f5f5f5,#d2d2d2 50%,#bebebe 50%,#d2d2d2);background-image:-webkit-linear-gradient(to bottom,#f5f5f5,#d2d2d2 50%,#bebebe 50%,#d2d2d2);background-image:linear-gradient(to bottom,#f5f5f5,#d2d2d2 50%,#bebebe 50%,#d2d2d2);-webkit-box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8);-moz-box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8);-o-box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8);box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8);-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;border-radius:5px}.annotator-editor a:after{position:absolute;top:50%;left:5px;display:block;content:"";width:15px;height:15px;margin-top:-7px;background-position:0 -90px}.annotator-editor a.annotator-focus,.annotator-editor a:focus,.annotator-editor a:hover,.annotator-filter .annotator-filter-active label,.annotator-filter .annotator-filter-navigation button:hover{outline:0;border-color:#435aa0;background-color:#3865f9;background-image:-webkit-gradient(linear,left top,left bottom,from(#7691fb),color-stop(.5,#5075fb),color-stop(.5,#3865f9),to(#3665fa));background-image:-moz-linear-gradient(to bottom,#7691fb,#5075fb 50%,#3865f9 50%,#3665fa);background-image:-webkit-linear-gradient(to bottom,#7691fb,#5075fb 50%,#3865f9 50%,#3665fa);background-image:linear-gradient(to bottom,#7691fb,#5075fb 50%,#3865f9 50%,#3665fa);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.42)}.annotator-editor a:focus:after,.annotator-editor a:hover:after{margin-top:-8px;background-position:0 -105px}.annotator-editor a:active,.annotator-filter .annotator-filter-navigation button:active{border-color:#700c49;background-color:#d12e8e;background-image:-webkit-gradient(linear,left top,left bottom,from(#fc7cca),color-stop(.5,#e85db2),color-stop(.5,#d12e8e),to(#ff009c));background-image:-moz-linear-gradient(to bottom,#fc7cca,#e85db2 50%,#d12e8e 50%,#ff009c);background-image:-webkit-linear-gradient(to bottom,#fc7cca,#e85db2 50%,#d12e8e 50%,#ff009c);background-image:linear-gradient(to bottom,#fc7cca,#e85db2 50%,#d12e8e 50%,#ff009c)}.annotator-editor a.annotator-save:after{background-position:0 -120px}.annotator-editor a.annotator-save.annotator-focus:after,.annotator-editor a.annotator-save:focus:after,.annotator-editor a.annotator-save:hover:after{margin-top:-8px;background-position:0 -135px}.annotator-editor .annotator-widget:after{background-position:0 -30px}.annotator-editor.annotator-invert-y .annotator-widget .annotator-controls{background-color:#f2f2f2}.annotator-editor.annotator-invert-y .annotator-widget:after{background-position:0 -45px;height:11px}.annotator-resize{position:absolute;top:0;right:0;width:12px;height:12px;background-position:2px -150px}.annotator-invert-x .annotator-resize{right:auto;left:0;background-position:0 -195px}.annotator-invert-y .annotator-resize{top:auto;bottom:0;background-position:2px -165px}.annotator-invert-y.annotator-invert-x .annotator-resize{background-position:0 -180px}.annotator-notice{color:#fff;position:fixed;top:-54px;left:0;width:100%;font-size:14px;line-height:50px;text-align:center;background:#000;background:rgba(0,0,0,.9);border-bottom:4px solid #d4d4d4;-webkit-transition:top .4s ease-out;-moz-transition:top .4s ease-out;-o-transition:top .4s ease-out;transition:top .4s ease-out}.annotator-notice-success{border-color:#3665f9}.annotator-notice-error{border-color:#ff7e00}.annotator-notice p{margin:0}.annotator-notice a{color:#fff}.annotator-notice-show{top:0}.annotator-tags{margin-bottom:-2px}.annotator-tags .annotator-tag{display:inline-block;padding:0 8px;margin-bottom:2px;line-height:1.6;font-weight:700;background-color:#e6e6e6;-webkit-border-radius:8px;-moz-border-radius:8px;-o-border-radius:8px;border-radius:8px}.annotator-filter{z-index:1010;position:fixed;top:0;right:0;left:0;text-align:left;line-height:0;border:none;border-bottom:1px solid #878787;padding-left:10px;padding-right:10px;-webkit-border-radius:0;-moz-border-radius:0;-o-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(255,255,255,.3);-moz-box-shadow:inset 0 -1px 0 rgba(255,255,255,.3);-o-box-shadow:inset 0 -1px 0 rgba(255,255,255,.3);box-shadow:inset 0 -1px 0 rgba(255,255,255,.3)}.annotator-filter strong{font-size:12px;font-weight:700;color:#3c3c3c;text-shadow:0 1px 0 rgba(255,255,255,.7);position:relative;top:-9px}.annotator-filter .annotator-filter-navigation,.annotator-filter .annotator-filter-property{position:relative;display:inline-block;overflow:hidden;line-height:10px;padding:2px 0;margin-right:8px}.annotator-filter .annotator-filter-navigation button,.annotator-filter .annotator-filter-property label{text-align:left;display:block;float:left;line-height:20px;-webkit-border-radius:10px 0 0 10px;-moz-border-radius:10px 0 0 10px;-o-border-radius:10px 0 0 10px;border-radius:10px 0 0 10px}.annotator-filter .annotator-filter-property label{padding-left:8px}.annotator-filter .annotator-filter-property input{display:block;float:right;-webkit-appearance:none;border:1px solid #878787;border-left:none;padding:2px 4px;line-height:16px;min-height:16px;font-size:12px;width:150px;color:#333;background-color:#f8f8f8;-webkit-border-radius:0 10px 10px 0;-moz-border-radius:0 10px 10px 0;-o-border-radius:0 10px 10px 0;border-radius:0 10px 10px 0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.2);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.2);-o-box-shadow:inset 0 1px 1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px rgba(0,0,0,.2)}.annotator-filter .annotator-filter-property input:focus{outline:0;background-color:#fff}.annotator-filter .annotator-filter-clear{position:absolute;right:3px;top:6px;border:none;text-indent:-900em;width:15px;height:15px;background-position:0 -90px;opacity:.4}.annotator-filter .annotator-filter-clear:focus,.annotator-filter .annotator-filter-clear:hover{opacity:.8}.annotator-filter .annotator-filter-clear:active{opacity:1}.annotator-filter .annotator-filter-navigation button{border:1px solid #a2a2a2;padding:0;text-indent:-900px;width:20px;min-height:22px;-webkit-box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8);-moz-box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8);-o-box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8);box-shadow:inset 0 0 5px rgba(255,255,255,.2),inset 0 0 1px rgba(255,255,255,.8)}.annotator-filter .annotator-filter-navigation button,.annotator-filter .annotator-filter-navigation button:focus,.annotator-filter .annotator-filter-navigation button:hover{color:transparent}.annotator-filter .annotator-filter-navigation button:after{position:absolute;top:8px;left:8px;content:"";display:block;width:9px;height:9px;background-position:0 -210px}.annotator-filter .annotator-filter-navigation button:hover:after{background-position:0 -225px}.annotator-filter .annotator-filter-navigation .annotator-filter-next{-webkit-border-radius:0 10px 10px 0;-moz-border-radius:0 10px 10px 0;-o-border-radius:0 10px 10px 0;border-radius:0 10px 10px 0;border-left:none}.annotator-filter .annotator-filter-navigation .annotator-filter-next:after{left:auto;right:7px;background-position:0 -240px}.annotator-filter .annotator-filter-navigation .annotator-filter-next:hover:after{background-position:0 -255px}.annotator-hl-active{background:#FFFF0A;background:rgba(255,255,10,.8);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#CCFFFF0A, endColorstr=#CCFFFF0A)"}.annotator-hl-filtered{background-color:transparent}'; | ||
12 | },{}],3:[function(require,module,exports){(function(definition){if(typeof exports==="object"){module.exports=definition()}else if(typeof define==="function"&&define.amd){define(definition)}else{window.BackboneExtend=definition()}})(function(){"use strict";var _={has:function(obj,key){return Object.prototype.hasOwnProperty.call(obj,key)},extend:function(obj){for(var i=1;i<arguments.length;++i){var source=arguments[i];if(source){for(var prop in source){obj[prop]=source[prop]}}}return obj}};var extend=function(protoProps,staticProps){var parent=this;var child;if(protoProps&&_.has(protoProps,"constructor")){child=protoProps.constructor}else{child=function(){return parent.apply(this,arguments)}}_.extend(child,parent,staticProps);var Surrogate=function(){this.constructor=child};Surrogate.prototype=parent.prototype;child.prototype=new Surrogate;if(protoProps)_.extend(child.prototype,protoProps);child.__super__=parent.prototype;return child};return extend})},{}],4:[function(require,module,exports){var process=module.exports={};var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=setTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;clearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){setTimeout(drainQueue,0)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],5:[function(require,module,exports){(function(process,global){(function(){"use strict";function lib$es6$promise$utils$$objectOrFunction(x){return typeof x==="function"||typeof x==="object"&&x!==null}function lib$es6$promise$utils$$isFunction(x){return typeof x==="function"}function lib$es6$promise$utils$$isMaybeThenable(x){return typeof x==="object"&&x!==null}var lib$es6$promise$utils$$_isArray;if(!Array.isArray){lib$es6$promise$utils$$_isArray=function(x){return Object.prototype.toString.call(x)==="[object Array]"}}else{lib$es6$promise$utils$$_isArray=Array.isArray}var lib$es6$promise$utils$$isArray=lib$es6$promise$utils$$_isArray;var lib$es6$promise$asap$$len=0;var lib$es6$promise$asap$$vertxNext;var lib$es6$promise$asap$$customSchedulerFn;var lib$es6$promise$asap$$asap=function asap(callback,arg){lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len]=callback;lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len+1]=arg;lib$es6$promise$asap$$len+=2;if(lib$es6$promise$asap$$len===2){if(lib$es6$promise$asap$$customSchedulerFn){lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush)}else{lib$es6$promise$asap$$scheduleFlush()}}};function lib$es6$promise$asap$$setScheduler(scheduleFn){lib$es6$promise$asap$$customSchedulerFn=scheduleFn}function lib$es6$promise$asap$$setAsap(asapFn){lib$es6$promise$asap$$asap=asapFn}var lib$es6$promise$asap$$browserWindow=typeof window!=="undefined"?window:undefined;var lib$es6$promise$asap$$browserGlobal=lib$es6$promise$asap$$browserWindow||{};var lib$es6$promise$asap$$BrowserMutationObserver=lib$es6$promise$asap$$browserGlobal.MutationObserver||lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;var lib$es6$promise$asap$$isNode=typeof process!=="undefined"&&{}.toString.call(process)==="[object process]";var lib$es6$promise$asap$$isWorker=typeof Uint8ClampedArray!=="undefined"&&typeof importScripts!=="undefined"&&typeof MessageChannel!=="undefined";function lib$es6$promise$asap$$useNextTick(){return function(){process.nextTick(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useVertxTimer(){return function(){lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush)}}function lib$es6$promise$asap$$useMutationObserver(){var iterations=0;var observer=new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);var node=document.createTextNode("");observer.observe(node,{characterData:true});return function(){node.data=iterations=++iterations%2}}function lib$es6$promise$asap$$useMessageChannel(){var channel=new MessageChannel;channel.port1.onmessage=lib$es6$promise$asap$$flush;return function(){channel.port2.postMessage(0)}}function lib$es6$promise$asap$$useSetTimeout(){return function(){setTimeout(lib$es6$promise$asap$$flush,1)}}var lib$es6$promise$asap$$queue=new Array(1e3);function lib$es6$promise$asap$$flush(){for(var i=0;i<lib$es6$promise$asap$$len;i+=2){var callback=lib$es6$promise$asap$$queue[i];var arg=lib$es6$promise$asap$$queue[i+1];callback(arg);lib$es6$promise$asap$$queue[i]=undefined;lib$es6$promise$asap$$queue[i+1]=undefined}lib$es6$promise$asap$$len=0}function lib$es6$promise$asap$$attemptVertx(){try{var r=require;var vertx=r("vertx");lib$es6$promise$asap$$vertxNext=vertx.runOnLoop||vertx.runOnContext;return lib$es6$promise$asap$$useVertxTimer()}catch(e){return lib$es6$promise$asap$$useSetTimeout()}}var lib$es6$promise$asap$$scheduleFlush;if(lib$es6$promise$asap$$isNode){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useNextTick()}else if(lib$es6$promise$asap$$BrowserMutationObserver){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMutationObserver()}else if(lib$es6$promise$asap$$isWorker){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useMessageChannel()}else if(lib$es6$promise$asap$$browserWindow===undefined&&typeof require==="function"){lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$attemptVertx()}else{lib$es6$promise$asap$$scheduleFlush=lib$es6$promise$asap$$useSetTimeout()}function lib$es6$promise$then$$then(onFulfillment,onRejection){var parent=this;var state=parent._state;if(state===lib$es6$promise$$internal$$FULFILLED&&!onFulfillment||state===lib$es6$promise$$internal$$REJECTED&&!onRejection){return this}var child=new this.constructor(lib$es6$promise$$internal$$noop);var result=parent._result;if(state){var callback=arguments[state-1];lib$es6$promise$asap$$asap(function(){lib$es6$promise$$internal$$invokeCallback(state,child,callback,result)})}else{lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection)}return child}var lib$es6$promise$then$$default=lib$es6$promise$then$$then;function lib$es6$promise$promise$resolve$$resolve(object){var Constructor=this;if(object&&typeof object==="object"&&object.constructor===Constructor){return object}var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$resolve(promise,object);return promise}var lib$es6$promise$promise$resolve$$default=lib$es6$promise$promise$resolve$$resolve;function lib$es6$promise$$internal$$noop(){}var lib$es6$promise$$internal$$PENDING=void 0;var lib$es6$promise$$internal$$FULFILLED=1;var lib$es6$promise$$internal$$REJECTED=2;var lib$es6$promise$$internal$$GET_THEN_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$selfFulfillment(){return new TypeError("You cannot resolve a promise with itself")}function lib$es6$promise$$internal$$cannotReturnOwn(){return new TypeError("A promises callback cannot return that same promise.")}function lib$es6$promise$$internal$$getThen(promise){try{return promise.then}catch(error){lib$es6$promise$$internal$$GET_THEN_ERROR.error=error;return lib$es6$promise$$internal$$GET_THEN_ERROR}}function lib$es6$promise$$internal$$tryThen(then,value,fulfillmentHandler,rejectionHandler){try{then.call(value,fulfillmentHandler,rejectionHandler)}catch(e){return e}}function lib$es6$promise$$internal$$handleForeignThenable(promise,thenable,then){lib$es6$promise$asap$$asap(function(promise){var sealed=false;var error=lib$es6$promise$$internal$$tryThen(then,thenable,function(value){if(sealed){return}sealed=true;if(thenable!==value){lib$es6$promise$$internal$$resolve(promise,value)}else{lib$es6$promise$$internal$$fulfill(promise,value)}},function(reason){if(sealed){return}sealed=true;lib$es6$promise$$internal$$reject(promise,reason)},"Settle: "+(promise._label||" unknown promise"));if(!sealed&&error){sealed=true;lib$es6$promise$$internal$$reject(promise,error)}},promise)}function lib$es6$promise$$internal$$handleOwnThenable(promise,thenable){if(thenable._state===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,thenable._result)}else if(thenable._state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,thenable._result)}else{lib$es6$promise$$internal$$subscribe(thenable,undefined,function(value){lib$es6$promise$$internal$$resolve(promise,value)},function(reason){lib$es6$promise$$internal$$reject(promise,reason)})}}function lib$es6$promise$$internal$$handleMaybeThenable(promise,maybeThenable,then){if(maybeThenable.constructor===promise.constructor&&then===lib$es6$promise$then$$default&&constructor.resolve===lib$es6$promise$promise$resolve$$default){lib$es6$promise$$internal$$handleOwnThenable(promise,maybeThenable)}else{if(then===lib$es6$promise$$internal$$GET_THEN_ERROR){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$GET_THEN_ERROR.error)}else if(then===undefined){lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}else if(lib$es6$promise$utils$$isFunction(then)){lib$es6$promise$$internal$$handleForeignThenable(promise,maybeThenable,then)}else{lib$es6$promise$$internal$$fulfill(promise,maybeThenable)}}}function lib$es6$promise$$internal$$resolve(promise,value){if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$selfFulfillment())}else if(lib$es6$promise$utils$$objectOrFunction(value)){lib$es6$promise$$internal$$handleMaybeThenable(promise,value,lib$es6$promise$$internal$$getThen(value))}else{lib$es6$promise$$internal$$fulfill(promise,value)}}function lib$es6$promise$$internal$$publishRejection(promise){if(promise._onerror){promise._onerror(promise._result)}lib$es6$promise$$internal$$publish(promise)}function lib$es6$promise$$internal$$fulfill(promise,value){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._result=value;promise._state=lib$es6$promise$$internal$$FULFILLED;if(promise._subscribers.length!==0){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,promise)}}function lib$es6$promise$$internal$$reject(promise,reason){if(promise._state!==lib$es6$promise$$internal$$PENDING){return}promise._state=lib$es6$promise$$internal$$REJECTED;promise._result=reason;lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection,promise)}function lib$es6$promise$$internal$$subscribe(parent,child,onFulfillment,onRejection){var subscribers=parent._subscribers;var length=subscribers.length;parent._onerror=null;subscribers[length]=child;subscribers[length+lib$es6$promise$$internal$$FULFILLED]=onFulfillment;subscribers[length+lib$es6$promise$$internal$$REJECTED]=onRejection;if(length===0&&parent._state){lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish,parent)}}function lib$es6$promise$$internal$$publish(promise){var subscribers=promise._subscribers;var settled=promise._state;if(subscribers.length===0){return}var child,callback,detail=promise._result;for(var i=0;i<subscribers.length;i+=3){child=subscribers[i];callback=subscribers[i+settled];if(child){lib$es6$promise$$internal$$invokeCallback(settled,child,callback,detail)}else{callback(detail)}}promise._subscribers.length=0}function lib$es6$promise$$internal$$ErrorObject(){this.error=null}var lib$es6$promise$$internal$$TRY_CATCH_ERROR=new lib$es6$promise$$internal$$ErrorObject;function lib$es6$promise$$internal$$tryCatch(callback,detail){try{return callback(detail)}catch(e){lib$es6$promise$$internal$$TRY_CATCH_ERROR.error=e;return lib$es6$promise$$internal$$TRY_CATCH_ERROR}}function lib$es6$promise$$internal$$invokeCallback(settled,promise,callback,detail){var hasCallback=lib$es6$promise$utils$$isFunction(callback),value,error,succeeded,failed;if(hasCallback){value=lib$es6$promise$$internal$$tryCatch(callback,detail);if(value===lib$es6$promise$$internal$$TRY_CATCH_ERROR){failed=true;error=value.error;value=null}else{succeeded=true}if(promise===value){lib$es6$promise$$internal$$reject(promise,lib$es6$promise$$internal$$cannotReturnOwn());return}}else{value=detail;succeeded=true}if(promise._state!==lib$es6$promise$$internal$$PENDING){}else if(hasCallback&&succeeded){lib$es6$promise$$internal$$resolve(promise,value)}else if(failed){lib$es6$promise$$internal$$reject(promise,error)}else if(settled===lib$es6$promise$$internal$$FULFILLED){lib$es6$promise$$internal$$fulfill(promise,value)}else if(settled===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}}function lib$es6$promise$$internal$$initializePromise(promise,resolver){try{resolver(function resolvePromise(value){lib$es6$promise$$internal$$resolve(promise,value)},function rejectPromise(reason){lib$es6$promise$$internal$$reject(promise,reason)})}catch(e){lib$es6$promise$$internal$$reject(promise,e)}}function lib$es6$promise$promise$all$$all(entries){return new lib$es6$promise$enumerator$$default(this,entries).promise}var lib$es6$promise$promise$all$$default=lib$es6$promise$promise$all$$all;function lib$es6$promise$promise$race$$race(entries){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);if(!lib$es6$promise$utils$$isArray(entries)){lib$es6$promise$$internal$$reject(promise,new TypeError("You must pass an array to race."));return promise}var length=entries.length;function onFulfillment(value){lib$es6$promise$$internal$$resolve(promise,value)}function onRejection(reason){lib$es6$promise$$internal$$reject(promise,reason)}for(var i=0;promise._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]),undefined,onFulfillment,onRejection)}return promise}var lib$es6$promise$promise$race$$default=lib$es6$promise$promise$race$$race;function lib$es6$promise$promise$reject$$reject(reason){var Constructor=this;var promise=new Constructor(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$reject(promise,reason);return promise}var lib$es6$promise$promise$reject$$default=lib$es6$promise$promise$reject$$reject;var lib$es6$promise$promise$$counter=0;function lib$es6$promise$promise$$needsResolver(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function lib$es6$promise$promise$$needsNew(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}var lib$es6$promise$promise$$default=lib$es6$promise$promise$$Promise;function lib$es6$promise$promise$$Promise(resolver){this._id=lib$es6$promise$promise$$counter++;this._state=undefined;this._result=undefined;this._subscribers=[];if(lib$es6$promise$$internal$$noop!==resolver){typeof resolver!=="function"&&lib$es6$promise$promise$$needsResolver();this instanceof lib$es6$promise$promise$$Promise?lib$es6$promise$$internal$$initializePromise(this,resolver):lib$es6$promise$promise$$needsNew()}}lib$es6$promise$promise$$Promise.all=lib$es6$promise$promise$all$$default;lib$es6$promise$promise$$Promise.race=lib$es6$promise$promise$race$$default;lib$es6$promise$promise$$Promise.resolve=lib$es6$promise$promise$resolve$$default;lib$es6$promise$promise$$Promise.reject=lib$es6$promise$promise$reject$$default;lib$es6$promise$promise$$Promise._setScheduler=lib$es6$promise$asap$$setScheduler;lib$es6$promise$promise$$Promise._setAsap=lib$es6$promise$asap$$setAsap;lib$es6$promise$promise$$Promise._asap=lib$es6$promise$asap$$asap;lib$es6$promise$promise$$Promise.prototype={constructor:lib$es6$promise$promise$$Promise,then:lib$es6$promise$then$$default,"catch":function(onRejection){return this.then(null,onRejection)}};var lib$es6$promise$enumerator$$default=lib$es6$promise$enumerator$$Enumerator;function lib$es6$promise$enumerator$$Enumerator(Constructor,input){this._instanceConstructor=Constructor;this.promise=new Constructor(lib$es6$promise$$internal$$noop);if(Array.isArray(input)){this._input=input;this.length=input.length;this._remaining=input.length;this._result=new Array(this.length);if(this.length===0){lib$es6$promise$$internal$$fulfill(this.promise,this._result)}else{this.length=this.length||0;this._enumerate();if(this._remaining===0){lib$es6$promise$$internal$$fulfill(this.promise,this._result)}}}else{lib$es6$promise$$internal$$reject(this.promise,this._validationError())}}lib$es6$promise$enumerator$$Enumerator.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")};lib$es6$promise$enumerator$$Enumerator.prototype._enumerate=function(){var length=this.length;var input=this._input;for(var i=0;this._state===lib$es6$promise$$internal$$PENDING&&i<length;i++){this._eachEntry(input[i],i)}};lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry=function(entry,i){var c=this._instanceConstructor;var resolve=c.resolve;if(resolve===lib$es6$promise$promise$resolve$$default){var then=lib$es6$promise$$internal$$getThen(entry);if(then===lib$es6$promise$then$$default&&entry._state!==lib$es6$promise$$internal$$PENDING){this._settledAt(entry._state,i,entry._result)}else if(typeof then!=="function"){this._remaining--;this._result[i]=entry}else if(c===lib$es6$promise$promise$$default){var promise=new c(lib$es6$promise$$internal$$noop);lib$es6$promise$$internal$$handleMaybeThenable(promise,entry,then);this._willSettleAt(promise,i)}else{this._willSettleAt(new c(function(resolve){resolve(entry)}),i)}}else{this._willSettleAt(resolve(entry),i)}};lib$es6$promise$enumerator$$Enumerator.prototype._settledAt=function(state,i,value){var promise=this.promise;if(promise._state===lib$es6$promise$$internal$$PENDING){this._remaining--;if(state===lib$es6$promise$$internal$$REJECTED){lib$es6$promise$$internal$$reject(promise,value)}else{this._result[i]=value}}if(this._remaining===0){lib$es6$promise$$internal$$fulfill(promise,this._result)}};lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt=function(promise,i){var enumerator=this;lib$es6$promise$$internal$$subscribe(promise,undefined,function(value){enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED,i,value)},function(reason){enumerator._settledAt(lib$es6$promise$$internal$$REJECTED,i,reason)})};function lib$es6$promise$polyfill$$polyfill(){var local;if(typeof global!=="undefined"){local=global}else if(typeof self!=="undefined"){local=self}else{try{local=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}}var P=local.Promise;if(P&&Object.prototype.toString.call(P.resolve())==="[object Promise]"&&!P.cast){return}local.Promise=lib$es6$promise$promise$$default}var lib$es6$promise$polyfill$$default=lib$es6$promise$polyfill$$polyfill;var lib$es6$promise$umd$$ES6Promise={Promise:lib$es6$promise$promise$$default,polyfill:lib$es6$promise$polyfill$$default};if(typeof define==="function"&&define["amd"]){define(function(){return lib$es6$promise$umd$$ES6Promise})}else if(typeof module!=="undefined"&&module["exports"]){module["exports"]=lib$es6$promise$umd$$ES6Promise}else if(typeof this!=="undefined"){this["ES6Promise"]=lib$es6$promise$umd$$ES6Promise}lib$es6$promise$polyfill$$default()}).call(this)}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:4}],6:[function(require,module,exports){var inserted={};module.exports=function(css,options){if(inserted[css])return;inserted[css]=true;var elem=document.createElement("style");elem.setAttribute("type","text/css");if("textContent"in elem){elem.textContent=css}else{elem.styleSheet.cssText=css}var head=document.getElementsByTagName("head")[0];if(options&&options.prepend){head.insertBefore(elem,head.childNodes[0])}else{head.appendChild(elem)}}},{}],7:[function(require,module,exports){(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document")}return factory(w)}}else{factory(global)}})(typeof window!=="undefined"?window:this,function(window,noGlobal){var deletedIds=[];var document=window.document;var slice=deletedIds.slice;var concat=deletedIds.concat;var push=deletedIds.push;var indexOf=deletedIds.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var version="1.12.1",jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this)},get:function(num){return num!=null?num<0?this[num+this.length]:this[num]:slice.call(this)},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;ret.context=this.context;return ret},each:function(callback){return jQuery.each(this,callback)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[])},end:function(){return this.prevObject||this.constructor()},push:push,sort:deletedIds.sort,splice:deletedIds.splice};jQuery.extend=jQuery.fn.extend=function(){var src,copyIsArray,copy,name,options,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(i===length){target=this;i--}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}if(deep&©&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[]}else{clone=src&&jQuery.isPlainObject(src)?src:{}}target[name]=jQuery.extend(deep,clone,copy)}else if(copy!==undefined){target[name]=copy}}}}return target};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg)},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function"},isArray:Array.isArray||function(obj){return jQuery.type(obj)==="array"},isWindow:function(obj){return obj!=null&&obj==obj.window},isNumeric:function(obj){var realStringObj=obj&&obj.toString();return!jQuery.isArray(obj)&&realStringObj-parseFloat(realStringObj)+1>=0},isEmptyObject:function(obj){var name;for(name in obj){return false}return true},isPlainObject:function(obj){var key;if(!obj||jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false}try{if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false}}catch(e){return false}if(!support.ownFirst){for(key in obj){return hasOwn.call(obj,key)}}for(key in obj){}return key===undefined||hasOwn.call(obj,key)},type:function(obj){if(obj==null){return obj+""}return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj},globalEval:function(data){if(data&&jQuery.trim(data)){(window.execScript||function(data){window["eval"].call(window,data)})(data)}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()},each:function(obj,callback){var length,i=0;if(isArrayLike(obj)){length=obj.length;for(;i<length;i++){if(callback.call(obj[i],i,obj[i])===false){break}}}else{for(i in obj){if(callback.call(obj[i],i,obj[i])===false){break}}}return obj},trim:function(text){return text==null?"":(text+"").replace(rtrim,"")},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArrayLike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr)}else{push.call(ret,arr)}}return ret},inArray:function(elem,arr,i){var len;if(arr){if(indexOf){return indexOf.call(arr,elem,i)}len=arr.length;i=i?i<0?Math.max(0,len+i):i:0;for(;i<len;i++){if(i in arr&&arr[i]===elem){return i}}}return-1},merge:function(first,second){var len=+second.length,j=0,i=first.length;while(j<len){first[i++]=second[j++]}if(len!==len){while(second[j]!==undefined){first[i++]=second[j++]}}first.length=i;return first},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i])}}return matches},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}return concat.apply([],ret)},guid:1,proxy:function(fn,context){var args,proxy,tmp;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy},now:function(){return+new Date},support:support});if(typeof Symbol==="function"){jQuery.fn[Symbol.iterator]=deletedIds[Symbol.iterator]}jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=jQuery.type(obj);if(type==="function"||jQuery.isWindow(obj)){return false}return type==="array"||length===0||typeof length==="number"&&length>0&&length-1 in obj}var Sizzle=function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true}return 0},MAX_NEGATIVE=1<<31,hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i}}return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",identifier="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+identifier+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)},unloadHandler=function(){setDocument()};try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){var j=target.length,i=0;while(target[j++]=els[i++]){}target.length=j-1}}}function Sizzle(selector,context,results,seed){var m,i,elem,nid,nidselect,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;results=results||[];if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results}if(!seed){if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context)}context=context||document;if(documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if(m=match[1]){if(nodeType===9){if(elem=context.getElementById(m)){if(elem.id===m){results.push(elem);return results}}else{return results}}else{if(newContext&&(elem=newContext.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results}else if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results}}if(support.qsa&&!compilerCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){if(nodeType!==1){newContext=context;newSelector=selector}else if(context.nodeName.toLowerCase()!=="object"){if(nid=context.getAttribute("id")){nid=nid.replace(rescape,"\\$&")}else{context.setAttribute("id",nid=expando)}groups=tokenize(selector);i=groups.length;nidselect=ridentifier.test(nid)?"#"+nid:"[id='"+nid+"']";while(i--){groups[i]=nidselect+" "+toSelector(groups[i])}newSelector=groups.join(",");newContext=rsibling.test(selector)&&testContext(context.parentNode)||context}if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results}catch(qsaError){}finally{if(nid===expando){context.removeAttribute("id")}}}}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()]}return cache[key+" "]=value}return cache}function markFunction(fn){fn[expando]=true; | ||
13 | return fn}function assert(fn){var div=document.createElement("div");try{return!!fn(div)}catch(e){return false}finally{if(div.parentNode){div.parentNode.removeChild(div)}div=null}}function addHandle(attrs,handler){var arr=attrs.split("|"),i=arr.length;while(i--){Expr.attrHandle[arr[i]]=handler}}function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff}if(cur){while(cur=cur.nextSibling){if(cur===b){return-1}}}return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type}}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[j=matchIndexes[i]]){seed[j]=!(matches[j]=seed[j])}}})})}function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context}support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false};setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document}document=doc;docElem=document.documentElement;documentIsHTML=!isXML(document);if((parent=document.defaultView)&&parent.top!==parent){if(parent.addEventListener){parent.addEventListener("unload",unloadHandler,false)}else if(parent.attachEvent){parent.attachEvent("onunload",unloadHandler)}}support.attributes=assert(function(div){div.className="i";return!div.getAttribute("className")});support.getElementsByTagName=assert(function(div){div.appendChild(document.createComment(""));return!div.getElementsByTagName("*").length});support.getElementsByClassName=rnative.test(document.getElementsByClassName);support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!document.getElementsByName||!document.getElementsByName(expando).length});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var m=context.getElementById(id);return m?[m]:[]}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}}else{delete Expr.find["ID"];Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId}}}Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag)}else if(support.qsa){return context.querySelectorAll(tag)}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while(elem=results[i++]){if(elem.nodeType===1){tmp.push(elem)}}return tmp}return results};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML){return context.getElementsByClassName(className)}};rbuggyMatches=[];rbuggyQSA=[];if(support.qsa=rnative.test(document.querySelectorAll)){assert(function(div){docElem.appendChild(div).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\r\\' msallowcapture=''>"+"<option selected=''></option></select>";if(div.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")")}if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")")}if(!div.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=")}if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked")}if(!div.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]")}});assert(function(div){var input=document.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=")}if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled")}div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:")})}if(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos)})}rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16))}:function(a,b){if(b){while(b=b.parentNode){if(b===a){return true}}}return false};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare}compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||!support.sortDetached&&b.compareDocumentPosition(a)===compare){if(a===document||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1}if(b===document||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1}return sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}return compare&4?-1:1}:function(a,b){if(a===b){hasDuplicate=true;return 0}var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===document?-1:b===document?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}else if(aup===bup){return siblingCheck(a,b)}cur=a;while(cur=cur.parentNode){ap.unshift(cur)}cur=b;while(cur=cur.parentNode){bp.unshift(cur)}while(ap[i]===bp[i]){i++}return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0};return document};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem)}expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&!compilerCache[expr+" "]&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret}}catch(e){}}return Sizzle(expr,document,null,[elem]).length>0};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context)}return contains(context,elem)};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem)}var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while(elem=results[i++]){if(elem===results[i]){j=duplicates.push(i)}}while(j--){results.splice(duplicates[j],1)}}sortInput=null;return results};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while(node=elem[i++]){ret+=getText(node)}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem)}}}else if(nodeType===3||nodeType===4){return elem.nodeValue}return ret};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" "}return match.slice(0,4)},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0])}match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+(match[7]+match[8]||match[3]==="odd")}else if(match[3]){Sizzle.error(match[0])}return match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr["CHILD"].test(match[0])){return null}if(match[3]){match[2]=match[4]||match[5]||""}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess)}return match.slice(0,3)}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!="}if(!operator){return true}result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false}},CHILD:function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,uniqueCache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=false;if(parent){if(simple){while(dir){node=elem;while(node=node[dir]){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false}}start=dir=type==="only"&&!start&&"nextSibling"}return true}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){node=parent;outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});cache=uniqueCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if(node.nodeType===1&&++diff&&node===elem){uniqueCache[type]=[dirruns,nodeIndex,diff];break}}}else{if(useCache){node=elem;outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});cache=uniqueCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex}if(diff===false){while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});uniqueCache[type]=[dirruns,diff]}if(node===elem){break}}}}}diff-=last;return diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument)}if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i])}}):function(elem){return fn(elem,0,args)}}return fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if(elem=unmatched[i]){seed[i]=!(matches[i]=elem)}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang)}lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang")){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0}}while((elem=elem.parentNode)&&elem.nodeType===1);return false}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:function(elem){return elem.disabled===false},disabled:function(elem){return elem.disabled===true},checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return nodeName==="input"&&!!elem.checked||nodeName==="option"&&!!elem.selected},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false}}return true},parent:function(elem){return!Expr.pseudos["empty"](elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button"},text:function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text")},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i)}return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i)}return matchIndexes})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i)}for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i)}function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters;tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0)}soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar}groups.push(tokens=[])}matched=false;if(match=rcombinators.exec(soFar)){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length)}for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length)}}if(!matched){break}}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value}return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml)}}}:function(elem,context,xml){var oldCache,uniqueCache,outerCache,newCache=[dirruns,doneName];if(xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true}}}}else{while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});uniqueCache=outerCache[elem.uniqueID]||(outerCache[elem.uniqueID]={});if((oldCache=uniqueCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return newCache[2]=oldCache[2]}else{uniqueCache[dir]=newCache;if(newCache[2]=matcher(elem,context,xml)){return true}}}}}}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false}}return true}:matchers[0]}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results)}return results}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if(elem=unmatched[i]){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i)}}}}return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter)}if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector)}return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml)}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if(elem=temp[i]){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem)}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if(elem=matcherOut[i]){temp.push(matcherIn[i]=elem)}}postFinder(null,matcherOut=[],temp,xml)}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem)}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml)}else{push.apply(results,matcherOut)}}})}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,true),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret}];for(;i<len;i++){if(matcher=Expr.relative[tokens[i].type]){matchers=[addCombinator(elementMatcher(matchers),matcher)]}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break}}return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens))}matchers.push(matcher)}}return elementMatcher(matchers)}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=dirruns+=contextBackup==null?1:Math.random()||.1,len=elems.length;if(outermost){outermostContext=context===document||context||outermost}for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;if(!context&&elem.ownerDocument!==document){setDocument(elem);xml=!documentIsHTML}while(matcher=elementMatchers[j++]){if(matcher(elem,context||document,xml)){results.push(elem);break}}if(outermost){dirruns=dirrunsUnique}}if(bySet){if(elem=!matcher&&elem){matchedCount--}if(seed){unmatched.push(elem)}}}matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while(matcher=setMatchers[j++]){matcher(unmatched,setMatched,context,xml)}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results)}}}setMatched=condense(setMatched)}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1){Sizzle.uniqueSort(results)}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup}return unmatched};return bySet?markFunction(superMatcher):superMatcher}compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector)}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached)}else{elementMatchers.push(cached)}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector}return cached};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results}else if(compiled){context=context.parentNode}selector=selector.slice(tokens.shift().value.length)}i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[type=token.type]){break}if(find=Expr.find[type]){if(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context)){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results}break}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context);return results};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#"})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2)}})}if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")===""})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue}})}if(!assert(function(div){return div.getAttribute("disabled")==null})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}})}return Sizzle}(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.uniqueSort=jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var dir=function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break}matched.push(elem)}}return matched};var siblings=function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n)}}return matched};var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/;var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not})}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return elem===qualifier!==not})}if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not)}qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return jQuery.inArray(elem,qualifier)>-1!==not})}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")"}return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1}))};jQuery.fn.extend({find:function(selector){var i,ret=[],self=this,len=self.length;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true}}}))}for(i=0;i<len;i++){jQuery.find(selector,self[i],ret)}ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+" "+selector:selector;return ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],false))},not:function(selector){return this.pushStack(winnow(this,selector||[],true))},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector){return this}root=root||rootjQuery;if(typeof selector==="string"){if(selector.charAt(0)==="<"&&selector.charAt(selector.length-1)===">"&&selector.length>=3){match=[null,selector,null]}else{match=rquickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match])}else{this.attr(match,context[match])}}}return this}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){if(elem.id!==match[2]){return rootjQuery.find(selector)}this.length=1;this[0]=elem}this.context=document;this.selector=selector;return this}}else if(!context||context.jquery){return(context||root).find(selector)}else{return this.constructor(context).find(selector)}}else if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this}else if(jQuery.isFunction(selector)){return typeof root.ready!=="undefined"?root.ready(selector):selector(jQuery)}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context}return jQuery.makeArray(selector,this)};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({has:function(target){var i,targets=jQuery(target,this),len=targets.length;return this.filter(function(){for(i=0;i<len;i++){if(jQuery.contains(this,targets[i])){return true}}})},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}}}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched)},index:function(elem){if(!elem){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof elem==="string"){return jQuery.inArray(this[0],jQuery(elem))}return jQuery.inArray(elem.jquery?elem[0]:elem,this)},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector))}});function sibling(cur,dir){do{cur=cur[dir]}while(cur&&cur.nodeType!==1);return cur}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null},parents:function(elem){return dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return dir(elem,"nextSibling")},prevAll:function(elem){return dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return dir(elem,"previousSibling",until)},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem)},children:function(elem){return siblings(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.merge([],elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until}if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret)}if(this.length>1){if(!guaranteedUnique[name]){ret=jQuery.uniqueSort(ret)}if(rparentsprev.test(name)){ret=ret.reverse()}}return this.pushStack(ret)}});var rnotwhite=/\S+/g;function createOptions(options){ | ||
14 | var object={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true});return object}jQuery.Callbacks=function(options){options=typeof options==="string"?createOptions(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){locked=options.once;fired=firing=true;for(;queue.length;firingIndex=-1){memory=queue.shift();while(++firingIndex<list.length){if(list[firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){firingIndex=list.length;memory=false}}}if(!options.memory){memory=false}firing=false;if(locked){if(memory){list=[]}else{list=""}}},self={add:function(){if(list){if(memory&&!firing){firingIndex=list.length-1;queue.push(memory)}(function add(args){jQuery.each(args,function(_,arg){if(jQuery.isFunction(arg)){if(!options.unique||!self.has(arg)){list.push(arg)}}else if(arg&&arg.length&&jQuery.type(arg)!=="string"){add(arg)}})})(arguments);if(memory&&!firing){fire()}}return this},remove:function(){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(index<=firingIndex){firingIndex--}}});return this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0},empty:function(){if(list){list=[]}return this},disable:function(){locked=queue=[];list=memory="";return this},disabled:function(){return!list},lock:function(){locked=true;if(!memory){self.disable()}return this},locked:function(){return!!locked},fireWith:function(context,args){if(!locked){args=args||[];args=[context,args.slice?args.slice():args];queue.push(args);if(!firing){fire()}}return this},fire:function(){self.fireWith(this,arguments);return this},fired:function(){return!!fired}};return self};jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state},always:function(){deferred.done(arguments).fail(arguments);return this},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject)}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments)}})});fns=null}).promise()},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString},tuples[i^1][2].disable,tuples[2][2].lock)}deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this};deferred[tuple[0]+"With"]=list.fireWith});promise.promise(deferred);if(func){func.call(deferred,deferred)}return deferred},when:function(subordinate){var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||subordinate&&jQuery.isFunction(subordinate.promise)?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values)}else if(!--remaining){deferred.resolveWith(contexts,values)}}},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().progress(updateFunc(i,progressContexts,progressValues)).done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject)}else{--remaining}}}if(!remaining){deferred.resolveWith(resolveContexts,resolveValues)}return deferred.promise()}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return}readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler("ready");jQuery(document).off("ready")}}});function detach(){if(document.addEventListener){document.removeEventListener("DOMContentLoaded",completed);window.removeEventListener("load",completed)}else{document.detachEvent("onreadystatechange",completed);window.detachEvent("onload",completed)}}function completed(){if(document.addEventListener||window.event.type==="load"||document.readyState==="complete"){detach();jQuery.ready()}}jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"||document.readyState!=="loading"&&!document.documentElement.doScroll){window.setTimeout(jQuery.ready)}else if(document.addEventListener){document.addEventListener("DOMContentLoaded",completed);window.addEventListener("load",completed)}else{document.attachEvent("onreadystatechange",completed);window.attachEvent("onload",completed);var top=false;try{top=window.frameElement==null&&document.documentElement}catch(e){}if(top&&top.doScroll){(function doScrollCheck(){if(!jQuery.isReady){try{top.doScroll("left")}catch(e){return window.setTimeout(doScrollCheck,50)}detach();jQuery.ready()}})()}}}return readyList.promise(obj)};jQuery.ready.promise();var i;for(i in jQuery(support)){break}support.ownFirst=i==="0";support.inlineBlockNeedsLayout=false;jQuery(function(){var val,div,body,container;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);if(typeof div.style.zoom!=="undefined"){div.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";support.inlineBlockNeedsLayout=val=div.offsetWidth===3;if(val){body.style.zoom=1}}body.removeChild(container)});(function(){var div=document.createElement("div");support.deleteExpando=true;try{delete div.test}catch(e){support.deleteExpando=false}div=null})();var acceptData=function(elem){var noData=jQuery.noData[(elem.nodeName+" ").toLowerCase()],nodeType=+elem.nodeType||1;return nodeType!==1&&nodeType!==9?false:!noData||noData!==true&&elem.getAttribute("classid")===noData};var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/([A-Z])/g;function dataAttr(elem,key,data){if(data===undefined&&elem.nodeType===1){var name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}jQuery.data(elem,key,data)}else{data=undefined}}return data}function isEmptyDataObject(obj){var name;for(name in obj){if(name==="data"&&jQuery.isEmptyObject(obj[name])){continue}if(name!=="toJSON"){return false}}return true}function internalData(elem,name,data,pvt){if(!acceptData(elem)){return}var ret,thisCache,internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[internalKey]:elem[internalKey]&&internalKey;if((!id||!cache[id]||!pvt&&!cache[id].data)&&data===undefined&&typeof name==="string"){return}if(!id){if(isNode){id=elem[internalKey]=deletedIds.pop()||jQuery.guid++}else{id=internalKey}}if(!cache[id]){cache[id]=isNode?{}:{toJSON:jQuery.noop}}if(typeof name==="object"||typeof name==="function"){if(pvt){cache[id]=jQuery.extend(cache[id],name)}else{cache[id].data=jQuery.extend(cache[id].data,name)}}thisCache=cache[id];if(!pvt){if(!thisCache.data){thisCache.data={}}thisCache=thisCache.data}if(data!==undefined){thisCache[jQuery.camelCase(name)]=data}if(typeof name==="string"){ret=thisCache[name];if(ret==null){ret=thisCache[jQuery.camelCase(name)]}}else{ret=thisCache}return ret}function internalRemoveData(elem,name,pvt){if(!acceptData(elem)){return}var thisCache,i,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(!cache[id]){return}if(name){thisCache=pvt?cache[id]:cache[id].data;if(thisCache){if(!jQuery.isArray(name)){if(name in thisCache){name=[name]}else{name=jQuery.camelCase(name);if(name in thisCache){name=[name]}else{name=name.split(" ")}}}else{name=name.concat(jQuery.map(name,jQuery.camelCase))}i=name.length;while(i--){delete thisCache[name[i]]}if(pvt?!isEmptyDataObject(thisCache):!jQuery.isEmptyObject(thisCache)){return}}}if(!pvt){delete cache[id].data;if(!isEmptyDataObject(cache[id])){return}}if(isNode){jQuery.cleanData([elem],true)}else if(support.deleteExpando||cache!=cache.window){delete cache[id]}else{cache[id]=undefined}}jQuery.extend({cache:{},noData:{"applet ":true,"embed ":true,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(elem){elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando];return!!elem&&!isEmptyDataObject(elem)},data:function(elem,name,data){return internalData(elem,name,data)},removeData:function(elem,name){return internalRemoveData(elem,name)},_data:function(elem,name,data){return internalData(elem,name,data,true)},_removeData:function(elem,name){return internalRemoveData(elem,name,true)}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=jQuery.data(elem);if(elem.nodeType===1&&!jQuery._data(elem,"parsedAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name])}}}jQuery._data(elem,"parsedAttrs",true)}}return data}if(typeof key==="object"){return this.each(function(){jQuery.data(this,key)})}return arguments.length>1?this.each(function(){jQuery.data(this,key,value)}):elem?dataAttr(elem,key,jQuery.data(elem,key)):undefined},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=jQuery._data(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=jQuery._data(elem,type,jQuery.makeArray(data))}else{queue.push(data)}}return queue||[]}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};if(fn==="inprogress"){fn=queue.shift();startLength--}if(fn){if(type==="fx"){queue.unshift("inprogress")}delete hooks.stop;fn.call(elem,next,hooks)}if(!startLength&&hooks){hooks.empty.fire()}},_queueHooks:function(elem,type){var key=type+"queueHooks";return jQuery._data(elem,key)||jQuery._data(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){jQuery._removeData(elem,type+"queue");jQuery._removeData(elem,key)})})}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--}if(arguments.length<setter){return jQuery.queue(this[0],type)}return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!--count){defer.resolveWith(elements,[elements])}};if(typeof type!=="string"){obj=type;type=undefined}type=type||"fx";while(i--){tmp=jQuery._data(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve)}}resolve();return defer.promise(obj)}});(function(){var shrinkWrapBlocksVal;support.shrinkWrapBlocks=function(){if(shrinkWrapBlocksVal!=null){return shrinkWrapBlocksVal}shrinkWrapBlocksVal=false;var div,body,container;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);if(typeof div.style.zoom!=="undefined"){div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;"+"padding:1px;width:1px;zoom:1";div.appendChild(document.createElement("div")).style.width="5px";shrinkWrapBlocksVal=div.offsetWidth!==3}body.removeChild(container);return shrinkWrapBlocksVal}})();var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source;var rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i");var cssExpand=["Top","Right","Bottom","Left"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem)};function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale=1,maxIterations=20,currentValue=tween?function(){return tween.cur()}:function(){return jQuery.css(elem,prop,"")},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){unit=unit||initialInUnit[3];valueParts=valueParts||[];initialInUnit=+initial||1;do{scale=scale||".5";initialInUnit=initialInUnit/scale;jQuery.style(elem,prop,initialInUnit+unit)}while(scale!==(scale=currentValue()/initial)&&scale!==1&&--maxIterations)}if(valueParts){initialInUnit=+initialInUnit||+initial||0;adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2];if(tween){tween.unit=unit;tween.start=initialInUnit;tween.end=adjusted}}return adjusted}var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,length=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){access(elems,fn,i,key[i],true,emptyGet,raw)}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true}if(bulk){if(raw){fn.call(elems,value);fn=null}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value)}}}if(fn){for(;i<length;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)))}}}return chainable?elems:bulk?fn.call(elems):length?fn(elems[0],key):emptyGet};var rcheckableType=/^(?:checkbox|radio)$/i;var rtagName=/<([\w:-]+)/;var rscriptType=/^$|\/(?:java|ecma)script/i;var rleadingWhitespace=/^\s+/;var nodeNames="abbr|article|aside|audio|bdi|canvas|data|datalist|"+"details|dialog|figcaption|figure|footer|header|hgroup|main|"+"mark|meter|nav|output|picture|progress|section|summary|template|time|video";function createSafeFragment(document){var list=nodeNames.split("|"),safeFrag=document.createDocumentFragment();if(safeFrag.createElement){while(list.length){safeFrag.createElement(list.pop())}}return safeFrag}(function(){var div=document.createElement("div"),fragment=document.createDocumentFragment(),input=document.createElement("input");div.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";support.leadingWhitespace=div.firstChild.nodeType===3;support.tbody=!div.getElementsByTagName("tbody").length;support.htmlSerialize=!!div.getElementsByTagName("link").length;support.html5Clone=document.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>";input.type="checkbox";input.checked=true;fragment.appendChild(input);support.appendChecked=input.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;fragment.appendChild(div);input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;support.noCloneEvent=!!div.addEventListener;div[jQuery.expando]=1;support.attributes=!div.getAttribute(jQuery.expando)})();var wrapMap={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function getAll(context,tag){var elems,elem,i=0,found=typeof context.getElementsByTagName!=="undefined"?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!=="undefined"?context.querySelectorAll(tag||"*"):undefined;if(!found){for(found=[],elems=context.childNodes||context;(elem=elems[i])!=null;i++){if(!tag||jQuery.nodeName(elem,tag)){found.push(elem)}else{jQuery.merge(found,getAll(elem,tag))}}}return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],found):found}function setGlobalEval(elems,refElements){var elem,i=0;for(;(elem=elems[i])!=null;i++){jQuery._data(elem,"globalEval",!refElements||jQuery._data(refElements[i],"globalEval"))}}var rhtml=/<|&#?\w+;/,rtbody=/<tbody/i;function fixDefaultChecked(elem){if(rcheckableType.test(elem.type)){elem.defaultChecked=elem.checked}}function buildFragment(elems,context,scripts,selection,ignored){var j,elem,contains,tmp,tag,tbody,wrap,l=elems.length,safe=createSafeFragment(context),nodes=[],i=0;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem)}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem))}else{tmp=tmp||safe.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild}if(!support.leadingWhitespace&&rleadingWhitespace.test(elem)){nodes.push(context.createTextNode(rleadingWhitespace.exec(elem)[0]))}if(!support.tbody){elem=tag==="table"&&!rtbody.test(elem)?tmp.firstChild:wrap[1]==="<table>"&&!rtbody.test(elem)?tmp:0;j=elem&&elem.childNodes.length;while(j--){if(jQuery.nodeName(tbody=elem.childNodes[j],"tbody")&&!tbody.childNodes.length){elem.removeChild(tbody)}}}jQuery.merge(nodes,tmp.childNodes);tmp.textContent="";while(tmp.firstChild){tmp.removeChild(tmp.firstChild)}tmp=safe.lastChild}}}if(tmp){safe.removeChild(tmp)}if(!support.appendChecked){jQuery.grep(getAll(nodes,"input"),fixDefaultChecked)}i=0;while(elem=nodes[i++]){if(selection&&jQuery.inArray(elem,selection)>-1){if(ignored){ignored.push(elem)}continue}contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(safe.appendChild(elem),"script");if(contains){setGlobalEval(tmp)}if(scripts){j=0;while(elem=tmp[j++]){if(rscriptType.test(elem.type||"")){scripts.push(elem)}}}}tmp=null;return safe}(function(){var i,eventName,div=document.createElement("div");for(i in{submit:true,change:true,focusin:true}){eventName="on"+i;if(!(support[i]=eventName in window)){div.setAttribute(eventName,"t");support[i]=div.attributes[eventName].expando===false}}div=null})();var rformElems=/^(?:input|select|textarea)$/i,rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return true}function returnFalse(){return false}function safeActiveElement(){try{return document.activeElement}catch(err){}}function on(elem,types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined}for(type in types){on(elem,type,selector,data,types[type],one)}return elem}if(data==null&&fn==null){fn=selector;data=selector=undefined}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined}else{fn=data;data=selector;selector=undefined}}if(fn===false){fn=returnFalse}else if(!fn){return elem}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments)};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)}return elem.each(function(){jQuery.event.add(this,types,fn,data,selector)})}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var tmp,events,t,handleObjIn,special,eventHandle,handleObj,handlers,type,namespaces,origType,elemData=jQuery._data(elem);if(!elemData){return}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector}if(!handler.guid){handler.guid=jQuery.guid++}if(!(events=elemData.events)){events=elemData.events={}}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!=="undefined"&&(!e||jQuery.event.triggered!==e.type)?jQuery.event.dispatch.apply(eventHandle.elem,arguments):undefined};eventHandle.elem=elem}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false)}else if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle)}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid}}if(selector){handlers.splice(handlers.delegateCount++,0,handleObj)}else{handlers.push(handleObj)}jQuery.event.global[type]=true}elem=null},remove:function(elem,types,handler,selector,mappedTypes){var j,handleObj,tmp,origCount,t,events,special,handlers,type,namespaces,origType,elemData=jQuery.hasData(elem)&&jQuery._data(elem);if(!elemData||!(events=elemData.events)){return}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true)}continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--}if(special.remove){special.remove.call(elem,handleObj)}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle)}delete events[type]}}if(jQuery.isEmptyObject(events)){delete elemData.handle;jQuery._removeData(elem,"events")}},trigger:function(event,data,elem,onlyHandlers){var handle,ontype,cur,bubbleType,special,tmp,i,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return}if(rfocusMorph.test(type+jQuery.event.triggered)){return}if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();namespaces.sort()}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return}if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode}for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window)}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(jQuery._data(cur,"events")||{})[event.type]&&jQuery._data(cur,"handle");if(handle){handle.apply(cur,data)}handle=ontype&&cur[ontype];if(handle&&handle.apply&&acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault()}}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&acceptData(elem)){if(ontype&&elem[type]&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null}jQuery.event.triggered=type;try{elem[type]()}catch(e){}jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp}}}}return event.result},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(jQuery._data(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.rnamespace||event.rnamespace.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation()}}}}}if(special.postDispatch){special.postDispatch.call(this,event)}return event.result},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(event.type!=="click"||isNaN(event.button)||event.button<1)){for(;cur!=this;cur=cur.parentNode||this){if(cur.nodeType===1&&(cur.disabled!==true||event.type!=="click")){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length}if(matches[sel]){matches.push(handleObj)}}if(matches.length){handlerQueue.push({elem:cur,handlers:matches})}}}}if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)})}return handlerQueue},fix:function(event){if(event[jQuery.expando]){return event}var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{}}copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop]}if(!event.target){event.target=originalEvent.srcElement||document}if(event.target.nodeType===3){event.target=event.target.parentNode}event.metaKey=!!event.metaKey;return fixHook.filter?fixHook.filter(event,originalEvent):event},props:("altKey bubbles cancelable ctrlKey currentTarget detail eventPhase "+"metaKey relatedTarget shiftKey target timeStamp view which").split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode}return event}},mouseHooks:{props:("button buttons clientX clientY fromElement offsetX offsetY "+"pageX pageY screenX screenY toElement").split(" "),filter:function(event,original){var body,eventDoc,doc,button=original.button,fromElement=original.fromElement;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(!event.relatedTarget&&fromElement){event.relatedTarget=fromElement===event.target?original.toElement:fromElement}if(!event.which&&button!==undefined){event.which=button&1?1:button&2?3:button&4?2:0}return event}},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){try{this.focus();return false}catch(e){}}},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false}},delegateType:"focusout"},click:{trigger:function(){if(jQuery.nodeName(this,"input")&&this.type==="checkbox"&&this.click){this.click();return false}},_default:function(event){return jQuery.nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result}}}},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:true});jQuery.event.trigger(e,null,elem);if(e.isDefaultPrevented()){event.preventDefault()}}};jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle)}}:function(elem,type,handle){var name="on"+type;if(elem.detachEvent){if(typeof elem[name]==="undefined"){elem[name]=null}elem.detachEvent(name,handle)}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true};jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(!e){return}if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(!e||this.isSimulated){return}if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&e.stopImmediatePropagation){e.stopImmediatePropagation()}this.stopPropagation()}};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={ | ||
15 | delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||related!==target&&!jQuery.contains(target,related)){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix}return ret}}});if(!support.submit){jQuery.event.special.submit={setup:function(){if(jQuery.nodeName(this,"form")){return false}jQuery.event.add(this,"click._submit keypress._submit",function(e){var elem=e.target,form=jQuery.nodeName(elem,"input")||jQuery.nodeName(elem,"button")?jQuery.prop(elem,"form"):undefined;if(form&&!jQuery._data(form,"submit")){jQuery.event.add(form,"submit._submit",function(event){event._submitBubble=true});jQuery._data(form,"submit",true)}})},postDispatch:function(event){if(event._submitBubble){delete event._submitBubble;if(this.parentNode&&!event.isTrigger){jQuery.event.simulate("submit",this.parentNode,event)}}},teardown:function(){if(jQuery.nodeName(this,"form")){return false}jQuery.event.remove(this,"._submit")}}}if(!support.change){jQuery.event.special.change={setup:function(){if(rformElems.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){jQuery.event.add(this,"propertychange._change",function(event){if(event.originalEvent.propertyName==="checked"){this._justChanged=true}});jQuery.event.add(this,"click._change",function(event){if(this._justChanged&&!event.isTrigger){this._justChanged=false}jQuery.event.simulate("change",this,event)})}return false}jQuery.event.add(this,"beforeactivate._change",function(e){var elem=e.target;if(rformElems.test(elem.nodeName)&&!jQuery._data(elem,"change")){jQuery.event.add(elem,"change._change",function(event){if(this.parentNode&&!event.isSimulated&&!event.isTrigger){jQuery.event.simulate("change",this.parentNode,event)}});jQuery._data(elem,"change",true)}})},handle:function(event){var elem=event.target;if(this!==elem||event.isSimulated||event.isTrigger||elem.type!=="radio"&&elem.type!=="checkbox"){return event.handleObj.handler.apply(this,arguments)}},teardown:function(){jQuery.event.remove(this,"._change");return!rformElems.test(this.nodeName)}}}if(!support.focusin){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event))};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=jQuery._data(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true)}jQuery._data(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=jQuery._data(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);jQuery._removeData(doc,fix)}else{jQuery._data(doc,fix,attaches)}}}})}jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn)},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this}if(typeof types==="object"){for(type in types){this.off(type,selector,types[type])}return this}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined}if(fn===false){fn=returnFalse}return this.each(function(){jQuery.event.remove(this,types,fn,selector)})},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true)}}});var rinlinejQuery=/ jQuery\d+="(?:null|\d+)"/g,rnoshimcache=new RegExp("<(?:"+nodeNames+")[\\s/>]","i"),rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,safeFragment=createSafeFragment(document),fragmentDiv=safeFragment.appendChild(document.createElement("div"));function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){elem.type=(jQuery.find.attr(elem,"type")!==null)+"/"+elem.type;return elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1]}else{elem.removeAttribute("type")}return elem}function cloneCopyEvent(src,dest){if(dest.nodeType!==1||!jQuery.hasData(src)){return}var type,i,l,oldData=jQuery._data(src),curData=jQuery._data(dest,oldData),events=oldData.events;if(events){delete curData.handle;curData.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i])}}}if(curData.data){curData.data=jQuery.extend({},curData.data)}}function fixCloneNodeIssues(src,dest){var nodeName,e,data;if(dest.nodeType!==1){return}nodeName=dest.nodeName.toLowerCase();if(!support.noCloneEvent&&dest[jQuery.expando]){data=jQuery._data(dest);for(e in data.events){jQuery.removeEvent(dest,e,data.handle)}dest.removeAttribute(jQuery.expando)}if(nodeName==="script"&&dest.text!==src.text){disableScript(dest).text=src.text;restoreScript(dest)}else if(nodeName==="object"){if(dest.parentNode){dest.outerHTML=src.outerHTML}if(support.html5Clone&&(src.innerHTML&&!jQuery.trim(dest.innerHTML))){dest.innerHTML=src.innerHTML}}else if(nodeName==="input"&&rcheckableType.test(src.type)){dest.defaultChecked=dest.checked=src.checked;if(dest.value!==src.value){dest.value=src.value}}else if(nodeName==="option"){dest.defaultSelected=dest.selected=src.defaultSelected}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue}}function domManip(collection,args,callback,ignored){args=concat.apply([],args);var first,node,hasScripts,scripts,doc,fragment,i=0,l=collection.length,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value)){return collection.each(function(index){var self=collection.eq(index);if(isFunction){args[0]=value.call(this,index,self.html())}domManip(self,args,callback,ignored)})}if(l){fragment=buildFragment(args,collection[0].ownerDocument,false,collection,ignored);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first}if(first||ignored){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"))}}callback.call(collection[i],node,i)}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!jQuery._data(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src)}}else{jQuery.globalEval((node.text||node.textContent||node.innerHTML||"").replace(rcleanScript,""))}}}}fragment=first=null}}return collection}function remove(elem,selector,keepData){var node,elems=selector?jQuery.filter(selector,elem):elem,i=0;for(;(node=elems[i])!=null;i++){if(!keepData&&node.nodeType===1){jQuery.cleanData(getAll(node))}if(node.parentNode){if(keepData&&jQuery.contains(node.ownerDocument,node)){setGlobalEval(getAll(node,"script"))}node.parentNode.removeChild(node)}}return elem}jQuery.extend({htmlPrefilter:function(html){return html.replace(rxhtmlTag,"<$1></$2>")},clone:function(elem,dataAndEvents,deepDataAndEvents){var destElements,node,clone,i,srcElements,inPage=jQuery.contains(elem.ownerDocument,elem);if(support.html5Clone||jQuery.isXMLDoc(elem)||!rnoshimcache.test("<"+elem.nodeName+">")){clone=elem.cloneNode(true)}else{fragmentDiv.innerHTML=elem.outerHTML;fragmentDiv.removeChild(clone=fragmentDiv.firstChild)}if((!support.noCloneEvent||!support.noCloneChecked)&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0;(node=srcElements[i])!=null;++i){if(destElements[i]){fixCloneNodeIssues(node,destElements[i])}}}if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0;(node=srcElements[i])!=null;i++){cloneCopyEvent(node,destElements[i])}}else{cloneCopyEvent(elem,clone)}}destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"))}destElements=srcElements=node=null;return clone},cleanData:function(elems,forceAcceptData){var elem,type,id,data,i=0,internalKey=jQuery.expando,cache=jQuery.cache,attributes=support.attributes,special=jQuery.event.special;for(;(elem=elems[i])!=null;i++){if(forceAcceptData||acceptData(elem)){id=elem[internalKey];data=id&&cache[id];if(data){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type)}else{jQuery.removeEvent(elem,type,data.handle)}}}if(cache[id]){delete cache[id];if(!attributes&&typeof elem.removeAttribute!=="undefined"){elem.removeAttribute(internalKey)}else{elem[internalKey]=undefined}deletedIds.push(id)}}}}}});jQuery.fn.extend({domManip:domManip,detach:function(selector){return remove(this,selector,true)},remove:function(selector){return remove(this,selector)},text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(value))},null,value,arguments.length)},append:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem)}})},prepend:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this)}})},after:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling)}})},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false))}while(elem.firstChild){elem.removeChild(elem.firstChild)}if(elem.options&&jQuery.nodeName(elem,"select")){elem.options.length=0}}return this},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined){return elem.nodeType===1?elem.innerHTML.replace(rinlinejQuery,""):undefined}if(typeof value==="string"&&!rnoInnerhtml.test(value)&&(support.htmlSerialize||!rnoshimcache.test(value))&&(support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value}}elem=0}catch(e){}}if(elem){this.empty().append(value)}},null,value,arguments.length)},replaceWith:function(){var ignored=[];return domManip(this,arguments,function(elem){var parent=this.parentNode;if(jQuery.inArray(this,ignored)<0){jQuery.cleanData(getAll(this));if(parent){parent.replaceChild(elem,this)}}},ignored)}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,i=0,ret=[],insert=jQuery(selector),last=insert.length-1;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get())}return this.pushStack(ret)}});var iframe,elemdisplay={HTML:"block",BODY:"block"};function actualDisplay(name,doc){var elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=jQuery.css(elem[0],"display");elem.detach();return display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display==="none"||!display){iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement);doc=(iframe[0].contentWindow||iframe[0].contentDocument).document;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach()}elemdisplay[nodeName]=display}return display}var rmargin=/^margin/;var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name]}ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name]}return ret};var documentElement=document.documentElement;(function(){var pixelPositionVal,pixelMarginRightVal,boxSizingReliableVal,reliableHiddenOffsetsVal,reliableMarginRightVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return}div.style.cssText="float:left;opacity:.5";support.opacity=div.style.opacity==="0.5";support.cssFloat=!!div.style.cssFloat;div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";container=document.createElement("div");container.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;"+"padding:0;margin-top:1px;position:absolute";div.innerHTML="";container.appendChild(div);support.boxSizing=div.style.boxSizing===""||div.style.MozBoxSizing===""||div.style.WebkitBoxSizing==="";jQuery.extend(support,{reliableHiddenOffsets:function(){if(pixelPositionVal==null){computeStyleTests()}return reliableHiddenOffsetsVal},boxSizingReliable:function(){if(pixelPositionVal==null){computeStyleTests()}return boxSizingReliableVal},pixelMarginRight:function(){if(pixelPositionVal==null){computeStyleTests()}return pixelMarginRightVal},pixelPosition:function(){if(pixelPositionVal==null){computeStyleTests()}return pixelPositionVal},reliableMarginRight:function(){if(pixelPositionVal==null){computeStyleTests()}return reliableMarginRightVal},reliableMarginLeft:function(){if(pixelPositionVal==null){computeStyleTests()}return reliableMarginLeftVal}});function computeStyleTests(){var contents,divStyle,documentElement=document.documentElement;documentElement.appendChild(container);div.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;"+"position:relative;display:block;"+"margin:auto;border:1px;padding:1px;"+"top:1%;width:50%";pixelPositionVal=boxSizingReliableVal=reliableMarginLeftVal=false;pixelMarginRightVal=reliableMarginRightVal=true;if(window.getComputedStyle){divStyle=window.getComputedStyle(div);pixelPositionVal=(divStyle||{}).top!=="1%";reliableMarginLeftVal=(divStyle||{}).marginLeft==="2px";boxSizingReliableVal=(divStyle||{width:"4px"}).width==="4px";div.style.marginRight="50%";pixelMarginRightVal=(divStyle||{marginRight:"4px"}).marginRight==="4px";contents=div.appendChild(document.createElement("div"));contents.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;padding:0";contents.style.marginRight=contents.style.width="0";div.style.width="1px";reliableMarginRightVal=!parseFloat((window.getComputedStyle(contents)||{}).marginRight);div.removeChild(contents)}div.style.display="none";reliableHiddenOffsetsVal=div.getClientRects().length===0;if(reliableHiddenOffsetsVal){div.style.display="";div.innerHTML="<table><tr><td></td><td>t</td></tr></table>";contents=div.getElementsByTagName("td");contents[0].style.cssText="margin:0;border:0;padding:0;display:none";reliableHiddenOffsetsVal=contents[0].offsetHeight===0;if(reliableHiddenOffsetsVal){contents[0].style.display="";contents[1].style.display="none";reliableHiddenOffsetsVal=contents[0].offsetHeight===0}}documentElement.removeChild(container)}})();var getStyles,curCSS,rposition=/^(top|right|bottom|left)$/;if(window.getComputedStyle){getStyles=function(elem){var view=elem.ownerDocument.defaultView;if(!view||!view.opener){view=window}return view.getComputedStyle(elem)};curCSS=function(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);ret=computed?computed.getPropertyValue(name)||computed[name]:undefined;if((ret===""||ret===undefined)&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name)}if(computed){if(!support.pixelMarginRight()&&rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth}}return ret===undefined?ret:ret+""}}else if(documentElement.currentStyle){getStyles=function(elem){return elem.currentStyle};curCSS=function(elem,name,computed){var left,rs,rsLeft,ret,style=elem.style;computed=computed||getStyles(elem);ret=computed?computed[name]:undefined;if(ret==null&&style&&style[name]){ret=style[name]}if(rnumnonpx.test(ret)&&!rposition.test(name)){left=style.left;rs=elem.runtimeStyle;rsLeft=rs&&rs.left;if(rsLeft){rs.left=elem.currentStyle.left}style.left=name==="fontSize"?"1em":ret;ret=style.pixelLeft+"px";style.left=left;if(rsLeft){rs.left=rsLeft}}return ret===undefined?ret:ret+""||"auto"}}function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return}return(this.get=hookFn).apply(this,arguments)}}}var ralpha=/alpha\([^)]*\)/i,ropacity=/opacity\s*=\s*([^)]*)/i,rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp("^("+pnum+")(.*)$","i"),cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"],emptyStyle=document.createElement("div").style;function vendorPropName(name){if(name in emptyStyle){return name}var capName=name.charAt(0).toUpperCase()+name.slice(1),i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in emptyStyle){return name}}}function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue}values[index]=jQuery._data(elem,"olddisplay");display=elem.style.display;if(show){if(!values[index]&&display==="none"){elem.style.display=""}if(elem.style.display===""&&isHidden(elem)){values[index]=jQuery._data(elem,"olddisplay",defaultDisplay(elem.nodeName))}}else{hidden=isHidden(elem);if(display&&display!=="none"||!hidden){jQuery._data(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"))}}}for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue}if(!show||elem.style.display==="none"||elem.style.display===""){elem.style.display=show?values[index]||"":"none"}}return elements}function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles)}if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles)}if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}}return val}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name==="width"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=support.boxSizing&&jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(document.msFullscreenElement&&window.top!==window){if(elem.getClientRects().length){val=Math.round(elem.getBoundingClientRect()[name]*100)}}if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name]}if(rnumnonpx.test(val)){return val}valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles)+"px"}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret}}}},cssNumber:{animationIterationCount:true,columnCount:true,fillOpacity:true,flexGrow:true,flexShrink:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return}var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(origName)||origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){value=adjustCSS(elem,name,ret);type="number"}if(value==null||value!==value){return}if(type==="number"){value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px")}if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit"}if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){try{style[name]=value}catch(e){}}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra,styles){var num,val,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(origName)||origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra)}if(val===undefined){val=curCSS(elem,name,styles)}if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name]}if(extra===""||extra){num=parseFloat(val);return extra===true||isFinite(num)?num||0:val}return val}});jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&elem.offsetWidth===0?swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra)}):getWidthOrHeight(elem,name,extra)}},set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,support.boxSizing&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",styles):0)}}});if(!support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":computed?"1":""},set:function(elem,value){var style=elem.style,currentStyle=elem.currentStyle,opacity=jQuery.isNumeric(value)?"alpha(opacity="+value*100+")":"",filter=currentStyle&¤tStyle.filter||style.filter||"";style.zoom=1;if((value>=1||value==="")&&jQuery.trim(filter.replace(ralpha,""))===""&&style.removeAttribute){style.removeAttribute("filter");if(value===""||currentStyle&&!currentStyle.filter){return}}style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):filter+" "+opacity}}}jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return swap(elem,{display:"inline-block"},curCSS,[elem,"marginRight"])}});jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,function(elem,computed){if(computed){return(parseFloat(curCSS(elem,"marginLeft"))||(jQuery.contains(elem.ownerDocument,elem)?elem.getBoundingClientRect().left-swap(elem,{marginLeft:0},function(){return elem.getBoundingClientRect().left}):0))+"px"}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0]}return expanded}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles)}return map}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)},show:function(){return showHide(this,true)},hide:function(){return showHide(this)},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide()}return this.each(function(){if(isHidden(this)){jQuery(this).show()}else{jQuery(this).hide()}})}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||jQuery.easing._default;this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration)}else{this.pos=eased=percent}this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(hooks&&hooks.set){hooks.set(this)}else{Tween.propHooks._default.set(this)}return this}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem.nodeType!==1||tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null){return tween.elem[tween.prop]}result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween)}else if(tween.elem.nodeType===1&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}else{tween.elem[tween.prop]=tween.now}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now}}};jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2},_default:"swing"};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function createFxNow(){window.setTimeout(function(){fxNow=undefined});return fxNow=jQuery.now()}function genFx(type,includeWidth){var which,attrs={height:type},i=0;includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type}if(includeWidth){attrs.opacity=attrs.width=type}return attrs}function createTween(value,prop,animation){var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if(tween=collection[index].call(animation,prop,value)){return tween}}}function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=jQuery._data(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire()}}}hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire()}})})}if(elem.nodeType===1&&("height"in props||"width"in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,"display");checkDisplay=display==="none"?jQuery._data(elem,"olddisplay")||defaultDisplay(elem.nodeName):display;if(checkDisplay==="inline"&&jQuery.css(elem,"float")==="none"){if(!support.inlineBlockNeedsLayout||defaultDisplay(elem.nodeName)==="inline"){style.display="inline-block"}else{style.zoom=1}}}if(opts.overflow){style.overflow="hidden";if(!support.shrinkWrapBlocks()){anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2]})}}for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true}else{continue}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}else{display=undefined}}if(!jQuery.isEmptyObject(orig)){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden}}else{dataShow=jQuery._data(elem,"fxshow",{})}if(toggle){dataShow.hidden=!hidden}if(hidden){jQuery(elem).show()}else{anim.done(function(){jQuery(elem).hide()})}anim.done(function(){var prop;jQuery._removeData(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop])}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop==="width"||prop==="height"?1:0}}}}else if((display==="none"?defaultDisplay(elem.nodeName):display)==="inline"){style.display=display}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0]}if(index!==name){props[name]=value;delete props[index]}hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing}}}else{specialEasing[name]=easing}}}function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped){return false}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent)}deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining}else{deferred.resolveWith(elem,[animation]);return false}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this}stopped=true;for(;index<length;index++){animation.tweens[index].run(1)}if(gotoEnd){deferred.notifyWith(elem,[animation,1,0]);deferred.resolveWith(elem,[animation,gotoEnd]); | ||
16 | }else{deferred.rejectWith(elem,[animation,gotoEnd])}return this}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=Animation.prefilters[index].call(animation,elem,props,animation.opts);if(result){if(jQuery.isFunction(result.stop)){jQuery._queueHooks(animation.elem,animation.opts.queue).stop=jQuery.proxy(result.stop,result)}return result}}jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation)}jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always)}jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);adjustCSS(tween.elem,prop,rcssNum.exec(value),tween);return tween}]},tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=["*"]}else{props=props.match(rnotwhite)}var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];Animation.tweeners[prop]=Animation.tweeners[prop]||[];Animation.tweeners[prop].unshift(callback)}},prefilters:[defaultPrefilter],prefilter:function(callback,prepend){if(prepend){Animation.prefilters.unshift(callback)}else{Animation.prefilters.push(callback)}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx"}opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this)}if(opt.queue){jQuery.dequeue(this,opt.queue)}};return opt};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||jQuery._data(this,"finish")){anim.stop(true)}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd)};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined}if(clearQueue&&type!==false){this.queue(type||"fx",[])}return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=jQuery._data(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index])}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index])}}}for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1)}}if(dequeue||!gotoEnd){jQuery.dequeue(this,type)}})},finish:function(type){if(type!==false){type=type||"fx"}return this.each(function(){var index,data=jQuery._data(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true)}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1)}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this)}}delete data.finish})}});jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback)}});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}});jQuery.timers=[];jQuery.fx.tick=function(){var timer,timers=jQuery.timers,i=0;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1)}}if(!timers.length){jQuery.fx.stop()}fxNow=undefined};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start()}else{jQuery.timers.pop()}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=window.setInterval(jQuery.fx.tick,jQuery.fx.interval)}};jQuery.fx.stop=function(){window.clearInterval(timerId);timerId=null};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout)}})};(function(){var a,input=document.createElement("input"),div=document.createElement("div"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));div=document.createElement("div");div.setAttribute("className","t");div.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";a=div.getElementsByTagName("a")[0];input.setAttribute("type","checkbox");div.appendChild(input);a=div.getElementsByTagName("a")[0];a.style.cssText="top:1px";support.getSetAttribute=div.className!=="t";support.style=/top/.test(a.getAttribute("style"));support.hrefNormalized=a.getAttribute("href")==="/a";support.checkOn=!!input.value;support.optSelected=opt.selected;support.enctype=!!document.createElement("form").enctype;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement("input");input.setAttribute("value","");support.input=input.getAttribute("value")==="";input.value="t";input.setAttribute("type","radio");support.radioValue=input.value==="t"})();var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret}ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret}return}isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return}if(isFunction){val=value.call(this,i,jQuery(this).val())}else{val=value}if(val==null){val=""}else if(typeof val==="number"){val+=""}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+""})}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:jQuery.trim(jQuery.text(elem))}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value}values.push(value)}}return values},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(jQuery.inArray(jQuery.valHooks.option.get(option),values)>=0){try{option.selected=optionSet=true}catch(_){option.scrollHeight}}else{option.selected=false}}if(!optionSet){elem.selectedIndex=-1}return options}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value}}});var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle,ruseDefault=/^(?:checked|selected)$/i,getSetAttribute=support.getSetAttribute,getSetInput=support.input;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}});jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return}if(typeof elem.getAttribute==="undefined"){return jQuery.prop(elem,name,value)}if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook)}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return}if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}elem.setAttribute(name,value+"");return value}if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret}ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val}return value}}}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while(name=attrNames[i++]){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){if(getSetInput&&getSetAttribute||!ruseDefault.test(name)){elem[propName]=false}else{elem[jQuery.camelCase("default-"+name)]=elem[propName]=false}}else{jQuery.attr(elem,name,"")}elem.removeAttribute(getSetAttribute?name:propName)}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name)}else if(getSetInput&&getSetAttribute||!ruseDefault.test(name)){elem.setAttribute(!getSetAttribute&&jQuery.propFix[name]||name,name)}else{elem[jQuery.camelCase("default-"+name)]=elem[name]=true}return name}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;if(getSetInput&&getSetAttribute||!ruseDefault.test(name)){attrHandle[name]=function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle}return ret}}else{attrHandle[name]=function(elem,name,isXML){if(!isXML){return elem[jQuery.camelCase("default-"+name)]?name.toLowerCase():null}}}});if(!getSetInput||!getSetAttribute){jQuery.attrHooks.value={set:function(elem,value,name){if(jQuery.nodeName(elem,"input")){elem.defaultValue=value}else{return nodeHook&&nodeHook.set(elem,value,name)}}}}if(!getSetAttribute){nodeHook={set:function(elem,value,name){var ret=elem.getAttributeNode(name);if(!ret){elem.setAttributeNode(ret=elem.ownerDocument.createAttribute(name))}ret.value=value+="";if(name==="value"||value===elem.getAttribute(name)){return value}}};attrHandle.id=attrHandle.name=attrHandle.coords=function(elem,name,isXML){var ret;if(!isXML){return(ret=elem.getAttributeNode(name))&&ret.value!==""?ret.value:null}};jQuery.valHooks.button={get:function(elem,name){var ret=elem.getAttributeNode(name);if(ret&&ret.specified){return ret.value}},set:nodeHook.set};jQuery.attrHooks.contenteditable={set:function(elem,value,name){nodeHook.set(elem,value===""?false:value,name)}};jQuery.each(["width","height"],function(i,name){jQuery.attrHooks[name]={set:function(elem,value){if(value===""){elem.setAttribute(name,"auto");return value}}}})}if(!support.style){jQuery.attrHooks.style={get:function(elem){return elem.style.cssText||undefined},set:function(elem,value){return elem.style.cssText=value+""}}}var rfocusable=/^(?:input|select|textarea|button|object)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){name=jQuery.propFix[name]||name;return this.each(function(){try{this[name]=undefined;delete this[name]}catch(e){}})}});jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return}if(nType!==1||!jQuery.isXMLDoc(elem)){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name]}if(value!==undefined){if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}return elem[name]=value}if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret}return elem[name]},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}});if(!support.hrefNormalized){jQuery.each(["href","src"],function(i,name){jQuery.propHooks[name]={get:function(elem){return elem.getAttribute(name,4)}}})}if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex}}return null}}}jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this});if(!support.enctype){jQuery.propFix.enctype="encoding"}var rclass=/[\t\r\n\f]/g;function getClass(elem){return jQuery.attr(elem,"class")||""}jQuery.fn.extend({addClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)))})}if(typeof value==="string"&&value){classes=value.match(rnotwhite)||[];while(elem=this[i++]){curValue=getClass(elem);cur=elem.nodeType===1&&(" "+curValue+" ").replace(rclass," ");if(cur){j=0;while(clazz=classes[j++]){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" "}}finalValue=jQuery.trim(cur);if(curValue!==finalValue){jQuery.attr(elem,"class",finalValue)}}}}return this},removeClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)))})}if(!arguments.length){return this.attr("class","")}if(typeof value==="string"&&value){classes=value.match(rnotwhite)||[];while(elem=this[i++]){curValue=getClass(elem);cur=elem.nodeType===1&&(" "+curValue+" ").replace(rclass," ");if(cur){j=0;while(clazz=classes[j++]){while(cur.indexOf(" "+clazz+" ")>-1){cur=cur.replace(" "+clazz+" "," ")}}finalValue=jQuery.trim(cur);if(curValue!==finalValue){jQuery.attr(elem,"class",finalValue)}}}}return this},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal==="boolean"&&type==="string"){return stateVal?this.addClass(value):this.removeClass(value)}if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal)})}return this.each(function(){var className,i,self,classNames;if(type==="string"){i=0;self=jQuery(this);classNames=value.match(rnotwhite)||[];while(className=classNames[i++]){if(self.hasClass(className)){self.removeClass(className)}else{self.addClass(className)}}}else if(value===undefined||type==="boolean"){className=getClass(this);if(className){jQuery._data(this,"__className__",className)}jQuery.attr(this,"class",className||value===false?"":jQuery._data(this,"__className__")||"")}})},hasClass:function(selector){var className,elem,i=0;className=" "+selector+" ";while(elem=this[i++]){if(elem.nodeType===1&&(" "+getClass(elem)+" ").replace(rclass," ").indexOf(className)>-1){return true}}return false}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}});var location=window.location;var nonce=jQuery.now();var rquery=/\?/;var rvalidtokens=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;jQuery.parseJSON=function(data){if(window.JSON&&window.JSON.parse){return window.JSON.parse(data+"")}var requireNonComma,depth=null,str=jQuery.trim(data+"");return str&&!jQuery.trim(str.replace(rvalidtokens,function(token,comma,open,close){if(requireNonComma&&comma){depth=0}if(depth===0){return token}requireNonComma=open||comma;depth+=!close-!open;return""}))?Function("return "+str)():jQuery.error("Invalid JSON: "+data)};jQuery.parseXML=function(data){var xml,tmp;if(!data||typeof data!=="string"){return null}try{if(window.DOMParser){tmp=new window.DOMParser;xml=tmp.parseFromString(data,"text/xml")}else{xml=new window.ActiveXObject("Microsoft.XMLDOM");xml.async="false";xml.loadXML(data)}}catch(e){xml=undefined}if(!xml||!xml.documentElement||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data)}return xml};var rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*"),ajaxLocation=location.href,ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*"}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while(dataType=dataTypes[i++]){if(dataType.charAt(0)==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func)}else{(structure[dataType]=structure[dataType]||[]).push(func)}}}}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=structure===transports;function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false}else if(seekingTransport){return!(selected=dataTypeOrTransport)}});return selected}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*")}function ajaxExtend(target,src){var deep,key,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:deep||(deep={}))[key]=src[key]}}if(deep){jQuery.extend(true,target,deep)}return target}function ajaxHandleResponses(s,jqXHR,responses){var firstDataType,ct,finalDataType,type,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0]in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv]}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType)}prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2]}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1])}break}}}}if(conv!==true){if(conv&&s["throws"]){response=conv(response)}else{try{response=conv(response)}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current}}}}}}}return{state:"success",data:response}}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined}options=options||{};var parts,i,cacheURL,responseHeadersString,timeoutTimer,fireGlobals,transport,responseHeaders,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while(match=rheaders.exec(responseHeadersString)){responseHeaders[match[1].toLowerCase()]=match[2]}}match=responseHeaders[key.toLowerCase()]}return match==null?null:match},getAllResponseHeaders:function(){return state===2?responseHeadersString:null},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value}return this},overrideMimeType:function(type){if(!state){s.mimeType=type}return this},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]]}}else{jqXHR.always(map[jqXHR.status])}}return this},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText)}done(0,finalText);return this}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!==ajaxLocParts[1]||parts[2]!==ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?"80":"443"))!==(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?"80":"443"))))}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR}fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart")}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=s.url+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data}if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++}}if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL])}if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType)}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort()}strAbort="abort";for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i])}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s])}if(state===2){return jqXHR}if(s.async&&s.timeout>0){timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout")},s.timeout)}try{state=1;transport.send(requestHeaders,done)}catch(e){if(state<2){done(-1,e)}else{throw e}}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return}state=2;if(timeoutTimer){window.clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses)}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified}modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified}}if(status===204||s.type==="HEAD"){statusText="nocontent"}else if(status===304){statusText="notmodified"}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error])}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!--jQuery.active){jQuery.event.trigger("ajaxStop")}}}return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script")}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}return jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url))}});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",cache:true,async:false,global:false,"throws":true})};jQuery.fn.extend({wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))})}if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild}return elem}).append(this)}return this},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i))})}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html)}else{self.append(html)}})},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html)})},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes)}}).end()}});function getDisplay(elem){return elem.style&&elem.style.display||jQuery.css(elem,"display")}function filterHidden(elem){while(elem&&elem.nodeType===1){if(getDisplay(elem)==="none"||elem.type==="hidden"){return true}elem=elem.parentNode}return false}jQuery.expr.filters.hidden=function(elem){return support.reliableHiddenOffsets()?elem.offsetWidth<=0&&elem.offsetHeight<=0&&!elem.getClientRects().length:filterHidden(elem)};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem)};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",v,traditional,add)}})}else if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add)}}else{add(prefix,obj)}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value==null?"":value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a)){jQuery.each(a,function(){add(this.name,this.value)})}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join("&").replace(r20,"+")};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});jQuery.ajaxSettings.xhr=window.ActiveXObject!==undefined?function(){if(this.isLocal){return createActiveXHR()}if(document.documentMode>8){return createStandardXHR()}return/^(get|post|head|put|delete|options)$/i.test(this.type)&&createStandardXHR()||createActiveXHR()}:createStandardXHR;var xhrId=0,xhrCallbacks={},xhrSupported=jQuery.ajaxSettings.xhr();if(window.attachEvent){window.attachEvent("onunload",function(){for(var key in xhrCallbacks){xhrCallbacks[key](undefined,true)}})}support.cors=!!xhrSupported&&"withCredentials"in xhrSupported; | ||
17 | xhrSupported=support.ajax=!!xhrSupported;if(xhrSupported){jQuery.ajaxTransport(function(options){if(!options.crossDomain||support.cors){var callback;return{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i]}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType)}if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest"}for(i in headers){if(headers[i]!==undefined){xhr.setRequestHeader(i,headers[i]+"")}}xhr.send(options.hasContent&&options.data||null);callback=function(_,isAbort){var status,statusText,responses;if(callback&&(isAbort||xhr.readyState===4)){delete xhrCallbacks[id];callback=undefined;xhr.onreadystatechange=jQuery.noop;if(isAbort){if(xhr.readyState!==4){xhr.abort()}}else{responses={};status=xhr.status;if(typeof xhr.responseText==="string"){responses.text=xhr.responseText}try{statusText=xhr.statusText}catch(e){statusText=""}if(!status&&options.isLocal&&!options.crossDomain){status=responses.text?200:404}else if(status===1223){status=204}}}if(responses){complete(status,statusText,responses,xhr.getAllResponseHeaders())}};if(!options.async){callback()}else if(xhr.readyState===4){window.setTimeout(callback)}else{xhr.onreadystatechange=xhrCallbacks[id]=callback}},abort:function(){if(callback){callback(undefined,true)}}}}})}function createStandardXHR(){try{return new window.XMLHttpRequest}catch(e){}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}jQuery.ajaxPrefilter(function(s){if(s.crossDomain){s.contents.script=false}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, "+"application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){jQuery.globalEval(text);return text}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type="GET";s.global=false}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,head=document.head||jQuery("head")[0]||document.documentElement;return{send:function(_,callback){script=document.createElement("script");script.async=true;if(s.scriptCharset){script.charset=s.scriptCharset}script.src=s.url;script.onload=script.onreadystatechange=function(_,isAbort){if(isAbort||!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=script.onreadystatechange=null;if(script.parentNode){script.parentNode.removeChild(script)}script=null;if(!isAbort){callback(200,"success")}}};head.insertBefore(script,head.firstChild)},abort:function(){if(script){script.onload(undefined,true)}}}}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;this[callback]=true;return callback}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName)}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName}s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called")}return responseContainer[0]};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments};jqXHR.always(function(){if(overwritten===undefined){jQuery(window).removeProp(callbackName)}else{window[callbackName]=overwritten}if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName)}if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0])}responseContainer=overwritten=undefined});return"script"}});support.createHTMLDocument=function(){if(!document.implementation.createHTMLDocument){return false}var doc=document.implementation.createHTMLDocument("");doc.body.innerHTML="<form></form><form></form>";return doc.body.childNodes.length===2}();jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!=="string"){return null}if(typeof context==="boolean"){keepScripts=context;context=false}context=context||(support.createHTMLDocument?document.implementation.createHTMLDocument(""):document);var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])]}parsed=buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove()}return jQuery.merge([],parsed.childNodes)};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments)}var selector,type,response,self=this,off=url.indexOf(" ");if(off>-1){selector=jQuery.trim(url.slice(off,url.length));url=url.slice(0,off)}if(jQuery.isFunction(params)){callback=params;params=undefined}else if(params&&typeof params==="object"){type="POST"}if(self.length>0){jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(self,response||[jqXHR.responseText,status,jqXHR])})})}return this};jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false}jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative"}curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&jQuery.inArray("auto",[curCSSTop,curCSSLeft])>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0}if(jQuery.isFunction(options)){options=options.call(elem,i,jQuery.extend({},curOffset))}if(options.top!=null){props.top=options.top-curOffset.top+curTop}if(options.left!=null){props.left=options.left-curOffset.left+curLeft}if("using"in options){options.using.call(elem,props)}else{curElem.css(props)}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)})}var docElem,win,box={top:0,left:0},elem=this[0],doc=elem&&elem.ownerDocument;if(!doc){return}docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box}if(typeof elem.getBoundingClientRect!=="undefined"){box=elem.getBoundingClientRect()}win=getWindow(doc);return{top:box.top+(win.pageYOffset||docElem.scrollTop)-(docElem.clientTop||0),left:box.left+(win.pageXOffset||docElem.scrollLeft)-(docElem.clientLeft||0)}},position:function(){if(!this[0]){return}var offsetParent,offset,parentOffset={top:0,left:0},elem=this[0];if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect()}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset()}parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true)}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent;while(offsetParent&&(!jQuery.nodeName(offsetParent,"html")&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent}return offsetParent||documentElement})}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top=/Y/.test(prop);jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?prop in win?win[prop]:win.document.documentElement[method]:elem[method]}if(win){win.scrollTo(!top?val:jQuery(win).scrollLeft(),top?val:jQuery(win).scrollTop())}else{elem[method]=val}},method,val,arguments.length,null)}});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed}})});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(jQuery.isWindow(elem)){return elem.document.documentElement["client"+name]}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:undefined,chainable,null)}})});jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn)}});jQuery.fn.size=function(){return this.length};jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery})}var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery}return jQuery};if(!noGlobal){window.jQuery=window.$=jQuery}return jQuery})},{}],8:[function(require,module,exports){(function(){module.exports={xpath:require("./xpath"),Range:require("./range")}}).call(this)},{"./range":9,"./xpath":11}],9:[function(require,module,exports){(function(){var $,Range,Util,xpath,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};xpath=require("./xpath");Util=require("./util");$=require("jquery");Range={};Range.sniff=function(r){if(r.commonAncestorContainer!=null){return new Range.BrowserRange(r)}else if(typeof r.start==="string"){return new Range.SerializedRange(r)}else if(r.start&&typeof r.start==="object"){return new Range.NormalizedRange(r)}else{console.error("Could not sniff range type");return false}};Range.RangeError=function(_super){__extends(RangeError,_super);function RangeError(type,message,parent){this.type=type;this.message=message;this.parent=parent!=null?parent:null;RangeError.__super__.constructor.call(this,this.message)}return RangeError}(Error);Range.BrowserRange=function(){function BrowserRange(obj){this.commonAncestorContainer=obj.commonAncestorContainer;this.startContainer=obj.startContainer;this.startOffset=obj.startOffset;this.endContainer=obj.endContainer;this.endOffset=obj.endOffset}BrowserRange.prototype.normalize=function(root){var nr,r;if(this.tainted){console.error("You may only call normalize() once on a BrowserRange!");return false}else{this.tainted=true}r={};this._normalizeStart(r);this._normalizeEnd(r);nr={};if(r.startOffset>0){if(r.start.nodeValue.length>r.startOffset){nr.start=r.start.splitText(r.startOffset)}else{nr.start=r.start.nextSibling}}else{nr.start=r.start}if(r.start===r.end){if(nr.start.nodeValue.length>r.endOffset-r.startOffset){nr.start.splitText(r.endOffset-r.startOffset)}nr.end=nr.start}else{if(r.end.nodeValue.length>r.endOffset){r.end.splitText(r.endOffset)}nr.end=r.end}nr.commonAncestor=this.commonAncestorContainer;while(nr.commonAncestor.nodeType!==Util.NodeTypes.ELEMENT_NODE){nr.commonAncestor=nr.commonAncestor.parentNode}return new Range.NormalizedRange(nr)};BrowserRange.prototype._normalizeStart=function(r){if(this.startContainer.nodeType===Util.NodeTypes.ELEMENT_NODE){r.start=Util.getFirstTextNodeNotBefore(this.startContainer.childNodes[this.startOffset]);return r.startOffset=0}else{r.start=this.startContainer;return r.startOffset=this.startOffset}};BrowserRange.prototype._normalizeEnd=function(r){var n,node;if(this.endContainer.nodeType===Util.NodeTypes.ELEMENT_NODE){node=this.endContainer.childNodes[this.endOffset];if(node!=null){n=node;while(n!=null&&n.nodeType!==Util.NodeTypes.TEXT_NODE){n=n.firstChild}if(n!=null){r.end=n;r.endOffset=0}}if(r.end==null){if(this.endOffset){node=this.endContainer.childNodes[this.endOffset-1]}else{node=this.endContainer.previousSibling}r.end=Util.getLastTextNodeUpTo(node);return r.endOffset=r.end.nodeValue.length}}else{r.end=this.endContainer;return r.endOffset=this.endOffset}};BrowserRange.prototype.serialize=function(root,ignoreSelector){return this.normalize(root).serialize(root,ignoreSelector)};return BrowserRange}();Range.NormalizedRange=function(){function NormalizedRange(obj){this.commonAncestor=obj.commonAncestor;this.start=obj.start;this.end=obj.end}NormalizedRange.prototype.normalize=function(root){return this};NormalizedRange.prototype.limit=function(bounds){var nodes,parent,startParents,_i,_len,_ref;nodes=$.grep(this.textNodes(),function(node){return node.parentNode===bounds||$.contains(bounds,node.parentNode)});if(!nodes.length){return null}this.start=nodes[0];this.end=nodes[nodes.length-1];startParents=$(this.start).parents();_ref=$(this.end).parents();for(_i=0,_len=_ref.length;_i<_len;_i++){parent=_ref[_i];if(startParents.index(parent)!==-1){this.commonAncestor=parent;break}}return this};NormalizedRange.prototype.serialize=function(root,ignoreSelector){var end,serialization,start;serialization=function(node,isEnd){var n,nodes,offset,origParent,path,textNodes,_i,_len;if(ignoreSelector){origParent=$(node).parents(":not("+ignoreSelector+")").eq(0)}else{origParent=$(node).parent()}path=xpath.fromNode(origParent,root)[0];textNodes=Util.getTextNodes(origParent);nodes=textNodes.slice(0,textNodes.index(node));offset=0;for(_i=0,_len=nodes.length;_i<_len;_i++){n=nodes[_i];offset+=n.nodeValue.length}if(isEnd){return[path,offset+node.nodeValue.length]}else{return[path,offset]}};start=serialization(this.start);end=serialization(this.end,true);return new Range.SerializedRange({start:start[0],end:end[0],startOffset:start[1],endOffset:end[1]})};NormalizedRange.prototype.text=function(){var node;return function(){var _i,_len,_ref,_results;_ref=this.textNodes();_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){node=_ref[_i];_results.push(node.nodeValue)}return _results}.call(this).join("")};NormalizedRange.prototype.textNodes=function(){var end,start,textNodes,_ref;textNodes=Util.getTextNodes($(this.commonAncestor));_ref=[textNodes.index(this.start),textNodes.index(this.end)],start=_ref[0],end=_ref[1];return $.makeArray(textNodes.slice(start,+end+1||9e9))};return NormalizedRange}();Range.SerializedRange=function(){function SerializedRange(obj){this.start=obj.start;this.startOffset=obj.startOffset;this.end=obj.end;this.endOffset=obj.endOffset}SerializedRange.prototype.normalize=function(root){var contains,e,length,node,p,range,targetOffset,tn,_i,_j,_len,_len1,_ref,_ref1;range={};_ref=["start","end"];for(_i=0,_len=_ref.length;_i<_len;_i++){p=_ref[_i];try{node=xpath.toNode(this[p],root)}catch(_error){e=_error;throw new Range.RangeError(p,"Error while finding "+p+" node: "+this[p]+": "+e,e)}if(!node){throw new Range.RangeError(p,"Couldn't find "+p+" node: "+this[p])}length=0;targetOffset=this[p+"Offset"];if(p==="end"){targetOffset-=1}_ref1=Util.getTextNodes($(node));for(_j=0,_len1=_ref1.length;_j<_len1;_j++){tn=_ref1[_j];if(length+tn.nodeValue.length>targetOffset){range[p+"Container"]=tn;range[p+"Offset"]=this[p+"Offset"]-length;break}else{length+=tn.nodeValue.length}}if(range[p+"Offset"]==null){throw new Range.RangeError(""+p+"offset","Couldn't find offset "+this[p+"Offset"]+" in element "+this[p])}}contains=document.compareDocumentPosition!=null?function(a,b){return a.compareDocumentPosition(b)&Node.DOCUMENT_POSITION_CONTAINED_BY}:function(a,b){return a.contains(b)};$(range.startContainer).parents().each(function(){var endContainer;if(range.endContainer.nodeType===Util.NodeTypes.TEXT_NODE){endContainer=range.endContainer.parentNode}else{endContainer=range.endContainer}if(contains(this,endContainer)){range.commonAncestorContainer=this;return false}});return new Range.BrowserRange(range).normalize(root)};SerializedRange.prototype.serialize=function(root,ignoreSelector){return this.normalize(root).serialize(root,ignoreSelector)};SerializedRange.prototype.toObject=function(){return{start:this.start,startOffset:this.startOffset,end:this.end,endOffset:this.endOffset}};return SerializedRange}();module.exports=Range}).call(this)},{"./util":10,"./xpath":11,jquery:12}],10:[function(require,module,exports){(function(){var $,Util;$=require("jquery");Util={};Util.NodeTypes={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};Util.getFirstTextNodeNotBefore=function(n){var result;switch(n.nodeType){case Util.NodeTypes.TEXT_NODE:return n;case Util.NodeTypes.ELEMENT_NODE:if(n.firstChild!=null){result=Util.getFirstTextNodeNotBefore(n.firstChild);if(result!=null){return result}}break}n=n.nextSibling;if(n!=null){return Util.getFirstTextNodeNotBefore(n)}else{return null}};Util.getLastTextNodeUpTo=function(n){var result;switch(n.nodeType){case Util.NodeTypes.TEXT_NODE:return n;case Util.NodeTypes.ELEMENT_NODE:if(n.lastChild!=null){result=Util.getLastTextNodeUpTo(n.lastChild);if(result!=null){return result}}break}n=n.previousSibling;if(n!=null){return Util.getLastTextNodeUpTo(n)}else{return null}};Util.getTextNodes=function(jq){var getTextNodes;getTextNodes=function(node){var nodes;if(node&&node.nodeType!==Util.NodeTypes.TEXT_NODE){nodes=[];if(node.nodeType!==Util.NodeTypes.COMMENT_NODE){node=node.lastChild;while(node){nodes.push(getTextNodes(node));node=node.previousSibling}}return nodes.reverse()}else{return node}};return jq.map(function(){return Util.flatten(getTextNodes(this))})};Util.getGlobal=function(){return function(){return this}()};Util.contains=function(parent,child){var node;node=child;while(node!=null){if(node===parent){return true}node=node.parentNode}return false};Util.flatten=function(array){var flatten;flatten=function(ary){var el,flat,_i,_len;flat=[];for(_i=0,_len=ary.length;_i<_len;_i++){el=ary[_i];flat=flat.concat(el&&$.isArray(el)?flatten(el):el)}return flat};return flatten(array)};module.exports=Util}).call(this)},{jquery:12}],11:[function(require,module,exports){(function(){var $,Util,evaluateXPath,findChild,fromNode,getNodeName,getNodePosition,simpleXPathJQuery,simpleXPathPure,toNode;$=require("jquery");Util=require("./util");evaluateXPath=function(xp,root,nsResolver){var exception,idx,name,node,step,steps,_i,_len,_ref;if(root==null){root=document}if(nsResolver==null){nsResolver=null}try{return document.evaluate("."+xp,root,nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch(_error){exception=_error;console.log("XPath evaluation failed.");console.log("Trying fallback...");steps=xp.substring(1).split("/");node=root;for(_i=0,_len=steps.length;_i<_len;_i++){step=steps[_i];_ref=step.split("["),name=_ref[0],idx=_ref[1];idx=idx!=null?parseInt((idx!=null?idx.split("]"):void 0)[0]):1;node=findChild(node,name.toLowerCase(),idx)}return node}};simpleXPathJQuery=function($el,relativeRoot){var jq;jq=$el.map(function(){var elem,idx,path,tagName;path="";elem=this;while((elem!=null?elem.nodeType:void 0)===Util.NodeTypes.ELEMENT_NODE&&elem!==relativeRoot){tagName=elem.tagName.replace(":","\\:");idx=$(elem.parentNode).children(tagName).index(elem)+1;idx="["+idx+"]";path="/"+elem.tagName.toLowerCase()+idx+path;elem=elem.parentNode}return path});return jq.get()};simpleXPathPure=function($el,relativeRoot){var getPathSegment,getPathTo,jq,rootNode;getPathSegment=function(node){var name,pos;name=getNodeName(node);pos=getNodePosition(node);return""+name+"["+pos+"]"};rootNode=relativeRoot;getPathTo=function(node){var xpath;xpath="";while(node!==rootNode){if(node==null){throw new Error("Called getPathTo on a node which was not a descendant of @rootNode. "+rootNode)}xpath=getPathSegment(node)+"/"+xpath;node=node.parentNode}xpath="/"+xpath;xpath=xpath.replace(/\/$/,"");return xpath};jq=$el.map(function(){var path;path=getPathTo(this);return path});return jq.get()};findChild=function(node,type,index){var child,children,found,name,_i,_len;if(!node.hasChildNodes()){throw new Error("XPath error: node has no children!")}children=node.childNodes;found=0;for(_i=0,_len=children.length;_i<_len;_i++){child=children[_i];name=getNodeName(child);if(name===type){found+=1;if(found===index){return child}}}throw new Error("XPath error: wanted child not found.")};getNodeName=function(node){var nodeName;nodeName=node.nodeName.toLowerCase();switch(nodeName){case"#text":return"text()";case"#comment":return"comment()";case"#cdata-section":return"cdata-section()";default:return nodeName}};getNodePosition=function(node){var pos,tmp;pos=0;tmp=node;while(tmp){if(tmp.nodeName===node.nodeName){pos+=1}tmp=tmp.previousSibling}return pos};fromNode=function($el,relativeRoot){var exception,result;try{result=simpleXPathJQuery($el,relativeRoot)}catch(_error){exception=_error;console.log("jQuery-based XPath construction failed! Falling back to manual.");result=simpleXPathPure($el,relativeRoot)}return result};toNode=function(path,root){var customResolver,namespace,node,segment;if(root==null){root=document}if(!$.isXMLDoc(document.documentElement)){return evaluateXPath(path,root)}else{customResolver=document.createNSResolver(document.ownerDocument===null?document.documentElement:document.ownerDocument.documentElement);node=evaluateXPath(path,root,customResolver);if(!node){path=function(){var _i,_len,_ref,_results;_ref=path.split("/");_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){segment=_ref[_i];if(segment&&segment.indexOf(":")===-1){_results.push(segment.replace(/^([a-z]+)/,"xhtml:$1"))}else{_results.push(segment)}}return _results}().join("/");namespace=document.lookupNamespaceURI(null);customResolver=function(ns){if(ns==="xhtml"){return namespace}else{return document.documentElement.getAttribute("xmlns:"+ns)}};node=evaluateXPath(path,root,customResolver)}return node}};module.exports={fromNode:fromNode,toNode:toNode}}).call(this)},{"./util":10,jquery:12}],12:[function(require,module,exports){(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document")}return factory(w)}}else{factory(global)}})(typeof window!=="undefined"?window:this,function(window,noGlobal){var deletedIds=[];var slice=deletedIds.slice;var concat=deletedIds.concat;var push=deletedIds.push;var indexOf=deletedIds.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var version="1.11.3",jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this)},get:function(num){return num!=null?num<0?this[num+this.length]:this[num]:slice.call(this)},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;ret.context=this.context;return ret},each:function(callback,args){return jQuery.each(this,callback,args)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:push,sort:deletedIds.sort,splice:deletedIds.splice};jQuery.extend=jQuery.fn.extend=function(){var src,copyIsArray,copy,name,options,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(i===length){target=this;i--}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}if(deep&©&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[]}else{clone=src&&jQuery.isPlainObject(src)?src:{}}target[name]=jQuery.extend(deep,clone,copy)}else if(copy!==undefined){target[name]=copy}}}}return target};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg)},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function"},isArray:Array.isArray||function(obj){return jQuery.type(obj)==="array"},isWindow:function(obj){return obj!=null&&obj==obj.window},isNumeric:function(obj){return!jQuery.isArray(obj)&&obj-parseFloat(obj)+1>=0},isEmptyObject:function(obj){var name;for(name in obj){return false}return true},isPlainObject:function(obj){var key;if(!obj||jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false}try{if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false}}catch(e){return false}if(support.ownLast){for(key in obj){return hasOwn.call(obj,key)}}for(key in obj){}return key===undefined||hasOwn.call(obj,key)},type:function(obj){if(obj==null){return obj+""}return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj},globalEval:function(data){if(data&&jQuery.trim(data)){(window.execScript||function(data){window["eval"].call(window,data)})(data)}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()},each:function(obj,callback,args){var value,i=0,length=obj.length,isArray=isArraylike(obj);if(args){if(isArray){for(;i<length;i++){value=callback.apply(obj[i],args);if(value===false){break}}}else{for(i in obj){value=callback.apply(obj[i],args);if(value===false){break}}}}else{if(isArray){for(;i<length;i++){value=callback.call(obj[i],i,obj[i]);if(value===false){break}}}else{for(i in obj){value=callback.call(obj[i],i,obj[i]);if(value===false){break}}}}return obj},trim:function(text){return text==null?"":(text+"").replace(rtrim,"")},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArraylike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr)}else{push.call(ret,arr)}}return ret},inArray:function(elem,arr,i){var len;if(arr){if(indexOf){return indexOf.call(arr,elem,i)}len=arr.length;i=i?i<0?Math.max(0,len+i):i:0;for(;i<len;i++){if(i in arr&&arr[i]===elem){return i}}}return-1},merge:function(first,second){var len=+second.length,j=0,i=first.length;while(j<len){first[i++]=second[j++]}if(len!==len){while(second[j]!==undefined){first[i++]=second[j++]}}first.length=i;return first},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i])}}return matches},map:function(elems,callback,arg){var value,i=0,length=elems.length,isArray=isArraylike(elems),ret=[];if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}return concat.apply([],ret)},guid:1,proxy:function(fn,context){var args,proxy,tmp;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy},now:function(){return+new Date},support:support});jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});function isArraylike(obj){var length="length"in obj&&obj.length,type=jQuery.type(obj);if(type==="function"||jQuery.isWindow(obj)){return false}if(obj.nodeType===1&&length){return true}return type==="array"||length===0||typeof length==="number"&&length>0&&length-1 in obj}var Sizzle=function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true}return 0},MAX_NEGATIVE=1<<31,hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i}}return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",characterEncoding="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",identifier=characterEncoding.replace("w","w#"),attributes="\\["+whitespace+"*("+characterEncoding+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+characterEncoding+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+characterEncoding+")"),CLASS:new RegExp("^\\.("+characterEncoding+")"),TAG:new RegExp("^("+characterEncoding.replace("w","w*")+")"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos), | ||
18 | CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)},unloadHandler=function(){setDocument()};try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){var j=target.length,i=0;while(target[j++]=els[i++]){}target.length=j-1}}}function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context)}context=context||document;results=results||[];nodeType=context.nodeType;if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results}if(!seed&&documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if(m=match[1]){if(nodeType===9){elem=context.getElementById(m);if(elem&&elem.parentNode){if(elem.id===m){results.push(elem);return results}}else{return results}}else{if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results}else if((m=match[3])&&support.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results}}if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){nid=old=expando;newContext=context;newSelector=nodeType!==1&&selector;if(nodeType===1&&context.nodeName.toLowerCase()!=="object"){groups=tokenize(selector);if(old=context.getAttribute("id")){nid=old.replace(rescape,"\\$&")}else{context.setAttribute("id",nid)}nid="[id='"+nid+"'] ";i=groups.length;while(i--){groups[i]=nid+toSelector(groups[i])}newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;newSelector=groups.join(",")}if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results}catch(qsaError){}finally{if(!old){context.removeAttribute("id")}}}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()]}return cache[key+" "]=value}return cache}function markFunction(fn){fn[expando]=true;return fn}function assert(fn){var div=document.createElement("div");try{return!!fn(div)}catch(e){return false}finally{if(div.parentNode){div.parentNode.removeChild(div)}div=null}}function addHandle(attrs,handler){var arr=attrs.split("|"),i=attrs.length;while(i--){Expr.attrHandle[arr[i]]=handler}}function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff}if(cur){while(cur=cur.nextSibling){if(cur===b){return-1}}}return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type}}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[j=matchIndexes[i]]){seed[j]=!(matches[j]=seed[j])}}})})}function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context}support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false};setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document}document=doc;docElem=doc.documentElement;parent=doc.defaultView;if(parent&&parent!==parent.top){if(parent.addEventListener){parent.addEventListener("unload",unloadHandler,false)}else if(parent.attachEvent){parent.attachEvent("onunload",unloadHandler)}}documentIsHTML=!isXML(doc);support.attributes=assert(function(div){div.className="i";return!div.getAttribute("className")});support.getElementsByTagName=assert(function(div){div.appendChild(doc.createComment(""));return!div.getElementsByTagName("*").length});support.getElementsByClassName=rnative.test(doc.getElementsByClassName);support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!doc.getElementsByName||!doc.getElementsByName(expando).length});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[]}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}}else{delete Expr.find["ID"];Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId}}}Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag)}else if(support.qsa){return context.querySelectorAll(tag)}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while(elem=results[i++]){if(elem.nodeType===1){tmp.push(elem)}}return tmp}return results};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(documentIsHTML){return context.getElementsByClassName(className)}};rbuggyMatches=[];rbuggyQSA=[];if(support.qsa=rnative.test(doc.querySelectorAll)){assert(function(div){docElem.appendChild(div).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\f]' msallowcapture=''>"+"<option selected=''></option></select>";if(div.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")")}if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")")}if(!div.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=")}if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked")}if(!div.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]")}});assert(function(div){var input=doc.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=")}if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled")}div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:")})}if(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos)})}rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16))}:function(a,b){if(b){while(b=b.parentNode){if(b===a){return true}}}return false};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare}compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||!support.sortDetached&&b.compareDocumentPosition(a)===compare){if(a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1}if(b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1}return sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}return compare&4?-1:1}:function(a,b){if(a===b){hasDuplicate=true;return 0}var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}else if(aup===bup){return siblingCheck(a,b)}cur=a;while(cur=cur.parentNode){ap.unshift(cur)}cur=b;while(cur=cur.parentNode){bp.unshift(cur)}while(ap[i]===bp[i]){i++}return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0};return doc};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem)}expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret}}catch(e){}}return Sizzle(expr,document,null,[elem]).length>0};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context)}return contains(context,elem)};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem)}var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while(elem=results[i++]){if(elem===results[i]){j=duplicates.push(i)}}while(j--){results.splice(duplicates[j],1)}}sortInput=null;return results};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while(node=elem[i++]){ret+=getText(node)}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem)}}}else if(nodeType===3||nodeType===4){return elem.nodeValue}return ret};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" "}return match.slice(0,4)},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0])}match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+(match[7]+match[8]||match[3]==="odd")}else if(match[3]){Sizzle.error(match[0])}return match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr["CHILD"].test(match[0])){return null}if(match[3]){match[2]=match[4]||match[5]||""}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess)}return match.slice(0,3)}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!="}if(!operator){return true}result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false}},CHILD:function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){while(dir){node=elem;while(node=node[dir]){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false}}start=dir=type==="only"&&!start&&"nextSibling"}return true}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=cache[0]===dirruns&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break}}}else if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns){diff=cache[1]}else{while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){(node[expando]||(node[expando]={}))[type]=[dirruns,diff]}if(node===elem){break}}}}diff-=last;return diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument)}if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i])}}):function(elem){return fn(elem,0,args)}}return fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if(elem=unmatched[i]){seed[i]=!(matches[i]=elem)}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang)}lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang")){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0}}while((elem=elem.parentNode)&&elem.nodeType===1);return false}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:function(elem){return elem.disabled===false},disabled:function(elem){return elem.disabled===true},checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return nodeName==="input"&&!!elem.checked||nodeName==="option"&&!!elem.selected},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false}}return true},parent:function(elem){return!Expr.pseudos["empty"](elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button"},text:function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text")},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i)}return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i)}return matchIndexes})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i)}for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i)}function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters;tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0)}soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar}groups.push(tokens=[])}matched=false;if(match=rcombinators.exec(soFar)){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length)}for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length)}}if(!matched){break}}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value}return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml)}}}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true}}}}else{while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if((oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return newCache[2]=oldCache[2]}else{outerCache[dir]=newCache;if(newCache[2]=matcher(elem,context,xml)){return true}}}}}}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false}}return true}:matchers[0]}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results)}return results}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if(elem=unmatched[i]){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i)}}}}return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter)}if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector)}return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml)}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if(elem=temp[i]){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem)}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if(elem=matcherOut[i]){temp.push(matcherIn[i]=elem)}}postFinder(null,matcherOut=[],temp,xml)}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem)}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml)}else{push.apply(results,matcherOut)}}})}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,true),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret}];for(;i<len;i++){if(matcher=Expr.relative[tokens[i].type]){matchers=[addCombinator(elementMatcher(matchers),matcher)]}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break}}return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens))}matchers.push(matcher)}}return elementMatcher(matchers)}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=dirruns+=contextBackup==null?1:Math.random()||.1,len=elems.length;if(outermost){outermostContext=context!==document&&context}for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;while(matcher=elementMatchers[j++]){if(matcher(elem,context,xml)){results.push(elem);break}}if(outermost){dirruns=dirrunsUnique}}if(bySet){if(elem=!matcher&&elem){matchedCount--}if(seed){unmatched.push(elem)}}}matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while(matcher=setMatchers[j++]){matcher(unmatched,setMatched,context,xml)}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results)}}}setMatched=condense(setMatched)}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1){Sizzle.uniqueSort(results)}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup}return unmatched};return bySet?markFunction(superMatcher):superMatcher}compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector)}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached)}else{elementMatchers.push(cached)}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector}return cached};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results}else if(compiled){context=context.parentNode}selector=selector.slice(tokens.shift().value.length)}i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[type=token.type]){break}if(find=Expr.find[type]){if(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context)){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results}break}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context);return results};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#"})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2)}})}if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")===""})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue}})}if(!assert(function(div){return div.getAttribute("disabled")==null})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}})}return Sizzle}(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>|)$/;var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not})}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return elem===qualifier!==not})}if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not)}qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return jQuery.inArray(elem,qualifier)>=0!==not})}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")"}return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1}))};jQuery.fn.extend({find:function(selector){var i,ret=[],self=this,len=self.length;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true}}}))}for(i=0;i<len;i++){jQuery.find(selector,self[i],ret)}ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+" "+selector:selector;return ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],false))},not:function(selector){return this.pushStack(winnow(this,selector||[],true))},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length}});var rootjQuery,document=window.document,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context){var match,elem;if(!selector){return this}if(typeof selector==="string"){if(selector.charAt(0)==="<"&&selector.charAt(selector.length-1)===">"&&selector.length>=3){match=[null,selector,null]}else{match=rquickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match])}else{this.attr(match,context[match])}}}return this}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){if(elem.id!==match[2]){return rootjQuery.find(selector)}this.length=1;this[0]=elem}this.context=document;this.selector=selector;return this}}else if(!context||context.jquery){return(context||rootjQuery).find(selector)}else{return this.constructor(context).find(selector)}}else if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this}else if(jQuery.isFunction(selector)){return typeof rootjQuery.ready!=="undefined"?rootjQuery.ready(selector):selector(jQuery)}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context}return jQuery.makeArray(selector,this)};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.extend({dir:function(elem,dir,until){var matched=[],cur=elem[dir];while(cur&&cur.nodeType!==9&&(until===undefined||cur.nodeType!==1||!jQuery(cur).is(until))){if(cur.nodeType===1){matched.push(cur)}cur=cur[dir]}return matched},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){r.push(n); | ||
19 | }}return r}});jQuery.fn.extend({has:function(target){var i,targets=jQuery(target,this),len=targets.length;return this.filter(function(){for(i=0;i<len;i++){if(jQuery.contains(this,targets[i])){return true}}})},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}}}return this.pushStack(matched.length>1?jQuery.unique(matched):matched)},index:function(elem){if(!elem){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof elem==="string"){return jQuery.inArray(this[0],jQuery(elem))}return jQuery.inArray(elem.jquery?elem[0]:elem,this)},add:function(selector,context){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector))}});function sibling(cur,dir){do{cur=cur[dir]}while(cur&&cur.nodeType!==1);return cur}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null},parents:function(elem){return jQuery.dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until)},siblings:function(elem){return jQuery.sibling((elem.parentNode||{}).firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.merge([],elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until}if(selector&&typeof selector==="string"){ret=jQuery.filter(selector,ret)}if(this.length>1){if(!guaranteedUnique[name]){ret=jQuery.unique(ret)}if(rparentsprev.test(name)){ret=ret.reverse()}}return this.pushStack(ret)}});var rnotwhite=/\S+/g;var optionsCache={};function createOptions(options){var object=optionsCache[options]={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true});return object}jQuery.Callbacks=function(options){options=typeof options==="string"?optionsCache[options]||createOptions(options):jQuery.extend({},options);var firing,memory,fired,firingLength,firingIndex,firingStart,list=[],stack=!options.once&&[],fire=function(data){memory=options.memory&&data;fired=true;firingIndex=firingStart||0;firingStart=0;firingLength=list.length;firing=true;for(;list&&firingIndex<firingLength;firingIndex++){if(list[firingIndex].apply(data[0],data[1])===false&&options.stopOnFalse){memory=false;break}}firing=false;if(list){if(stack){if(stack.length){fire(stack.shift())}}else if(memory){list=[]}else{self.disable()}}},self={add:function(){if(list){var start=list.length;(function add(args){jQuery.each(args,function(_,arg){var type=jQuery.type(arg);if(type==="function"){if(!options.unique||!self.has(arg)){list.push(arg)}}else if(arg&&arg.length&&type!=="string"){add(arg)}})})(arguments);if(firing){firingLength=list.length}else if(memory){firingStart=start;fire(memory)}}return this},remove:function(){if(list){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(firing){if(index<=firingLength){firingLength--}if(index<=firingIndex){firingIndex--}}}})}return this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:!!(list&&list.length)},empty:function(){list=[];firingLength=0;return this},disable:function(){list=stack=memory=undefined;return this},disabled:function(){return!list},lock:function(){stack=undefined;if(!memory){self.disable()}return this},locked:function(){return!stack},fireWith:function(context,args){if(list&&(!fired||stack)){args=args||[];args=[context,args.slice?args.slice():args];if(firing){stack.push(args)}else{fire(args)}}return this},fire:function(){self.fireWith(this,arguments);return this},fired:function(){return!!fired}};return self};jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state},always:function(){deferred.done(arguments).fail(arguments);return this},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify)}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments)}})});fns=null}).promise()},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString},tuples[i^1][2].disable,tuples[2][2].lock)}deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this};deferred[tuple[0]+"With"]=list.fireWith});promise.promise(deferred);if(func){func.call(deferred,deferred)}return deferred},when:function(subordinate){var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||subordinate&&jQuery.isFunction(subordinate.promise)?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values)}else if(!--remaining){deferred.resolveWith(contexts,values)}}},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject).progress(updateFunc(i,progressContexts,progressValues))}else{--remaining}}}if(!remaining){deferred.resolveWith(resolveContexts,resolveValues)}return deferred.promise()}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return}if(!document.body){return setTimeout(jQuery.ready)}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return}readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler("ready");jQuery(document).off("ready")}}});function detach(){if(document.addEventListener){document.removeEventListener("DOMContentLoaded",completed,false);window.removeEventListener("load",completed,false)}else{document.detachEvent("onreadystatechange",completed);window.detachEvent("onload",completed)}}function completed(){if(document.addEventListener||event.type==="load"||document.readyState==="complete"){detach();jQuery.ready()}}jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"){setTimeout(jQuery.ready)}else if(document.addEventListener){document.addEventListener("DOMContentLoaded",completed,false);window.addEventListener("load",completed,false)}else{document.attachEvent("onreadystatechange",completed);window.attachEvent("onload",completed);var top=false;try{top=window.frameElement==null&&document.documentElement}catch(e){}if(top&&top.doScroll){(function doScrollCheck(){if(!jQuery.isReady){try{top.doScroll("left")}catch(e){return setTimeout(doScrollCheck,50)}detach();jQuery.ready()}})()}}}return readyList.promise(obj)};var strundefined=typeof undefined;var i;for(i in jQuery(support)){break}support.ownLast=i!=="0";support.inlineBlockNeedsLayout=false;jQuery(function(){var val,div,body,container;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);if(typeof div.style.zoom!==strundefined){div.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";support.inlineBlockNeedsLayout=val=div.offsetWidth===3;if(val){body.style.zoom=1}}body.removeChild(container)});(function(){var div=document.createElement("div");if(support.deleteExpando==null){support.deleteExpando=true;try{delete div.test}catch(e){support.deleteExpando=false}}div=null})();jQuery.acceptData=function(elem){var noData=jQuery.noData[(elem.nodeName+" ").toLowerCase()],nodeType=+elem.nodeType||1;return nodeType!==1&&nodeType!==9?false:!noData||noData!==true&&elem.getAttribute("classid")===noData};var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/([A-Z])/g;function dataAttr(elem,key,data){if(data===undefined&&elem.nodeType===1){var name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}jQuery.data(elem,key,data)}else{data=undefined}}return data}function isEmptyDataObject(obj){var name;for(name in obj){if(name==="data"&&jQuery.isEmptyObject(obj[name])){continue}if(name!=="toJSON"){return false}}return true}function internalData(elem,name,data,pvt){if(!jQuery.acceptData(elem)){return}var ret,thisCache,internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[internalKey]:elem[internalKey]&&internalKey;if((!id||!cache[id]||!pvt&&!cache[id].data)&&data===undefined&&typeof name==="string"){return}if(!id){if(isNode){id=elem[internalKey]=deletedIds.pop()||jQuery.guid++}else{id=internalKey}}if(!cache[id]){cache[id]=isNode?{}:{toJSON:jQuery.noop}}if(typeof name==="object"||typeof name==="function"){if(pvt){cache[id]=jQuery.extend(cache[id],name)}else{cache[id].data=jQuery.extend(cache[id].data,name)}}thisCache=cache[id];if(!pvt){if(!thisCache.data){thisCache.data={}}thisCache=thisCache.data}if(data!==undefined){thisCache[jQuery.camelCase(name)]=data}if(typeof name==="string"){ret=thisCache[name];if(ret==null){ret=thisCache[jQuery.camelCase(name)]}}else{ret=thisCache}return ret}function internalRemoveData(elem,name,pvt){if(!jQuery.acceptData(elem)){return}var thisCache,i,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(!cache[id]){return}if(name){thisCache=pvt?cache[id]:cache[id].data;if(thisCache){if(!jQuery.isArray(name)){if(name in thisCache){name=[name]}else{name=jQuery.camelCase(name);if(name in thisCache){name=[name]}else{name=name.split(" ")}}}else{name=name.concat(jQuery.map(name,jQuery.camelCase))}i=name.length;while(i--){delete thisCache[name[i]]}if(pvt?!isEmptyDataObject(thisCache):!jQuery.isEmptyObject(thisCache)){return}}}if(!pvt){delete cache[id].data;if(!isEmptyDataObject(cache[id])){return}}if(isNode){jQuery.cleanData([elem],true)}else if(support.deleteExpando||cache!=cache.window){delete cache[id]}else{cache[id]=null}}jQuery.extend({cache:{},noData:{"applet ":true,"embed ":true,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(elem){elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando];return!!elem&&!isEmptyDataObject(elem)},data:function(elem,name,data){return internalData(elem,name,data)},removeData:function(elem,name){return internalRemoveData(elem,name)},_data:function(elem,name,data){return internalData(elem,name,data,true)},_removeData:function(elem,name){return internalRemoveData(elem,name,true)}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=jQuery.data(elem);if(elem.nodeType===1&&!jQuery._data(elem,"parsedAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name])}}}jQuery._data(elem,"parsedAttrs",true)}}return data}if(typeof key==="object"){return this.each(function(){jQuery.data(this,key)})}return arguments.length>1?this.each(function(){jQuery.data(this,key,value)}):elem?dataAttr(elem,key,jQuery.data(elem,key)):undefined},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=jQuery._data(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=jQuery._data(elem,type,jQuery.makeArray(data))}else{queue.push(data)}}return queue||[]}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};if(fn==="inprogress"){fn=queue.shift();startLength--}if(fn){if(type==="fx"){queue.unshift("inprogress")}delete hooks.stop;fn.call(elem,next,hooks)}if(!startLength&&hooks){hooks.empty.fire()}},_queueHooks:function(elem,type){var key=type+"queueHooks";return jQuery._data(elem,key)||jQuery._data(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){jQuery._removeData(elem,type+"queue");jQuery._removeData(elem,key)})})}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--}if(arguments.length<setter){return jQuery.queue(this[0],type)}return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!--count){defer.resolveWith(elements,[elements])}};if(typeof type!=="string"){obj=type;type=undefined}type=type||"fx";while(i--){tmp=jQuery._data(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve)}}resolve();return defer.promise(obj)}});var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source;var cssExpand=["Top","Right","Bottom","Left"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem)};var access=jQuery.access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,length=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){jQuery.access(elems,fn,i,key[i],true,emptyGet,raw)}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true}if(bulk){if(raw){fn.call(elems,value);fn=null}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value)}}}if(fn){for(;i<length;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)))}}}return chainable?elems:bulk?fn.call(elems):length?fn(elems[0],key):emptyGet};var rcheckableType=/^(?:checkbox|radio)$/i;(function(){var input=document.createElement("input"),div=document.createElement("div"),fragment=document.createDocumentFragment();div.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";support.leadingWhitespace=div.firstChild.nodeType===3;support.tbody=!div.getElementsByTagName("tbody").length;support.htmlSerialize=!!div.getElementsByTagName("link").length;support.html5Clone=document.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>";input.type="checkbox";input.checked=true;fragment.appendChild(input);support.appendChecked=input.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;fragment.appendChild(div);div.innerHTML="<input type='radio' checked='checked' name='t'/>";support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;support.noCloneEvent=true;if(div.attachEvent){div.attachEvent("onclick",function(){support.noCloneEvent=false});div.cloneNode(true).click()}if(support.deleteExpando==null){support.deleteExpando=true;try{delete div.test}catch(e){support.deleteExpando=false}}})();(function(){var i,eventName,div=document.createElement("div");for(i in{submit:true,change:true,focusin:true}){eventName="on"+i;if(!(support[i+"Bubbles"]=eventName in window)){div.setAttribute(eventName,"t");support[i+"Bubbles"]=div.attributes[eventName].expando===false}}div=null})();var rformElems=/^(?:input|select|textarea)$/i,rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\.(.+)|)$/;function returnTrue(){return true}function returnFalse(){return false}function safeActiveElement(){try{return document.activeElement}catch(err){}}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var tmp,events,t,handleObjIn,special,eventHandle,handleObj,handlers,type,namespaces,origType,elemData=jQuery._data(elem);if(!elemData){return}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector}if(!handler.guid){handler.guid=jQuery.guid++}if(!(events=elemData.events)){events=elemData.events={}}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!==strundefined&&(!e||jQuery.event.triggered!==e.type)?jQuery.event.dispatch.apply(eventHandle.elem,arguments):undefined};eventHandle.elem=elem}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false)}else if(elem.attachEvent){elem.attachEvent("on"+type,eventHandle)}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid}}if(selector){handlers.splice(handlers.delegateCount++,0,handleObj)}else{handlers.push(handleObj)}jQuery.event.global[type]=true}elem=null},remove:function(elem,types,handler,selector,mappedTypes){var j,handleObj,tmp,origCount,t,events,special,handlers,type,namespaces,origType,elemData=jQuery.hasData(elem)&&jQuery._data(elem);if(!elemData||!(events=elemData.events)){return}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true)}continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--}if(special.remove){special.remove.call(elem,handleObj)}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle)}delete events[type]}}if(jQuery.isEmptyObject(events)){delete elemData.handle;jQuery._removeData(elem,"events")}},trigger:function(event,data,elem,onlyHandlers){var handle,ontype,cur,bubbleType,special,tmp,i,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return}if(rfocusMorph.test(type+jQuery.event.triggered)){return}if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort()}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.namespace_re=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return}if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode}for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window)}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(jQuery._data(cur,"events")||{})[event.type]&&jQuery._data(cur,"handle");if(handle){handle.apply(cur,data)}handle=ontype&&cur[ontype];if(handle&&handle.apply&&jQuery.acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault()}}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&jQuery.acceptData(elem)){if(ontype&&elem[type]&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null}jQuery.event.triggered=type;try{elem[type]()}catch(e){}jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp}}}}return event.result},dispatch:function(event){event=jQuery.event.fix(event);var i,ret,handleObj,matched,j,handlerQueue=[],args=slice.call(arguments),handlers=(jQuery._data(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.namespace_re||event.namespace_re.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation()}}}}}if(special.postDispatch){special.postDispatch.call(this,event)}return event.result},handlers:function(event,handlers){var sel,handleObj,matches,i,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(!event.button||event.type!=="click")){for(;cur!=this;cur=cur.parentNode||this){if(cur.nodeType===1&&(cur.disabled!==true||event.type!=="click")){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>=0:jQuery.find(sel,this,null,[cur]).length}if(matches[sel]){matches.push(handleObj)}}if(matches.length){handlerQueue.push({elem:cur,handlers:matches})}}}}if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)})}return handlerQueue},fix:function(event){if(event[jQuery.expando]){return event}var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{}}copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop]}if(!event.target){event.target=originalEvent.srcElement||document}if(event.target.nodeType===3){event.target=event.target.parentNode}event.metaKey=!!event.metaKey;return fixHook.filter?fixHook.filter(event,originalEvent):event},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode}return event}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(event,original){var body,eventDoc,doc,button=original.button,fromElement=original.fromElement;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(!event.relatedTarget&&fromElement){event.relatedTarget=fromElement===event.target?original.toElement:fromElement}if(!event.which&&button!==undefined){event.which=button&1?1:button&2?3:button&4?2:0}return event}},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){try{this.focus();return false}catch(e){}}},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false}},delegateType:"focusout"},click:{trigger:function(){if(jQuery.nodeName(this,"input")&&this.type==="checkbox"&&this.click){this.click();return false}},_default:function(event){return jQuery.nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result}}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:true,originalEvent:{}});if(bubble){jQuery.event.trigger(e,null,elem)}else{jQuery.event.dispatch.call(elem,e)}if(e.isDefaultPrevented()){event.preventDefault()}}};jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false)}}:function(elem,type,handle){var name="on"+type;if(elem.detachEvent){if(typeof elem[name]===strundefined){elem[name]=null}elem.detachEvent(name,handle)}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true};jQuery.Event.prototype={isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(!e){return}if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(!e){return}if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&e.stopImmediatePropagation){e.stopImmediatePropagation()}this.stopPropagation()}};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||related!==target&&!jQuery.contains(target,related)){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix}return ret}}});if(!support.submitBubbles){jQuery.event.special.submit={setup:function(){if(jQuery.nodeName(this,"form")){return false}jQuery.event.add(this,"click._submit keypress._submit",function(e){var elem=e.target,form=jQuery.nodeName(elem,"input")||jQuery.nodeName(elem,"button")?elem.form:undefined;if(form&&!jQuery._data(form,"submitBubbles")){jQuery.event.add(form,"submit._submit",function(event){event._submit_bubble=true});jQuery._data(form,"submitBubbles",true)}})},postDispatch:function(event){if(event._submit_bubble){delete event._submit_bubble;if(this.parentNode&&!event.isTrigger){jQuery.event.simulate("submit",this.parentNode,event,true)}}},teardown:function(){if(jQuery.nodeName(this,"form")){return false}jQuery.event.remove(this,"._submit")}}}if(!support.changeBubbles){jQuery.event.special.change={setup:function(){if(rformElems.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){jQuery.event.add(this,"propertychange._change",function(event){if(event.originalEvent.propertyName==="checked"){this._just_changed=true}});jQuery.event.add(this,"click._change",function(event){if(this._just_changed&&!event.isTrigger){this._just_changed=false}jQuery.event.simulate("change",this,event,true)})}return false}jQuery.event.add(this,"beforeactivate._change",function(e){var elem=e.target;if(rformElems.test(elem.nodeName)&&!jQuery._data(elem,"changeBubbles")){jQuery.event.add(elem,"change._change",function(event){if(this.parentNode&&!event.isSimulated&&!event.isTrigger){jQuery.event.simulate("change",this.parentNode,event,true)}});jQuery._data(elem,"changeBubbles",true)}})},handle:function(event){var elem=event.target;if(this!==elem||event.isSimulated||event.isTrigger||elem.type!=="radio"&&elem.type!=="checkbox"){return event.handleObj.handler.apply(this,arguments)}},teardown:function(){jQuery.event.remove(this,"._change");return!rformElems.test(this.nodeName)}}}if(!support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),true)};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=jQuery._data(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true)}jQuery._data(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=jQuery._data(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);jQuery._removeData(doc,fix)}else{jQuery._data(doc,fix,attaches)}}}})}jQuery.fn.extend({on:function(types,selector,data,fn,one){var type,origFn;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined}for(type in types){this.on(type,selector,data,types[type],one); | ||
20 | }return this}if(data==null&&fn==null){fn=selector;data=selector=undefined}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined}else{fn=data;data=selector;selector=undefined}}if(fn===false){fn=returnFalse}else if(!fn){return this}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments)};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)}return this.each(function(){jQuery.event.add(this,types,fn,data,selector)})},one:function(types,selector,data,fn){return this.on(types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this}if(typeof types==="object"){for(type in types){this.off(type,selector,types[type])}return this}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined}if(fn===false){fn=returnFalse}return this.each(function(){jQuery.event.remove(this,types,fn,selector)})},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true)}}});function createSafeFragment(document){var list=nodeNames.split("|"),safeFrag=document.createDocumentFragment();if(safeFrag.createElement){while(list.length){safeFrag.createElement(list.pop())}}return safeFrag}var nodeNames="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|"+"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",rinlinejQuery=/ jQuery\d+="(?:null|\d+)"/g,rnoshimcache=new RegExp("<(?:"+nodeNames+")[\\s/>]","i"),rleadingWhitespace=/^\s+/,rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rtagName=/<([\w:]+)/,rtbody=/<tbody/i,rhtml=/<|&#?\w+;/,rnoInnerhtml=/<(?:script|style|link)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/^$|\/(?:java|ecma)script/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},safeFragment=createSafeFragment(document),fragmentDiv=safeFragment.appendChild(document.createElement("div"));wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function getAll(context,tag){var elems,elem,i=0,found=typeof context.getElementsByTagName!==strundefined?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!==strundefined?context.querySelectorAll(tag||"*"):undefined;if(!found){for(found=[],elems=context.childNodes||context;(elem=elems[i])!=null;i++){if(!tag||jQuery.nodeName(elem,tag)){found.push(elem)}else{jQuery.merge(found,getAll(elem,tag))}}}return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],found):found}function fixDefaultChecked(elem){if(rcheckableType.test(elem.type)){elem.defaultChecked=elem.checked}}function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){elem.type=(jQuery.find.attr(elem,"type")!==null)+"/"+elem.type;return elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1]}else{elem.removeAttribute("type")}return elem}function setGlobalEval(elems,refElements){var elem,i=0;for(;(elem=elems[i])!=null;i++){jQuery._data(elem,"globalEval",!refElements||jQuery._data(refElements[i],"globalEval"))}}function cloneCopyEvent(src,dest){if(dest.nodeType!==1||!jQuery.hasData(src)){return}var type,i,l,oldData=jQuery._data(src),curData=jQuery._data(dest,oldData),events=oldData.events;if(events){delete curData.handle;curData.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i])}}}if(curData.data){curData.data=jQuery.extend({},curData.data)}}function fixCloneNodeIssues(src,dest){var nodeName,e,data;if(dest.nodeType!==1){return}nodeName=dest.nodeName.toLowerCase();if(!support.noCloneEvent&&dest[jQuery.expando]){data=jQuery._data(dest);for(e in data.events){jQuery.removeEvent(dest,e,data.handle)}dest.removeAttribute(jQuery.expando)}if(nodeName==="script"&&dest.text!==src.text){disableScript(dest).text=src.text;restoreScript(dest)}else if(nodeName==="object"){if(dest.parentNode){dest.outerHTML=src.outerHTML}if(support.html5Clone&&(src.innerHTML&&!jQuery.trim(dest.innerHTML))){dest.innerHTML=src.innerHTML}}else if(nodeName==="input"&&rcheckableType.test(src.type)){dest.defaultChecked=dest.checked=src.checked;if(dest.value!==src.value){dest.value=src.value}}else if(nodeName==="option"){dest.defaultSelected=dest.selected=src.defaultSelected}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue}}jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var destElements,node,clone,i,srcElements,inPage=jQuery.contains(elem.ownerDocument,elem);if(support.html5Clone||jQuery.isXMLDoc(elem)||!rnoshimcache.test("<"+elem.nodeName+">")){clone=elem.cloneNode(true)}else{fragmentDiv.innerHTML=elem.outerHTML;fragmentDiv.removeChild(clone=fragmentDiv.firstChild)}if((!support.noCloneEvent||!support.noCloneChecked)&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0;(node=srcElements[i])!=null;++i){if(destElements[i]){fixCloneNodeIssues(node,destElements[i])}}}if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0;(node=srcElements[i])!=null;i++){cloneCopyEvent(node,destElements[i])}}else{cloneCopyEvent(elem,clone)}}destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"))}destElements=srcElements=node=null;return clone},buildFragment:function(elems,context,scripts,selection){var j,elem,contains,tmp,tag,tbody,wrap,l=elems.length,safe=createSafeFragment(context),nodes=[],i=0;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem)}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem))}else{tmp=tmp||safe.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+elem.replace(rxhtmlTag,"<$1></$2>")+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild}if(!support.leadingWhitespace&&rleadingWhitespace.test(elem)){nodes.push(context.createTextNode(rleadingWhitespace.exec(elem)[0]))}if(!support.tbody){elem=tag==="table"&&!rtbody.test(elem)?tmp.firstChild:wrap[1]==="<table>"&&!rtbody.test(elem)?tmp:0;j=elem&&elem.childNodes.length;while(j--){if(jQuery.nodeName(tbody=elem.childNodes[j],"tbody")&&!tbody.childNodes.length){elem.removeChild(tbody)}}}jQuery.merge(nodes,tmp.childNodes);tmp.textContent="";while(tmp.firstChild){tmp.removeChild(tmp.firstChild)}tmp=safe.lastChild}}}if(tmp){safe.removeChild(tmp)}if(!support.appendChecked){jQuery.grep(getAll(nodes,"input"),fixDefaultChecked)}i=0;while(elem=nodes[i++]){if(selection&&jQuery.inArray(elem,selection)!==-1){continue}contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(safe.appendChild(elem),"script");if(contains){setGlobalEval(tmp)}if(scripts){j=0;while(elem=tmp[j++]){if(rscriptType.test(elem.type||"")){scripts.push(elem)}}}}tmp=null;return safe},cleanData:function(elems,acceptData){var elem,type,id,data,i=0,internalKey=jQuery.expando,cache=jQuery.cache,deleteExpando=support.deleteExpando,special=jQuery.event.special;for(;(elem=elems[i])!=null;i++){if(acceptData||jQuery.acceptData(elem)){id=elem[internalKey];data=id&&cache[id];if(data){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type)}else{jQuery.removeEvent(elem,type,data.handle)}}}if(cache[id]){delete cache[id];if(deleteExpando){delete elem[internalKey]}else if(typeof elem.removeAttribute!==strundefined){elem.removeAttribute(internalKey)}else{elem[internalKey]=null}deletedIds.push(id)}}}}}});jQuery.fn.extend({text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(value))},null,value,arguments.length)},append:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this)}})},after:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling)}})},remove:function(selector,keepData){var elem,elems=selector?jQuery.filter(selector,this):this,i=0;for(;(elem=elems[i])!=null;i++){if(!keepData&&elem.nodeType===1){jQuery.cleanData(getAll(elem))}if(elem.parentNode){if(keepData&&jQuery.contains(elem.ownerDocument,elem)){setGlobalEval(getAll(elem,"script"))}elem.parentNode.removeChild(elem)}}return this},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false))}while(elem.firstChild){elem.removeChild(elem.firstChild)}if(elem.options&&jQuery.nodeName(elem,"select")){elem.options.length=0}}return this},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined){return elem.nodeType===1?elem.innerHTML.replace(rinlinejQuery,""):undefined}if(typeof value==="string"&&!rnoInnerhtml.test(value)&&(support.htmlSerialize||!rnoshimcache.test(value))&&(support.leadingWhitespace||!rleadingWhitespace.test(value))&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value}}elem=0}catch(e){}}if(elem){this.empty().append(value)}},null,value,arguments.length)},replaceWith:function(){var arg=arguments[0];this.domManip(arguments,function(elem){arg=this.parentNode;jQuery.cleanData(getAll(this));if(arg){arg.replaceChild(elem,this)}});return arg&&(arg.length||arg.nodeType)?this:this.remove()},detach:function(selector){return this.remove(selector,true)},domManip:function(args,callback){args=concat.apply([],args);var first,node,hasScripts,scripts,doc,fragment,i=0,l=this.length,set=this,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value)){return this.each(function(index){var self=set.eq(index);if(isFunction){args[0]=value.call(this,index,self.html())}self.domManip(args,callback)})}if(l){fragment=jQuery.buildFragment(args,this[0].ownerDocument,false,this);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first}if(first){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"))}}callback.call(this[i],node,i)}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!jQuery._data(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src)}}else{jQuery.globalEval((node.text||node.textContent||node.innerHTML||"").replace(rcleanScript,""))}}}}fragment=first=null}}return this}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,i=0,ret=[],insert=jQuery(selector),last=insert.length-1;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get())}return this.pushStack(ret)}});var iframe,elemdisplay={};function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");elem.detach();return display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display==="none"||!display){iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement);doc=(iframe[0].contentWindow||iframe[0].contentDocument).document;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach()}elemdisplay[nodeName]=display}return display}(function(){var shrinkWrapBlocksVal;support.shrinkWrapBlocks=function(){if(shrinkWrapBlocksVal!=null){return shrinkWrapBlocksVal}shrinkWrapBlocksVal=false;var div,body,container;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);if(typeof div.style.zoom!==strundefined){div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;"+"padding:1px;width:1px;zoom:1";div.appendChild(document.createElement("div")).style.width="5px";shrinkWrapBlocksVal=div.offsetWidth!==3}body.removeChild(container);return shrinkWrapBlocksVal}})();var rmargin=/^margin/;var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var getStyles,curCSS,rposition=/^(top|right|bottom|left)$/;if(window.getComputedStyle){getStyles=function(elem){if(elem.ownerDocument.defaultView.opener){return elem.ownerDocument.defaultView.getComputedStyle(elem,null)}return window.getComputedStyle(elem,null)};curCSS=function(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);ret=computed?computed.getPropertyValue(name)||computed[name]:undefined;if(computed){if(ret===""&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name)}if(rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth}}return ret===undefined?ret:ret+""}}else if(document.documentElement.currentStyle){getStyles=function(elem){return elem.currentStyle};curCSS=function(elem,name,computed){var left,rs,rsLeft,ret,style=elem.style;computed=computed||getStyles(elem);ret=computed?computed[name]:undefined;if(ret==null&&style&&style[name]){ret=style[name]}if(rnumnonpx.test(ret)&&!rposition.test(name)){left=style.left;rs=elem.runtimeStyle;rsLeft=rs&&rs.left;if(rsLeft){rs.left=elem.currentStyle.left}style.left=name==="fontSize"?"1em":ret;ret=style.pixelLeft+"px";style.left=left;if(rsLeft){rs.left=rsLeft}}return ret===undefined?ret:ret+""||"auto"}}function addGetHookIf(conditionFn,hookFn){return{get:function(){var condition=conditionFn();if(condition==null){return}if(condition){delete this.get;return}return(this.get=hookFn).apply(this,arguments)}}}(function(){var div,style,a,pixelPositionVal,boxSizingReliableVal,reliableHiddenOffsetsVal,reliableMarginRightVal;div=document.createElement("div");div.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";a=div.getElementsByTagName("a")[0];style=a&&a.style;if(!style){return}style.cssText="float:left;opacity:.5";support.opacity=style.opacity==="0.5";support.cssFloat=!!style.cssFloat;div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";support.boxSizing=style.boxSizing===""||style.MozBoxSizing===""||style.WebkitBoxSizing==="";jQuery.extend(support,{reliableHiddenOffsets:function(){if(reliableHiddenOffsetsVal==null){computeStyleTests()}return reliableHiddenOffsetsVal},boxSizingReliable:function(){if(boxSizingReliableVal==null){computeStyleTests()}return boxSizingReliableVal},pixelPosition:function(){if(pixelPositionVal==null){computeStyleTests()}return pixelPositionVal},reliableMarginRight:function(){if(reliableMarginRightVal==null){computeStyleTests()}return reliableMarginRightVal}});function computeStyleTests(){var div,body,container,contents;body=document.getElementsByTagName("body")[0];if(!body||!body.style){return}div=document.createElement("div");container=document.createElement("div");container.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px";body.appendChild(container).appendChild(div);div.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;"+"box-sizing:border-box;display:block;margin-top:1%;top:1%;"+"border:1px;padding:1px;width:4px;position:absolute";pixelPositionVal=boxSizingReliableVal=false;reliableMarginRightVal=true;if(window.getComputedStyle){pixelPositionVal=(window.getComputedStyle(div,null)||{}).top!=="1%";boxSizingReliableVal=(window.getComputedStyle(div,null)||{width:"4px"}).width==="4px";contents=div.appendChild(document.createElement("div"));contents.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;padding:0";contents.style.marginRight=contents.style.width="0";div.style.width="1px";reliableMarginRightVal=!parseFloat((window.getComputedStyle(contents,null)||{}).marginRight);div.removeChild(contents)}div.innerHTML="<table><tr><td></td><td>t</td></tr></table>";contents=div.getElementsByTagName("td");contents[0].style.cssText="margin:0;border:0;padding:0;display:none";reliableHiddenOffsetsVal=contents[0].offsetHeight===0;if(reliableHiddenOffsetsVal){contents[0].style.display="";contents[1].style.display="none";reliableHiddenOffsetsVal=contents[0].offsetHeight===0}body.removeChild(container)}})();jQuery.swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name]}ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name]}return ret};var ralpha=/alpha\([^)]*\)/i,ropacity=/opacity\s*=\s*([^)]*)/,rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp("^("+pnum+")(.*)$","i"),rrelNum=new RegExp("^([+-])=("+pnum+")","i"),cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"];function vendorPropName(style,name){if(name in style){return name}var capName=name.charAt(0).toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in style){return name}}return origName}function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue}values[index]=jQuery._data(elem,"olddisplay");display=elem.style.display;if(show){if(!values[index]&&display==="none"){elem.style.display=""}if(elem.style.display===""&&isHidden(elem)){values[index]=jQuery._data(elem,"olddisplay",defaultDisplay(elem.nodeName))}}else{hidden=isHidden(elem);if(display&&display!=="none"||!hidden){jQuery._data(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"))}}}for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue}if(!show||elem.style.display==="none"||elem.style.display===""){elem.style.display=show?values[index]||"":"none"}}return elements}function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles)}if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles)}if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}}return val}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name==="width"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=support.boxSizing&&jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name]}if(rnumnonpx.test(val)){return val}valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles)+"px"}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret}}}},cssNumber:{columnCount:true,fillOpacity:true,flexGrow:true,flexShrink:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return}var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rrelNum.exec(value))){value=(ret[1]+1)*ret[2]+parseFloat(jQuery.css(elem,name));type="number"}if(value==null||value!==value){return}if(type==="number"&&!jQuery.cssNumber[origName]){value+="px"}if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit"}if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){try{style[name]=value}catch(e){}}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra,styles){var num,val,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(elem.style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra)}if(val===undefined){val=curCSS(elem,name,styles)}if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name]}if(extra===""||extra){num=parseFloat(val);return extra===true||jQuery.isNumeric(num)?num||0:val}return val}});jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&elem.offsetWidth===0?jQuery.swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra)}):getWidthOrHeight(elem,name,extra)}},set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,support.boxSizing&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",styles):0)}}});if(!support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":computed?"1":""},set:function(elem,value){var style=elem.style,currentStyle=elem.currentStyle,opacity=jQuery.isNumeric(value)?"alpha(opacity="+value*100+")":"",filter=currentStyle&¤tStyle.filter||style.filter||"";style.zoom=1;if((value>=1||value==="")&&jQuery.trim(filter.replace(ralpha,""))===""&&style.removeAttribute){style.removeAttribute("filter");if(value===""||currentStyle&&!currentStyle.filter){return}}style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):filter+" "+opacity}}}jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return jQuery.swap(elem,{display:"inline-block"},curCSS,[elem,"marginRight"])}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0]}return expanded}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles)}return map}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)},show:function(){return showHide(this,true)},hide:function(){return showHide(this)},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide()}return this.each(function(){if(isHidden(this)){jQuery(this).show()}else{jQuery(this).hide()}})}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||"swing";this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration)}else{this.pos=eased=percent}this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(hooks&&hooks.set){hooks.set(this)}else{Tween.propHooks._default.set(this)}return this}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem[tween.prop]!=null&&(!tween.elem.style||tween.elem.style[tween.prop]==null)){return tween.elem[tween.prop]}result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween)}else if(tween.elem.style&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}else{tween.elem[tween.prop]=tween.now}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now}}};jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2}};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),rrun=/queueHooks$/,animationPrefilters=[defaultPrefilter],tweeners={"*":[function(prop,value){var tween=this.createTween(prop,value),target=tween.cur(),parts=rfxnum.exec(value),unit=parts&&parts[3]||(jQuery.cssNumber[prop]?"":"px"),start=(jQuery.cssNumber[prop]||unit!=="px"&&+target)&&rfxnum.exec(jQuery.css(tween.elem,prop)),scale=1,maxIterations=20;if(start&&start[3]!==unit){unit=unit||start[3];parts=parts||[];start=+target||1;do{scale=scale||".5";start=start/scale;jQuery.style(tween.elem,prop,start+unit)}while(scale!==(scale=tween.cur()/target)&&scale!==1&&--maxIterations)}if(parts){start=tween.start=+start||+target||0;tween.unit=unit;tween.end=parts[1]?start+(parts[1]+1)*parts[2]:+parts[2]}return tween}]};function createFxNow(){setTimeout(function(){fxNow=undefined});return fxNow=jQuery.now()}function genFx(type,includeWidth){var which,attrs={height:type},i=0;includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type}if(includeWidth){attrs.opacity=attrs.width=type}return attrs}function createTween(value,prop,animation){var tween,collection=(tweeners[prop]||[]).concat(tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if(tween=collection[index].call(animation,prop,value)){return tween}}}function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=jQuery._data(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire()}}}hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire()}})})}if(elem.nodeType===1&&("height"in props||"width"in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,"display");checkDisplay=display==="none"?jQuery._data(elem,"olddisplay")||defaultDisplay(elem.nodeName):display;if(checkDisplay==="inline"&&jQuery.css(elem,"float")==="none"){if(!support.inlineBlockNeedsLayout||defaultDisplay(elem.nodeName)==="inline"){style.display="inline-block"}else{style.zoom=1}}}if(opts.overflow){style.overflow="hidden";if(!support.shrinkWrapBlocks()){anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2]})}}for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true}else{continue}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}else{display=undefined}}if(!jQuery.isEmptyObject(orig)){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden}}else{dataShow=jQuery._data(elem,"fxshow",{})}if(toggle){dataShow.hidden=!hidden}if(hidden){jQuery(elem).show()}else{anim.done(function(){jQuery(elem).hide()})}anim.done(function(){var prop;jQuery._removeData(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop])}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop==="width"||prop==="height"?1:0}}}}else if((display==="none"?defaultDisplay(elem.nodeName):display)==="inline"){style.display=display}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0]}if(index!==name){ | ||
21 | props[name]=value;delete props[index]}hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing}}}else{specialEasing[name]=easing}}}function Animation(elem,properties,options){var result,stopped,index=0,length=animationPrefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped){return false}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent)}deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining}else{deferred.resolveWith(elem,[animation]);return false}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{}},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this}stopped=true;for(;index<length;index++){animation.tweens[index].run(1)}if(gotoEnd){deferred.resolveWith(elem,[animation,gotoEnd])}else{deferred.rejectWith(elem,[animation,gotoEnd])}return this}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=animationPrefilters[index].call(animation,elem,props,animation.opts);if(result){return result}}jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation)}jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always)}jQuery.Animation=jQuery.extend(Animation,{tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=["*"]}else{props=props.split(" ")}var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];tweeners[prop]=tweeners[prop]||[];tweeners[prop].unshift(callback)}},prefilter:function(callback,prepend){if(prepend){animationPrefilters.unshift(callback)}else{animationPrefilters.push(callback)}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx"}opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this)}if(opt.queue){jQuery.dequeue(this,opt.queue)}};return opt};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||jQuery._data(this,"finish")){anim.stop(true)}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd)};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined}if(clearQueue&&type!==false){this.queue(type||"fx",[])}return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=jQuery._data(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index])}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index])}}}for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1)}}if(dequeue||!gotoEnd){jQuery.dequeue(this,type)}})},finish:function(type){if(type!==false){type=type||"fx"}return this.each(function(){var index,data=jQuery._data(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true)}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1)}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this)}}delete data.finish})}});jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback)}});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}});jQuery.timers=[];jQuery.fx.tick=function(){var timer,timers=jQuery.timers,i=0;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1)}}if(!timers.length){jQuery.fx.stop()}fxNow=undefined};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start()}else{jQuery.timers.pop()}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=setInterval(jQuery.fx.tick,jQuery.fx.interval)}};jQuery.fx.stop=function(){clearInterval(timerId);timerId=null};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout)}})};(function(){var input,div,select,a,opt;div=document.createElement("div");div.setAttribute("className","t");div.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";a=div.getElementsByTagName("a")[0];select=document.createElement("select");opt=select.appendChild(document.createElement("option"));input=div.getElementsByTagName("input")[0];a.style.cssText="top:1px";support.getSetAttribute=div.className!=="t";support.style=/top/.test(a.getAttribute("style"));support.hrefNormalized=a.getAttribute("href")==="/a";support.checkOn=!!input.value;support.optSelected=opt.selected;support.enctype=!!document.createElement("form").enctype;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement("input");input.setAttribute("value","");support.input=input.getAttribute("value")==="";input.value="t";input.setAttribute("type","radio");support.radioValue=input.value==="t"})();var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret}ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret}return}isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return}if(isFunction){val=value.call(this,i,jQuery(this).val())}else{val=value}if(val==null){val=""}else if(typeof val==="number"){val+=""}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+""})}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:jQuery.trim(jQuery.text(elem))}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value}values.push(value)}}return values},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(jQuery.inArray(jQuery.valHooks.option.get(option),values)>=0){try{option.selected=optionSet=true}catch(_){option.scrollHeight}}else{option.selected=false}}if(!optionSet){elem.selectedIndex=-1}return options}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value}}});var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle,ruseDefault=/^(?:checked|selected)$/i,getSetAttribute=support.getSetAttribute,getSetInput=support.input;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}});jQuery.extend({attr:function(elem,name,value){var hooks,ret,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return}if(typeof elem.getAttribute===strundefined){return jQuery.prop(elem,name,value)}if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook)}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name)}else if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}else{elem.setAttribute(name,value+"");return value}}else if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret}else{ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while(name=attrNames[i++]){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){if(getSetInput&&getSetAttribute||!ruseDefault.test(name)){elem[propName]=false}else{elem[jQuery.camelCase("default-"+name)]=elem[propName]=false}}else{jQuery.attr(elem,name,"")}elem.removeAttribute(getSetAttribute?name:propName)}}},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val}return value}}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name)}else if(getSetInput&&getSetAttribute||!ruseDefault.test(name)){elem.setAttribute(!getSetAttribute&&jQuery.propFix[name]||name,name)}else{elem[jQuery.camelCase("default-"+name)]=elem[name]=true}return name}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=getSetInput&&getSetAttribute||!ruseDefault.test(name)?function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle}return ret}:function(elem,name,isXML){if(!isXML){return elem[jQuery.camelCase("default-"+name)]?name.toLowerCase():null}}});if(!getSetInput||!getSetAttribute){jQuery.attrHooks.value={set:function(elem,value,name){if(jQuery.nodeName(elem,"input")){elem.defaultValue=value}else{return nodeHook&&nodeHook.set(elem,value,name)}}}}if(!getSetAttribute){nodeHook={set:function(elem,value,name){var ret=elem.getAttributeNode(name);if(!ret){elem.setAttributeNode(ret=elem.ownerDocument.createAttribute(name))}ret.value=value+="";if(name==="value"||value===elem.getAttribute(name)){return value}}};attrHandle.id=attrHandle.name=attrHandle.coords=function(elem,name,isXML){var ret;if(!isXML){return(ret=elem.getAttributeNode(name))&&ret.value!==""?ret.value:null}};jQuery.valHooks.button={get:function(elem,name){var ret=elem.getAttributeNode(name);if(ret&&ret.specified){return ret.value}},set:nodeHook.set};jQuery.attrHooks.contenteditable={set:function(elem,value,name){nodeHook.set(elem,value===""?false:value,name)}};jQuery.each(["width","height"],function(i,name){jQuery.attrHooks[name]={set:function(elem,value){if(value===""){elem.setAttribute(name,"auto");return value}}}})}if(!support.style){jQuery.attrHooks.style={get:function(elem){return elem.style.cssText||undefined},set:function(elem,value){return elem.style.cssText=value+""}}}var rfocusable=/^(?:input|select|textarea|button|object)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){name=jQuery.propFix[name]||name;return this.each(function(){try{this[name]=undefined;delete this[name]}catch(e){}})}});jQuery.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return}notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name]}if(value!==undefined){return hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined?ret:elem[name]=value}else{return hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null?ret:elem[name]}},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:-1}}}});if(!support.hrefNormalized){jQuery.each(["href","src"],function(i,name){jQuery.propHooks[name]={get:function(elem){return elem.getAttribute(name,4)}}})}if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex}}return null}}}jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this});if(!support.enctype){jQuery.propFix.enctype="encoding"}var rclass=/[\t\r\n\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,clazz,j,finalValue,i=0,len=this.length,proceed=typeof value==="string"&&value;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className))})}if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):" ");if(cur){j=0;while(clazz=classes[j++]){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" "}}finalValue=jQuery.trim(cur);if(elem.className!==finalValue){elem.className=finalValue}}}}return this},removeClass:function(value){var classes,elem,cur,clazz,j,finalValue,i=0,len=this.length,proceed=arguments.length===0||typeof value==="string"&&value;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className))})}if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):"");if(cur){j=0;while(clazz=classes[j++]){while(cur.indexOf(" "+clazz+" ")>=0){cur=cur.replace(" "+clazz+" "," ")}}finalValue=value?jQuery.trim(cur):"";if(elem.className!==finalValue){elem.className=finalValue}}}}return this},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal==="boolean"&&type==="string"){return stateVal?this.addClass(value):this.removeClass(value)}if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal)})}return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];while(className=classNames[i++]){if(self.hasClass(className)){self.removeClass(className)}else{self.addClass(className)}}}else if(type===strundefined||type==="boolean"){if(this.className){jQuery._data(this,"__className__",this.className)}this.className=this.className||value===false?"":jQuery._data(this,"__className__")||""}})},hasClass:function(selector){var className=" "+selector+" ",i=0,l=this.length;for(;i<l;i++){if(this[i].nodeType===1&&(" "+this[i].className+" ").replace(rclass," ").indexOf(className)>=0){return true}}return false}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)},bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn)}});var nonce=jQuery.now();var rquery=/\?/;var rvalidtokens=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;jQuery.parseJSON=function(data){if(window.JSON&&window.JSON.parse){return window.JSON.parse(data+"")}var requireNonComma,depth=null,str=jQuery.trim(data+"");return str&&!jQuery.trim(str.replace(rvalidtokens,function(token,comma,open,close){if(requireNonComma&&comma){depth=0}if(depth===0){return token}requireNonComma=open||comma;depth+=!close-!open;return""}))?Function("return "+str)():jQuery.error("Invalid JSON: "+data)};jQuery.parseXML=function(data){var xml,tmp;if(!data||typeof data!=="string"){return null}try{if(window.DOMParser){tmp=new DOMParser;xml=tmp.parseFromString(data,"text/xml")}else{xml=new ActiveXObject("Microsoft.XMLDOM");xml.async="false";xml.loadXML(data)}}catch(e){xml=undefined}if(!xml||!xml.documentElement||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data)}return xml};var ajaxLocParts,ajaxLocation,rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*");try{ajaxLocation=location.href}catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href}ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*"}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while(dataType=dataTypes[i++]){if(dataType.charAt(0)==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func)}else{(structure[dataType]=structure[dataType]||[]).push(func)}}}}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=structure===transports;function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false}else if(seekingTransport){return!(selected=dataTypeOrTransport)}});return selected}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*")}function ajaxExtend(target,src){var deep,key,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:deep||(deep={}))[key]=src[key]}}if(deep){jQuery.extend(true,target,deep)}return target}function ajaxHandleResponses(s,jqXHR,responses){var firstDataType,ct,finalDataType,type,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0]in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv]}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType)}prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2]}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1])}break}}}}if(conv!==true){if(conv&&s["throws"]){response=conv(response)}else{try{response=conv(response)}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current}}}}}}}return{state:"success",data:response}}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined}options=options||{};var parts,i,cacheURL,responseHeadersString,timeoutTimer,fireGlobals,transport,responseHeaders,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while(match=rheaders.exec(responseHeadersString)){responseHeaders[match[1].toLowerCase()]=match[2]}}match=responseHeaders[key.toLowerCase()]}return match==null?null:match},getAllResponseHeaders:function(){return state===2?responseHeadersString:null},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value}return this},overrideMimeType:function(type){if(!state){s.mimeType=type}return this},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]]}}else{jqXHR.always(map[jqXHR.status])}}return this},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText)}done(0,finalText);return this}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!==ajaxLocParts[1]||parts[2]!==ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?"80":"443"))!==(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?"80":"443"))))}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR}fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart")}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=s.url+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data}if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++}}if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL])}if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType)}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort()}strAbort="abort";for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i])}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s])}if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout")},s.timeout)}try{state=1;transport.send(requestHeaders,done)}catch(e){if(state<2){done(-1,e)}else{throw e}}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return}state=2;if(timeoutTimer){clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses)}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified}modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified}}if(status===204||s.type==="HEAD"){statusText="nocontent"}else if(status===304){statusText="notmodified"}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error])}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!--jQuery.active){jQuery.event.trigger("ajaxStop")}}}return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script")}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}return jQuery.ajax({url:url,type:method,dataType:type,data:data,success:callback})}});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",async:false,global:false,"throws":true})};jQuery.fn.extend({wrapAll:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))})}if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstChild&&elem.firstChild.nodeType===1){elem=elem.firstChild}return elem}).append(this)}return this},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i))})}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html)}else{self.append(html)}})},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html)})},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes)}}).end()}});jQuery.expr.filters.hidden=function(elem){return elem.offsetWidth<=0&&elem.offsetHeight<=0||!support.reliableHiddenOffsets()&&(elem.style&&elem.style.display||jQuery.css(elem,"display"))==="none"};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem)};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+"["+(typeof v==="object"?i:"")+"]",v,traditional,add)}})}else if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add)}}else{add(prefix,obj)}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value==null?"":value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a)){jQuery.each(a,function(){add(this.name,this.value)})}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join("&").replace(r20,"+")};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray()); | ||
22 | },serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});jQuery.ajaxSettings.xhr=window.ActiveXObject!==undefined?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&createStandardXHR()||createActiveXHR()}:createStandardXHR;var xhrId=0,xhrCallbacks={},xhrSupported=jQuery.ajaxSettings.xhr();if(window.attachEvent){window.attachEvent("onunload",function(){for(var key in xhrCallbacks){xhrCallbacks[key](undefined,true)}})}support.cors=!!xhrSupported&&"withCredentials"in xhrSupported;xhrSupported=support.ajax=!!xhrSupported;if(xhrSupported){jQuery.ajaxTransport(function(options){if(!options.crossDomain||support.cors){var callback;return{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i]}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType)}if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest"}for(i in headers){if(headers[i]!==undefined){xhr.setRequestHeader(i,headers[i]+"")}}xhr.send(options.hasContent&&options.data||null);callback=function(_,isAbort){var status,statusText,responses;if(callback&&(isAbort||xhr.readyState===4)){delete xhrCallbacks[id];callback=undefined;xhr.onreadystatechange=jQuery.noop;if(isAbort){if(xhr.readyState!==4){xhr.abort()}}else{responses={};status=xhr.status;if(typeof xhr.responseText==="string"){responses.text=xhr.responseText}try{statusText=xhr.statusText}catch(e){statusText=""}if(!status&&options.isLocal&&!options.crossDomain){status=responses.text?200:404}else if(status===1223){status=204}}}if(responses){complete(status,statusText,responses,xhr.getAllResponseHeaders())}};if(!options.async){callback()}else if(xhr.readyState===4){setTimeout(callback)}else{xhr.onreadystatechange=xhrCallbacks[id]=callback}},abort:function(){if(callback){callback(undefined,true)}}}}})}function createStandardXHR(){try{return new window.XMLHttpRequest}catch(e){}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(text){jQuery.globalEval(text);return text}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type="GET";s.global=false}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,head=document.head||jQuery("head")[0]||document.documentElement;return{send:function(_,callback){script=document.createElement("script");script.async=true;if(s.scriptCharset){script.charset=s.scriptCharset}script.src=s.url;script.onload=script.onreadystatechange=function(_,isAbort){if(isAbort||!script.readyState||/loaded|complete/.test(script.readyState)){script.onload=script.onreadystatechange=null;if(script.parentNode){script.parentNode.removeChild(script)}script=null;if(!isAbort){callback(200,"success")}}};head.insertBefore(script,head.firstChild)},abort:function(){if(script){script.onload(undefined,true)}}}}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;this[callback]=true;return callback}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&!(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName)}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName}s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called")}return responseContainer[0]};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments};jqXHR.always(function(){window[callbackName]=overwritten;if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName)}if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0])}responseContainer=overwritten=undefined});return"script"}});jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!=="string"){return null}if(typeof context==="boolean"){keepScripts=context;context=false}context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])]}parsed=jQuery.buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove()}return jQuery.merge([],parsed.childNodes)};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments)}var selector,response,type,self=this,off=url.indexOf(" ");if(off>=0){selector=jQuery.trim(url.slice(off,url.length));url=url.slice(0,off)}if(jQuery.isFunction(params)){callback=params;params=undefined}else if(params&&typeof params==="object"){type="POST"}if(self.length>0){jQuery.ajax({url:url,type:type,dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).complete(callback&&function(jqXHR,status){self.each(callback,response||[jqXHR.responseText,status,jqXHR])})}return this};jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};var docElem=window.document.documentElement;function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false}jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative"}curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&jQuery.inArray("auto",[curCSSTop,curCSSLeft])>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0}if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset)}if(options.top!=null){props.top=options.top-curOffset.top+curTop}if(options.left!=null){props.left=options.left-curOffset.left+curLeft}if("using"in options){options.using.call(elem,props)}else{curElem.css(props)}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)})}var docElem,win,box={top:0,left:0},elem=this[0],doc=elem&&elem.ownerDocument;if(!doc){return}docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box}if(typeof elem.getBoundingClientRect!==strundefined){box=elem.getBoundingClientRect()}win=getWindow(doc);return{top:box.top+(win.pageYOffset||docElem.scrollTop)-(docElem.clientTop||0),left:box.left+(win.pageXOffset||docElem.scrollLeft)-(docElem.clientLeft||0)}},position:function(){if(!this[0]){return}var offsetParent,offset,parentOffset={top:0,left:0},elem=this[0];if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect()}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset()}parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true)}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||docElem;while(offsetParent&&(!jQuery.nodeName(offsetParent,"html")&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent}return offsetParent||docElem})}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top=/Y/.test(prop);jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?prop in win?win[prop]:win.document.documentElement[method]:elem[method]}if(win){win.scrollTo(!top?val:jQuery(win).scrollLeft(),top?val:jQuery(win).scrollTop())}else{elem[method]=val}},method,val,arguments.length,null)}});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed}})});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(jQuery.isWindow(elem)){return elem.document.documentElement["client"+name]}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:undefined,chainable,null)}})});jQuery.fn.size=function(){return this.length};jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery})}var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery}return jQuery};if(typeof noGlobal===strundefined){window.jQuery=window.$=jQuery}return jQuery})},{}],13:[function(require,module,exports){"use strict";var extend=require("backbone-extend-standalone");var Promise=require("es6-promise").Promise;var authz=require("./authz");var identity=require("./identity");var notification=require("./notification");var registry=require("./registry");var storage=require("./storage");function App(){this.modules=[];this.registry=new registry.Registry;this._started=false;this.registry.registerUtility(notification.defaultNotifier,"notifier");this.include(authz.acl);this.include(identity.simple);this.include(storage.noop)}App.prototype.include=function(module,options){var mod=module(options);if(typeof mod.configure==="function"){mod.configure(this.registry)}this.modules.push(mod);return this};App.prototype.start=function(){if(this._started){return}this._started=true;var self=this;var reg=this.registry;this.authz=reg.getUtility("authorizationPolicy");this.ident=reg.getUtility("identityPolicy");this.notify=reg.getUtility("notifier");this.annotations=new storage.StorageAdapter(reg.getUtility("storage"),function(){return self.runHook.apply(self,arguments)});return this.runHook("start",[this])};App.prototype.destroy=function(){return this.runHook("destroy")};App.prototype.runHook=function(name,args){var results=[];for(var i=0,len=this.modules.length;i<len;i++){var mod=this.modules[i];if(typeof mod[name]==="function"){results.push(mod[name].apply(mod,args))}}return Promise.all(results)};App.extend=extend;exports.App=App},{"./authz":14,"./identity":15,"./notification":16,"./registry":17,"./storage":18,"backbone-extend-standalone":3,"es6-promise":5}],14:[function(require,module,exports){"use strict";var AclAuthzPolicy;exports.acl=function acl(){var authorization=new AclAuthzPolicy;return{configure:function(registry){registry.registerUtility(authorization,"authorizationPolicy")}}};AclAuthzPolicy=exports.AclAuthzPolicy=function AclAuthzPolicy(){};AclAuthzPolicy.prototype.permits=function(action,context,identity){var userid=this.authorizedUserId(identity);var permissions=context.permissions;if(permissions){var tokens=permissions[action];if(typeof tokens==="undefined"||tokens===null){return true}for(var i=0,len=tokens.length;i<len;i++){if(userid===tokens[i]){return true}}return false}else if(context.user){return userid===context.user}return true};AclAuthzPolicy.prototype.authorizedUserId=function(identity){return identity}},{}],15:[function(require,module,exports){"use strict";var SimpleIdentityPolicy;exports.simple=function simple(){var identity=new SimpleIdentityPolicy;return{configure:function(registry){registry.registerUtility(identity,"identityPolicy")},beforeAnnotationCreated:function(annotation){annotation.user=identity.who()}}};SimpleIdentityPolicy=function SimpleIdentityPolicy(){this.identity=null};exports.SimpleIdentityPolicy=SimpleIdentityPolicy;SimpleIdentityPolicy.prototype.who=function(){return this.identity}},{}],16:[function(require,module,exports){(function(global){"use strict";var util=require("./util");var $=util.$;var INFO="info",SUCCESS="success",ERROR="error";var bannerTemplate="<div class='annotator-notice'></div>";var bannerClasses={show:"annotator-notice-show",info:"annotator-notice-info",success:"annotator-notice-success",error:"annotator-notice-error"};function banner(message,severity){if(typeof severity==="undefined"||severity===null){severity=INFO}var element=$(bannerTemplate)[0];var closed=false;var close=function(){if(closed){return}closed=true;$(element).removeClass(bannerClasses.show).removeClass(bannerClasses[severity]);setTimeout(function(){$(element).remove()},500)};$(element).addClass(bannerClasses.show).addClass(bannerClasses[severity]).html(util.escapeHtml(message||"")).appendTo(global.document.body);$(element).on("click",close);setTimeout(close,5e3);return{close:close}}exports.banner=banner;exports.defaultNotifier=banner;exports.INFO=INFO;exports.SUCCESS=SUCCESS;exports.ERROR=ERROR}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./util":30}],17:[function(require,module,exports){"use strict";function Registry(){this.utilities={}}Registry.prototype.registerUtility=function(component,iface){this.utilities[iface]=component};Registry.prototype.getUtility=function(iface){var component=this.queryUtility(iface);if(component===null){throw new LookupError(iface)}return component};Registry.prototype.queryUtility=function(iface){var component=this.utilities[iface];if(typeof component==="undefined"||component===null){return null}return component};function LookupError(iface){this.name="LookupError";this.message='No utility registered for interface "'+iface+'".'}LookupError.prototype=Object.create(Error.prototype);LookupError.prototype.constructor=LookupError;exports.LookupError=LookupError;exports.Registry=Registry},{}],18:[function(require,module,exports){"use strict";var util=require("./util");var $=util.$;var _t=util.gettext;var Promise=util.Promise;var id=function(){var counter;counter=-1;return function(){return counter+=1}}();exports.debug=function(){function trace(action,annotation){var copyAnno=JSON.parse(JSON.stringify(annotation));console.debug("annotator.storage.debug: "+action,copyAnno)}return{create:function(annotation){annotation.id=id();trace("create",annotation);return annotation},update:function(annotation){trace("update",annotation);return annotation},"delete":function(annotation){trace("destroy",annotation);return annotation},query:function(queryObj){trace("query",queryObj);return{results:[],meta:{total:0}}},configure:function(registry){registry.registerUtility(this,"storage")}}};exports.noop=function(){return{create:function(annotation){if(typeof annotation.id==="undefined"||annotation.id===null){annotation.id=id()}return annotation},update:function(annotation){return annotation},"delete":function(annotation){return annotation},query:function(){return{results:[]}},configure:function(registry){registry.registerUtility(this,"storage")}}};var HttpStorage;exports.http=function http(options){var notify=function(){};if(typeof options==="undefined"||options===null){options={}}options.onError=options.onError||function(msg,xhr){console.error(msg,xhr);notify(msg,"error")};var storage=new HttpStorage(options);return{configure:function(registry){registry.registerUtility(storage,"storage")},start:function(app){notify=app.notify}}};HttpStorage=exports.HttpStorage=function HttpStorage(options){this.options=$.extend(true,{},HttpStorage.options,options);this.onError=this.options.onError};HttpStorage.prototype.create=function(annotation){return this._apiRequest("create",annotation)};HttpStorage.prototype.update=function(annotation){return this._apiRequest("update",annotation)};HttpStorage.prototype["delete"]=function(annotation){return this._apiRequest("destroy",annotation)};HttpStorage.prototype.query=function(queryObj){return this._apiRequest("search",queryObj).then(function(obj){var rows=obj.rows;delete obj.rows;return{results:rows,meta:obj}})};HttpStorage.prototype.setHeader=function(key,value){this.options.headers[key]=value};HttpStorage.prototype._apiRequest=function(action,obj){var id=obj&&obj.id;var url=this._urlFor(action,id);var options=this._apiRequestOptions(action,obj);var request=$.ajax(url,options);request._id=id;request._action=action;return request};HttpStorage.prototype._apiRequestOptions=function(action,obj){var method=this._methodFor(action);var self=this;var opts={type:method,dataType:"json",error:function(){self._onError.apply(self,arguments)},headers:this.options.headers};if(this.options.emulateHTTP&&(method==="PUT"||method==="DELETE")){opts.headers=$.extend(opts.headers,{"X-HTTP-Method-Override":method});opts.type="POST"}if(action==="search"){opts=$.extend(opts,{data:obj});return opts}var data=obj&&JSON.stringify(obj);if(this.options.emulateJSON){opts.data={json:data};if(this.options.emulateHTTP){opts.data._method=method}return opts}opts=$.extend(opts,{data:data,contentType:"application/json; charset=utf-8"});return opts};HttpStorage.prototype._urlFor=function(action,id){if(typeof id==="undefined"||id===null){id=""}var url="";if(typeof this.options.prefix!=="undefined"&&this.options.prefix!==null){url=this.options.prefix}url+=this.options.urls[action];url=url.replace(/idAnnotation/,id);return url};HttpStorage.prototype._methodFor=function(action){var table={create:"POST",update:"PUT",destroy:"DELETE",search:"GET"};return table[action]};HttpStorage.prototype._onError=function(xhr){if(typeof this.onError!=="function"){return}var message;if(xhr.status===400){message=_t("The annotation store did not understand the request! "+"(Error 400)")}else if(xhr.status===401){message=_t("You must be logged in to perform this operation! "+"(Error 401)")}else if(xhr.status===403){message=_t("You don't have permission to perform this operation! "+"(Error 403)")}else if(xhr.status===404){message=_t("Could not connect to the annotation store! "+"(Error 404)")}else if(xhr.status===500){message=_t("Internal error in annotation store! "+"(Error 500)")}else{message=_t("Unknown error while speaking to annotation store!")}this.onError(message,xhr)};HttpStorage.options={emulateHTTP:false,emulateJSON:false,headers:{},onError:function(message){console.error("API request failed: "+message)},prefix:"/store",urls:{create:"/annotations",update:"/annotations/idAnnotation",destroy:"/annotations/idAnnotation",search:"/search"}};function StorageAdapter(store,runHook){this.store=store;this.runHook=runHook}StorageAdapter.prototype.create=function(obj){if(typeof obj==="undefined"||obj===null){obj={}}return this._cycle(obj,"create","beforeAnnotationCreated","annotationCreated")};StorageAdapter.prototype.update=function(obj){if(typeof obj.id==="undefined"||obj.id===null){throw new TypeError("annotation must have an id for update()")}return this._cycle(obj,"update","beforeAnnotationUpdated","annotationUpdated")};StorageAdapter.prototype["delete"]=function(obj){if(typeof obj.id==="undefined"||obj.id===null){throw new TypeError("annotation must have an id for delete()")}return this._cycle(obj,"delete","beforeAnnotationDeleted","annotationDeleted")};StorageAdapter.prototype.query=function(query){return Promise.resolve(this.store.query(query))};StorageAdapter.prototype.load=function(query){var self=this;return this.query(query).then(function(data){self.runHook("annotationsLoaded",[data.results])})};StorageAdapter.prototype._cycle=function(obj,storeFunc,beforeEvent,afterEvent){var self=this;return this.runHook(beforeEvent,[obj]).then(function(){var safeCopy=$.extend(true,{},obj);delete safeCopy._local;var result=self.store[storeFunc](safeCopy);return Promise.resolve(result)}).then(function(ret){for(var k in obj){if(obj.hasOwnProperty(k)){if(k!=="_local"){delete obj[k]}}}$.extend(obj,ret);self.runHook(afterEvent,[obj]);return obj})};exports.StorageAdapter=StorageAdapter},{"./util":30}],19:[function(require,module,exports){exports.main=require("./ui/main").main;exports.adder=require("./ui/adder");exports.editor=require("./ui/editor");exports.filter=require("./ui/filter");exports.highlighter=require("./ui/highlighter");exports.markdown=require("./ui/markdown");exports.tags=require("./ui/tags");exports.textselector=require("./ui/textselector");exports.viewer=require("./ui/viewer");exports.widget=require("./ui/widget")},{"./ui/adder":20,"./ui/editor":21,"./ui/filter":22,"./ui/highlighter":23,"./ui/main":24,"./ui/markdown":25,"./ui/tags":26,"./ui/textselector":27,"./ui/viewer":28,"./ui/widget":29}],20:[function(require,module,exports){"use strict";var Widget=require("./widget").Widget,util=require("../util");var $=util.$;var _t=util.gettext;var NS="annotator-adder";var Adder=Widget.extend({constructor:function(options){Widget.call(this,options);this.ignoreMouseup=false;this.annotation=null;this.onCreate=this.options.onCreate;var self=this;this.element.on("click."+NS,"button",function(e){self._onClick(e)}).on("mousedown."+NS,"button",function(e){self._onMousedown(e)});this.document=this.element[0].ownerDocument;$(this.document.body).on("mouseup."+NS,function(e){self._onMouseup(e)})},destroy:function(){this.element.off("."+NS);$(this.document.body).off("."+NS);Widget.prototype.destroy.call(this)},load:function(annotation,position){this.annotation=annotation;this.show(position)},show:function(position){if(typeof position!=="undefined"&&position!==null){this.element.css({top:position.top,left:position.left})}Widget.prototype.show.call(this)},_onMousedown:function(event){if(event.which>1){return}event.preventDefault();this.ignoreMouseup=true},_onMouseup:function(event){if(event.which>1){return}if(this.ignoreMouseup){event.stopImmediatePropagation()}},_onClick:function(event){if(event.which>1){return}event.preventDefault();this.hide();this.ignoreMouseup=false;if(this.annotation!==null&&typeof this.onCreate==="function"){this.onCreate(this.annotation,event)}}});Adder.template=['<div class="annotator-adder annotator-hide">',' <button type="button">'+_t("Annotate")+"</button>","</div>"].join("\n");Adder.options={onCreate:null};exports.Adder=Adder},{"../util":30,"./widget":29}],21:[function(require,module,exports){"use strict";var Widget=require("./widget").Widget,util=require("../util");var $=util.$;var _t=util.gettext;var Promise=util.Promise;var NS="annotator-editor";var id=function(){var counter;counter=-1;return function(){return counter+=1}}();function preventEventDefault(event){if(typeof event!=="undefined"&&event!==null&&typeof event.preventDefault==="function"){event.preventDefault()}}var dragTracker=exports.dragTracker=function dragTracker(handle,callback){var lastPos=null,throttled=false;function mouseMove(e){if(throttled||lastPos===null){return}var delta={y:e.pageY-lastPos.top,x:e.pageX-lastPos.left};var trackLastMove=true;if(typeof callback==="function"){trackLastMove=callback(delta)}if(trackLastMove!==false){lastPos={top:e.pageY,left:e.pageX}}throttled=true;setTimeout(function(){throttled=false},1e3/60)}function mouseUp(){lastPos=null;$(handle.ownerDocument).off("mouseup",mouseUp).off("mousemove",mouseMove)}function mouseDown(e){if(e.target!==handle){return}lastPos={top:e.pageY,left:e.pageX};$(handle.ownerDocument).on("mouseup",mouseUp).on("mousemove",mouseMove);e.preventDefault()}function destroy(){$(handle).off("mousedown",mouseDown)}$(handle).on("mousedown",mouseDown);return{destroy:destroy}};var resizer=exports.resizer=function resizer(element,handle,options){var $el=$(element);if(typeof options==="undefined"||options===null){options={}}function translate(delta){var directionX=1,directionY=-1;if(typeof options.invertedX==="function"&&options.invertedX()){directionX=-1}if(typeof options.invertedY==="function"&&options.invertedY()){directionY=1}return{x:delta.x*directionX,y:delta.y*directionY}}function resize(delta){var height=$el.height(),width=$el.width(),translated=translate(delta);if(Math.abs(translated.x)>0){$el.width(width+translated.x)}if(Math.abs(translated.y)>0){$el.height(height+translated.y)}var didChange=$el.height()!==height||$el.width()!==width;return didChange}return dragTracker(handle,resize)};var mover=exports.mover=function mover(element,handle){function move(delta){$(element).css({top:parseInt($(element).css("top"),10)+delta.y,left:parseInt($(element).css("left"),10)+delta.x})}return dragTracker(handle,move)};var Editor=exports.Editor=Widget.extend({constructor:function(options){Widget.call(this,options);this.fields=[];this.annotation={};if(this.options.defaultFields){this.addField({type:"textarea",label:_t("Comments")+"…",load:function(field,annotation){$(field).find("textarea").val(annotation.text||"")},submit:function(field,annotation){annotation.text=$(field).find("textarea").val()}})}var self=this;this.element.on("submit."+NS,"form",function(e){self._onFormSubmit(e)}).on("click."+NS,".annotator-save",function(e){self._onSaveClick(e)}).on("click."+NS,".annotator-cancel",function(e){self._onCancelClick(e)}).on("mouseover."+NS,".annotator-cancel",function(e){self._onCancelMouseover(e)}).on("keydown."+NS,"textarea",function(e){self._onTextareaKeydown(e)})},destroy:function(){this.element.off("."+NS);Widget.prototype.destroy.call(this)},show:function(position){if(typeof position!=="undefined"&&position!==null){this.element.css({top:position.top,left:position.left})}this.element.find(".annotator-save").addClass(this.classes.focus);Widget.prototype.show.call(this);this.element.find(":input:first").focus();this._setupDraggables()},load:function(annotation,position){this.annotation=annotation;for(var i=0,len=this.fields.length;i<len;i++){var field=this.fields[i];field.load(field.element,this.annotation)}var self=this;return new Promise(function(resolve,reject){self.dfd={resolve:resolve,reject:reject};self.show(position)})},submit:function(){for(var i=0,len=this.fields.length;i<len;i++){var field=this.fields[i];field.submit(field.element,this.annotation)}if(typeof this.dfd!=="undefined"&&this.dfd!==null){this.dfd.resolve()}this.hide()},cancel:function(){if(typeof this.dfd!=="undefined"&&this.dfd!==null){this.dfd.reject("editing cancelled")}this.hide()},addField:function(options){var field=$.extend({id:"annotator-field-"+id(),type:"input",label:"",load:function(){},submit:function(){}},options);var input=null,element=$('<li class="annotator-item" />');field.element=element[0];if(field.type==="textarea"){input=$("<textarea />")}else if(field.type==="checkbox"){input=$('<input type="checkbox" />')}else if(field.type==="input"){input=$("<input />")}else if(field.type==="select"){input=$("<select />")}element.append(input);input.attr({id:field.id,placeholder:field.label});if(field.type==="checkbox"){element.addClass("annotator-checkbox");element.append($("<label />",{"for":field.id,html:field.label}))}this.element.find("ul:first").append(element);this.fields.push(field);return field.element},checkOrientation:function(){Widget.prototype.checkOrientation.call(this);var list=this.element.find("ul").first(),controls=this.element.find(".annotator-controls");if(this.element.hasClass(this.classes.invert.y)){controls.insertBefore(list)}else if(controls.is(":first-child")){controls.insertAfter(list)}return this},_onFormSubmit:function(event){preventEventDefault(event);this.submit()},_onSaveClick:function(event){preventEventDefault(event);this.submit()},_onCancelClick:function(event){preventEventDefault(event);this.cancel()},_onCancelMouseover:function(){this.element.find("."+this.classes.focus).removeClass(this.classes.focus)},_onTextareaKeydown:function(event){if(event.which===27){this.cancel()}else if(event.which===13&&!event.shiftKey){this.submit()}},_setupDraggables:function(){if(typeof this._resizer!=="undefined"&&this._resizer!==null){this._resizer.destroy()}if(typeof this._mover!=="undefined"&&this._mover!==null){this._mover.destroy()}this.element.find(".annotator-resize").remove();var cornerItem;if(this.element.hasClass(this.classes.invert.y)){cornerItem=this.element.find(".annotator-item:last")}else{cornerItem=this.element.find(".annotator-item:first")}if(cornerItem){$('<span class="annotator-resize"></span>').appendTo(cornerItem)}var controls=this.element.find(".annotator-controls")[0],textarea=this.element.find("textarea:first")[0],resizeHandle=this.element.find(".annotator-resize")[0],self=this;this._resizer=resizer(textarea,resizeHandle,{invertedX:function(){return self.element.hasClass(self.classes.invert.x)},invertedY:function(){return self.element.hasClass(self.classes.invert.y)}});this._mover=mover(this.element[0],controls)}});Editor.classes={hide:"annotator-hide",focus:"annotator-focus"};Editor.template=['<div class="annotator-outer annotator-editor annotator-hide">',' <form class="annotator-widget">',' <ul class="annotator-listing"></ul>',' <div class="annotator-controls">',' <a href="#cancel" class="annotator-cancel">'+_t("Cancel")+"</a>",' <a href="#save"',' class="annotator-save annotator-focus">'+_t("Save")+"</a>"," </div>"," </form>","</div>"].join("\n");Editor.options={defaultFields:true};exports.standalone=function standalone(options){var widget=new exports.Editor(options);return{destroy:function(){widget.destroy()},beforeAnnotationCreated:function(annotation){return widget.load(annotation)},beforeAnnotationUpdated:function(annotation){return widget.load(annotation)}}}},{"../util":30,"./widget":29}],22:[function(require,module,exports){"use strict";var util=require("../util");var $=util.$;var _t=util.gettext;var NS="annotator-filter";var Filter=exports.Filter=function Filter(options){this.options=$.extend(true,{},Filter.options,options);this.classes=$.extend(true,{},Filter.classes);this.element=$(Filter.html.element).appendTo(this.options.appendTo);this.filter=$(Filter.html.filter);this.filters=[];this.current=0;for(var i=0,len=this.options.filters.length;i<len;i++){var filter=this.options.filters[i];this.addFilter(filter)}this.updateHighlights();var filterInput=".annotator-filter-property input",self=this; | ||
23 | this.element.on("focus."+NS,filterInput,function(e){self._onFilterFocus(e)}).on("blur."+NS,filterInput,function(e){self._onFilterBlur(e)}).on("keyup."+NS,filterInput,function(e){self._onFilterKeyup(e)}).on("click."+NS,".annotator-filter-previous",function(e){self._onPreviousClick(e)}).on("click."+NS,".annotator-filter-next",function(e){self._onNextClick(e)}).on("click."+NS,".annotator-filter-clear",function(e){self._onClearClick(e)});this._insertSpacer();if(this.options.addAnnotationFilter){this.addFilter({label:_t("Annotation"),property:"text"})}};Filter.prototype.destroy=function(){var html=$("html"),currentMargin=parseInt(html.css("padding-top"),10)||0;html.css("padding-top",currentMargin-this.element.outerHeight());this.element.off("."+NS);this.element.remove()};Filter.prototype._insertSpacer=function(){var html=$("html"),currentMargin=parseInt(html.css("padding-top"),10)||0;html.css("padding-top",currentMargin+this.element.outerHeight());return this};Filter.prototype.addFilter=function(options){var filter=$.extend({label:"",property:"",isFiltered:this.options.isFiltered},options);var hasFilterForProp=false;for(var i=0,len=this.filters.length;i<len;i++){var f=this.filters[i];if(f.property===filter.property){hasFilterForProp=true;break}}if(!hasFilterForProp){filter.id="annotator-filter-"+filter.property;filter.annotations=[];filter.element=this.filter.clone().appendTo(this.element);filter.element.find("label").html(filter.label).attr("for",filter.id);filter.element.find("input").attr({id:filter.id,placeholder:_t("Filter by ")+filter.label+"…"});filter.element.find("button").hide();filter.element.data("filter",filter);this.filters.push(filter)}return this};Filter.prototype.updateFilter=function(filter){filter.annotations=[];this.updateHighlights();this.resetHighlights();var input=$.trim(filter.element.find("input").val());if(!input){return}var annotations=this.highlights.map(function(){return $(this).data("annotation")});annotations=$.makeArray(annotations);for(var i=0,len=annotations.length;i<len;i++){var annotation=annotations[i],property=annotation[filter.property];if(filter.isFiltered(input,property)){filter.annotations.push(annotation)}}this.filterHighlights()};Filter.prototype.updateHighlights=function(){this.highlights=$(this.options.filterElement).find(".annotator-hl:visible");this.filtered=this.highlights.not(this.classes.hl.hide)};Filter.prototype.filterHighlights=function(){var activeFilters=$.grep(this.filters,function(filter){return Boolean(filter.annotations.length)});var filtered=[];if(activeFilters.length>0){filtered=activeFilters[0].annotations}if(activeFilters.length>1){var annotations=[];$.each(activeFilters,function(){$.merge(annotations,this.annotations)});var uniques=[];filtered=[];$.each(annotations,function(){if($.inArray(this,uniques)===-1){uniques.push(this)}else{filtered.push(this)}})}var highlights=this.highlights;for(var i=0,len=filtered.length;i<len;i++){highlights=highlights.not(filtered[i]._local.highlights)}highlights.addClass(this.classes.hl.hide);this.filtered=this.highlights.not(this.classes.hl.hide);return this};Filter.prototype.resetHighlights=function(){this.highlights.removeClass(this.classes.hl.hide);this.filtered=this.highlights;return this};Filter.prototype._onFilterFocus=function(event){var input=$(event.target);input.parent().addClass(this.classes.active);input.next("button").show()};Filter.prototype._onFilterBlur=function(event){if(!event.target.value){var input=$(event.target);input.parent().removeClass(this.classes.active);input.next("button").hide()}};Filter.prototype._onFilterKeyup=function(event){var filter=$(event.target).parent().data("filter");if(filter){this.updateFilter(filter)}};Filter.prototype._findNextHighlight=function(previous){if(this.highlights.length===0){return this}var offset=-1,resetOffset=0,operator="gt";if(previous){offset=0;resetOffset=-1;operator="lt"}var active=this.highlights.not("."+this.classes.hl.hide),current=active.filter("."+this.classes.hl.active);if(current.length===0){current=active.eq(offset)}var annotation=current.data("annotation");var index=active.index(current[0]),next=active.filter(":"+operator+"("+index+")").not(annotation._local.highlights).eq(resetOffset);if(next.length===0){next=active.eq(resetOffset)}this._scrollToHighlight(next.data("annotation")._local.highlights)};Filter.prototype._onNextClick=function(){this._findNextHighlight()};Filter.prototype._onPreviousClick=function(){this._findNextHighlight(true)};Filter.prototype._scrollToHighlight=function(highlight){highlight=$(highlight);this.highlights.removeClass(this.classes.hl.active);highlight.addClass(this.classes.hl.active);$("html, body").animate({scrollTop:highlight.offset().top-(this.element.height()+20)},150)};Filter.prototype._onClearClick=function(event){$(event.target).prev("input").val("").keyup().blur()};Filter.classes={active:"annotator-filter-active",hl:{hide:"annotator-hl-filtered",active:"annotator-hl-active"}};Filter.html={element:['<div class="annotator-filter">'," <strong>"+_t("Navigate:")+"</strong>",' <span class="annotator-filter-navigation">',' <button type="button"',' class="annotator-filter-previous">'+_t("Previous")+"</button>",' <button type="button"',' class="annotator-filter-next">'+_t("Next")+"</button>"," </span>"," <strong>"+_t("Filter by:")+"</strong>","</div>"].join("\n"),filter:['<span class="annotator-filter-property">'," <label></label>"," <input/>",' <button type="button"',' class="annotator-filter-clear">'+_t("Clear")+"</button>","</span>"].join("\n")};Filter.options={appendTo:"body",filterElement:"body",filters:[],addAnnotationFilter:true,isFiltered:function(input,property){if(!(input&&property)){return false}var keywords=input.split(/\s+/);for(var i=0,len=keywords.length;i<len;i++){if(property.indexOf(keywords[i])===-1){return false}}return true}};exports.standalone=function(options){var widget=new exports.Filter(options);return{destroy:function(){widget.destroy()},annotationsLoaded:function(){widget.updateHighlights()},annotationCreated:function(){widget.updateHighlights()},annotationUpdated:function(){widget.updateHighlights()},annotationDeleted:function(){widget.updateHighlights()}}}},{"../util":30}],23:[function(require,module,exports){(function(global){"use strict";var xpathRange=require("xpath-range");var util=require("../util");var $=util.$;var Promise=util.Promise;function highlightRange(normedRange,cssClass){if(typeof cssClass==="undefined"||cssClass===null){cssClass="annotator-hl"}var white=/^\s*$/;var nodes=normedRange.textNodes(),results=[];for(var i=0,len=nodes.length;i<len;i++){var node=nodes[i];if(!white.test(node.nodeValue)){var hl=global.document.createElement("span");hl.className=cssClass;node.parentNode.replaceChild(hl,node);hl.appendChild(node);results.push(hl)}}return results}function reanchorRange(range,rootElement){try{return xpathRange.Range.sniff(range).normalize(rootElement)}catch(e){if(!(e instanceof xpathRange.Range.RangeError)){throw e}}return null}var Highlighter=exports.Highlighter=function Highlighter(element,options){this.element=element;this.options=$.extend(true,{},Highlighter.options,options)};Highlighter.prototype.destroy=function(){$(this.element).find("."+this.options.highlightClass).each(function(_,el){$(el).contents().insertBefore(el);$(el).remove()})};Highlighter.prototype.drawAll=function(annotations){var self=this;var p=new Promise(function(resolve){var highlights=[];function loader(annList){if(typeof annList==="undefined"||annList===null){annList=[]}var now=annList.splice(0,self.options.chunkSize);for(var i=0,len=now.length;i<len;i++){highlights=highlights.concat(self.draw(now[i]))}if(annList.length>0){setTimeout(function(){loader(annList)},self.options.chunkDelay)}else{resolve(highlights)}}var clone=annotations.slice();loader(clone)});return p};Highlighter.prototype.draw=function(annotation){var normedRanges=[];for(var i=0,ilen=annotation.ranges.length;i<ilen;i++){var r=reanchorRange(annotation.ranges[i],this.element);if(r!==null){normedRanges.push(r)}}var hasLocal=typeof annotation._local!=="undefined"&&annotation._local!==null;if(!hasLocal){annotation._local={}}var hasHighlights=typeof annotation._local.highlights!=="undefined"&&annotation._local.highlights===null;if(!hasHighlights){annotation._local.highlights=[]}for(var j=0,jlen=normedRanges.length;j<jlen;j++){var normed=normedRanges[j];$.merge(annotation._local.highlights,highlightRange(normed,this.options.highlightClass))}$(annotation._local.highlights).data("annotation",annotation);if(typeof annotation.id!=="undefined"&&annotation.id!==null){$(annotation._local.highlights).attr("data-annotation-id",annotation.id)}return annotation._local.highlights};Highlighter.prototype.undraw=function(annotation){var hasHighlights=typeof annotation._local!=="undefined"&&annotation._local!==null&&typeof annotation._local.highlights!=="undefined"&&annotation._local.highlights!==null;if(!hasHighlights){return}for(var i=0,len=annotation._local.highlights.length;i<len;i++){var h=annotation._local.highlights[i];if(h.parentNode!==null){$(h).replaceWith(h.childNodes)}}delete annotation._local.highlights};Highlighter.prototype.redraw=function(annotation){this.undraw(annotation);return this.draw(annotation)};Highlighter.options={highlightClass:"annotator-hl",chunkSize:10,chunkDelay:10};exports.standalone=function standalone(element,options){var widget=exports.Highlighter(element,options);return{destroy:function(){widget.destroy()},annotationsLoaded:function(anns){widget.drawAll(anns)},annotationCreated:function(ann){widget.draw(ann)},annotationDeleted:function(ann){widget.undraw(ann)},annotationUpdated:function(ann){widget.redraw(ann)}}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../util":30,"xpath-range":8}],24:[function(require,module,exports){(function(global){"use strict";var util=require("../util");var adder=require("./adder");var editor=require("./editor");var highlighter=require("./highlighter");var textselector=require("./textselector");var viewer=require("./viewer");var _t=util.gettext;function trim(s){if(typeof String.prototype.trim==="function"){return String.prototype.trim.call(s)}else{return s.replace(/^[\s\xA0]+|[\s\xA0]+$/g,"")}}function annotationFactory(contextEl,ignoreSelector){return function(ranges){var text=[],serializedRanges=[];for(var i=0,len=ranges.length;i<len;i++){var r=ranges[i];text.push(trim(r.text()));serializedRanges.push(r.serialize(contextEl,ignoreSelector))}return{quote:text.join(" / "),ranges:serializedRanges}}}function maxZIndex(elements){var max=-1;for(var i=0,len=elements.length;i<len;i++){var $el=util.$(elements[i]);if($el.css("position")!=="static"){var zIndex=parseFloat($el.css("z-index"));if(zIndex>max){max=zIndex}}}return max}function injectDynamicStyle(){util.$("#annotator-dynamic-style").remove();var sel="*"+":not(annotator-adder)"+":not(annotator-outer)"+":not(annotator-notice)"+":not(annotator-filter)";var max=maxZIndex(util.$(global.document.body).find(sel).get());max=Math.max(max,1e3);var rules=[".annotator-adder, .annotator-outer, .annotator-notice {"," z-index: "+(max+20)+";","}",".annotator-filter {"," z-index: "+(max+10)+";","}"].join("\n");util.$("<style>"+rules+"</style>").attr("id","annotator-dynamic-style").attr("type","text/css").appendTo("head")}function removeDynamicStyle(){util.$("#annotator-dynamic-style").remove()}function addPermissionsCheckboxes(editor,ident,authz){function createLoadCallback(action){return function loadCallback(field,annotation){field=util.$(field).show();var u=ident.who();var input=field.find("input");if(typeof u==="undefined"||u===null){field.hide()}if(!authz.permits("admin",annotation,u)){field.hide()}if(authz.permits(action,annotation,null)){input.attr("checked","checked")}else{input.removeAttr("checked")}}}function createSubmitCallback(action){return function submitCallback(field,annotation){var u=ident.who();if(typeof u==="undefined"||u===null){return}if(!annotation.permissions){annotation.permissions={}}if(util.$(field).find("input").is(":checked")){delete annotation.permissions[action]}else{annotation.permissions[action]=[authz.authorizedUserId(u)]}}}editor.addField({type:"checkbox",label:_t("Allow anyone to <strong>view</strong> this annotation"),load:createLoadCallback("read"),submit:createSubmitCallback("read")});editor.addField({type:"checkbox",label:_t("Allow anyone to <strong>edit</strong> this annotation"),load:createLoadCallback("update"),submit:createSubmitCallback("update")})}function main(options){if(typeof options==="undefined"||options===null){options={}}options.element=options.element||global.document.body;options.editorExtensions=options.editorExtensions||[];options.viewerExtensions=options.viewerExtensions||[];var makeAnnotation=annotationFactory(options.element,".annotator-hl");var s={interactionPoint:null};function start(app){var ident=app.registry.getUtility("identityPolicy");var authz=app.registry.getUtility("authorizationPolicy");s.adder=new adder.Adder({onCreate:function(ann){app.annotations.create(ann)}});s.adder.attach();s.editor=new editor.Editor({extensions:options.editorExtensions});s.editor.attach();addPermissionsCheckboxes(s.editor,ident,authz);s.highlighter=new highlighter.Highlighter(options.element);s.textselector=new textselector.TextSelector(options.element,{onSelection:function(ranges,event){if(ranges.length>0){var annotation=makeAnnotation(ranges);s.interactionPoint=util.mousePosition(event);s.adder.load(annotation,s.interactionPoint)}else{s.adder.hide()}}});s.viewer=new viewer.Viewer({onEdit:function(ann){s.interactionPoint=util.$(s.viewer.element).css(["top","left"]);app.annotations.update(ann)},onDelete:function(ann){app.annotations["delete"](ann)},permitEdit:function(ann){return authz.permits("update",ann,ident.who())},permitDelete:function(ann){return authz.permits("delete",ann,ident.who())},autoViewHighlights:options.element,extensions:options.viewerExtensions});s.viewer.attach();injectDynamicStyle()}return{start:start,destroy:function(){s.adder.destroy();s.editor.destroy();s.highlighter.destroy();s.textselector.destroy();s.viewer.destroy();removeDynamicStyle()},annotationsLoaded:function(anns){s.highlighter.drawAll(anns)},annotationCreated:function(ann){s.highlighter.draw(ann)},annotationDeleted:function(ann){s.highlighter.undraw(ann)},annotationUpdated:function(ann){s.highlighter.redraw(ann)},beforeAnnotationCreated:function(annotation){return s.editor.load(annotation,s.interactionPoint)},beforeAnnotationUpdated:function(annotation){return s.editor.load(annotation,s.interactionPoint)}}}exports.main=main}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../util":30,"./adder":20,"./editor":21,"./highlighter":23,"./textselector":27,"./viewer":28}],25:[function(require,module,exports){(function(global){"use strict";var util=require("../util");var _t=util.gettext;var render=exports.render=function render(annotation){var convert=util.escapeHtml;if(global.showdown&&typeof global.showdown.Converter==="function"){convert=(new global.showdown.Converter).makeHtml}if(annotation.text){return convert(annotation.text)}else{return"<i>"+_t("No comment")+"</i>"}};exports.viewerExtension=function viewerExtension(viewer){if(!global.showdown||typeof global.showdown.Converter!=="function"){console.warn(_t("To use the Markdown plugin, you must "+"include Showdown into the page first."))}viewer.setRenderer(render)}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../util":30}],26:[function(require,module,exports){"use strict";var util=require("../util");var $=util.$;var _t=util.gettext;function stringifyTags(array){return array.join(" ")}function parseTags(string){string=$.trim(string);var tags=[];if(string){tags=string.split(/\s+/)}return tags}exports.viewerExtension=function viewerExtension(v){function updateViewer(field,annotation){field=$(field);if(annotation.tags&&$.isArray(annotation.tags)&&annotation.tags.length){field.addClass("annotator-tags").html(function(){return $.map(annotation.tags,function(tag){return'<span class="annotator-tag">'+util.escapeHtml(tag)+"</span>"}).join(" ")})}else{field.remove()}}v.addField({load:updateViewer})};exports.editorExtension=function editorExtension(e){var field=null;var input=null;function updateField(field,annotation){var value="";if(annotation.tags){value=stringifyTags(annotation.tags)}input.val(value)}function setAnnotationTags(field,annotation){annotation.tags=parseTags(input.val())}field=e.addField({label:_t("Add some tags here")+"…",load:updateField,submit:setAnnotationTags});input=$(field).find(":input")}},{"../util":30}],27:[function(require,module,exports){(function(global){"use strict";var xpathRange=require("xpath-range");var util=require("../util");var $=util.$;var TEXTSELECTOR_NS="annotator-textselector";function isAnnotator(element){var elAndParents=$(element).parents().addBack();return elAndParents.filter("[class^=annotator-]").length!==0}function TextSelector(element,options){this.element=element;this.options=$.extend(true,{},TextSelector.options,options);this.onSelection=this.options.onSelection;if(typeof this.element.ownerDocument!=="undefined"&&this.element.ownerDocument!==null){var self=this;this.document=this.element.ownerDocument;$(this.document.body).on("mouseup."+TEXTSELECTOR_NS,function(e){self._checkForEndSelection(e)})}else{console.warn("You created an instance of the TextSelector on an "+"element that doesn't have an ownerDocument. This won't "+"work! Please ensure the element is added to the DOM "+"before the plugin is configured:",this.element)}}TextSelector.prototype.destroy=function(){if(this.document){$(this.document.body).off("."+TEXTSELECTOR_NS)}};TextSelector.prototype.captureDocumentSelection=function(){var i,len,ranges=[],rangesToIgnore=[],selection=global.getSelection();if(selection.isCollapsed){return[]}for(i=0;i<selection.rangeCount;i++){var r=selection.getRangeAt(i),browserRange=new xpathRange.Range.BrowserRange(r),normedRange=browserRange.normalize().limit(this.element);if(normedRange===null){rangesToIgnore.push(r)}else{ranges.push(normedRange)}}selection.removeAllRanges();for(i=0,len=rangesToIgnore.length;i<len;i++){selection.addRange(rangesToIgnore[i])}for(i=0,len=ranges.length;i<len;i++){var range=ranges[i],drange=this.document.createRange();drange.setStartBefore(range.start);drange.setEndAfter(range.end);selection.addRange(drange)}return ranges};TextSelector.prototype._checkForEndSelection=function(event){var self=this;var _nullSelection=function(){if(typeof self.onSelection==="function"){self.onSelection([],event)}};var selectedRanges=this.captureDocumentSelection();if(selectedRanges.length===0){_nullSelection();return}for(var i=0,len=selectedRanges.length;i<len;i++){var container=selectedRanges[i].commonAncestor;if($(container).hasClass("annotator-hl")){container=$(container).parents("[class!=annotator-hl]")[0]}if(isAnnotator(container)){_nullSelection();return}}if(typeof this.onSelection==="function"){this.onSelection(selectedRanges,event)}};TextSelector.options={onSelection:null};exports.TextSelector=TextSelector}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../util":30,"xpath-range":8}],28:[function(require,module,exports){"use strict";var Widget=require("./widget").Widget,util=require("../util");var $=util.$,_t=util.gettext;var NS="annotator-viewer";function parseLinks(data,rel,cond){cond=$.extend({},cond,{rel:rel});var results=[];for(var i=0,len=data.length;i<len;i++){var d=data[i],match=true;for(var k in cond){if(cond.hasOwnProperty(k)&&d[k]!==cond[k]){match=false;break}}if(match){results.push(d)}}return results}var Viewer=exports.Viewer=Widget.extend({constructor:function(options){Widget.call(this,options);this.itemTemplate=Viewer.itemTemplate;this.fields=[];this.annotations=[];this.hideTimer=null;this.hideTimerDfd=null;this.hideTimerActivity=null;this.mouseDown=false;this.render=function(annotation){if(annotation.text){return util.escapeHtml(annotation.text)}else{return"<i>"+_t("No comment")+"</i>"}};var self=this;if(this.options.defaultFields){this.addField({load:function(field,annotation){$(field).html(self.render(annotation))}})}if(typeof this.options.onEdit!=="function"){throw new TypeError("onEdit callback must be a function")}if(typeof this.options.onDelete!=="function"){throw new TypeError("onDelete callback must be a function")}if(typeof this.options.permitEdit!=="function"){throw new TypeError("permitEdit callback must be a function")}if(typeof this.options.permitDelete!=="function"){throw new TypeError("permitDelete callback must be a function")}if(this.options.autoViewHighlights){this.document=this.options.autoViewHighlights.ownerDocument;$(this.options.autoViewHighlights).on("mouseover."+NS,".annotator-hl",function(event){if(event.target===this){self._onHighlightMouseover(event)}}).on("mouseleave."+NS,".annotator-hl",function(){self._startHideTimer()});$(this.document.body).on("mousedown."+NS,function(e){if(e.which===1){self.mouseDown=true}}).on("mouseup."+NS,function(e){if(e.which===1){self.mouseDown=false}})}this.element.on("click."+NS,".annotator-edit",function(e){self._onEditClick(e)}).on("click."+NS,".annotator-delete",function(e){self._onDeleteClick(e)}).on("mouseenter."+NS,function(){self._clearHideTimer()}).on("mouseleave."+NS,function(){self._startHideTimer()})},destroy:function(){if(this.options.autoViewHighlights){$(this.options.autoViewHighlights).off("."+NS);$(this.document.body).off("."+NS)}this.element.off("."+NS);Widget.prototype.destroy.call(this)},show:function(position){if(typeof position!=="undefined"&&position!==null){this.element.css({top:position.top,left:position.left})}var controls=this.element.find(".annotator-controls").addClass(this.classes.showControls);var self=this;setTimeout(function(){controls.removeClass(self.classes.showControls)},500);Widget.prototype.show.call(this)},load:function(annotations,position){this.annotations=annotations||[];var list=this.element.find("ul:first").empty();for(var i=0,len=this.annotations.length;i<len;i++){var annotation=this.annotations[i];this._annotationItem(annotation).appendTo(list).data("annotation",annotation)}this.show(position)},setRenderer:function(renderer){this.render=renderer},_annotationItem:function(annotation){var item=$(this.itemTemplate).clone();var controls=item.find(".annotator-controls"),link=controls.find(".annotator-link"),edit=controls.find(".annotator-edit"),del=controls.find(".annotator-delete");var links=parseLinks(annotation.links||[],"alternate",{type:"text/html"});var hasValidLink=links.length>0&&typeof links[0].href!=="undefined"&&links[0].href!==null;if(hasValidLink){link.attr("href",links[0].href)}else{link.remove()}var controller={};if(this.options.permitEdit(annotation)){controller.showEdit=function(){edit.removeAttr("disabled")};controller.hideEdit=function(){edit.attr("disabled","disabled")}}else{edit.remove()}if(this.options.permitDelete(annotation)){controller.showDelete=function(){del.removeAttr("disabled")};controller.hideDelete=function(){del.attr("disabled","disabled")}}else{del.remove()}for(var i=0,len=this.fields.length;i<len;i++){var field=this.fields[i];var element=$(field.element).clone().appendTo(item)[0];field.load(element,annotation,controller)}return item},addField:function(options){var field=$.extend({load:function(){}},options);field.element=$("<div />")[0];this.fields.push(field);return this},_onEditClick:function(event){var item=$(event.target).parents(".annotator-annotation").data("annotation");this.hide();this.options.onEdit(item)},_onDeleteClick:function(event){if(window.confirm(_t("Delete this annotation?"))){var item=$(event.target).parents(".annotator-annotation").data("annotation");this.hide();this.options.onDelete(item)}},_onHighlightMouseover:function(event){if(this.mouseDown){return}var self=this;this._startHideTimer(true).done(function(){var annotations=$(event.target).parents(".annotator-hl").addBack().map(function(_,elem){return $(elem).data("annotation")}).toArray();self.load(annotations,util.mousePosition(event))})},_startHideTimer:function(activity){if(typeof activity==="undefined"||activity===null){activity=false}if(this.hideTimer){if(activity===false||this.hideTimerActivity===activity){return this.hideTimerDfd}else{this._clearHideTimer()}}var timeout;if(activity){timeout=this.options.activityDelay}else{timeout=this.options.inactivityDelay}this.hideTimerDfd=$.Deferred();if(!this.isShown()){this.hideTimer=null;this.hideTimerDfd.resolve();this.hideTimerActivity=null}else{var self=this;this.hideTimer=setTimeout(function(){self.hide();self.hideTimerDfd.resolve();self.hideTimer=null},timeout);this.hideTimerActivity=Boolean(activity)}return this.hideTimerDfd.promise()},_clearHideTimer:function(){clearTimeout(this.hideTimer);this.hideTimer=null;this.hideTimerDfd.reject();this.hideTimerActivity=null}});Viewer.classes={showControls:"annotator-visible"};Viewer.template=['<div class="annotator-outer annotator-viewer annotator-hide">',' <ul class="annotator-widget annotator-listing"></ul>',"</div>"].join("\n");Viewer.itemTemplate=['<li class="annotator-annotation annotator-item">',' <span class="annotator-controls">',' <a href="#"',' title="'+_t("View as webpage")+'"',' class="annotator-link">'+_t("View as webpage")+"</a>",' <button type="button"',' title="'+_t("Edit")+'"',' class="annotator-edit">'+_t("Edit")+"</button>",' <button type="button"',' title="'+_t("Delete")+'"',' class="annotator-delete">'+_t("Delete")+"</button>"," </span>","</li>"].join("\n");Viewer.options={defaultFields:true,inactivityDelay:500,activityDelay:100,permitEdit:function(){return false},permitDelete:function(){return false},autoViewHighlights:null,onEdit:function(){},onDelete:function(){}};exports.standalone=function standalone(options){var widget;if(typeof options==="undefined"||options===null){options={}}return{start:function(app){var ident=app.registry.getUtility("identityPolicy");var authz=app.registry.getUtility("authorizationPolicy");if(typeof options.onEdit==="undefined"){options.onEdit=function(annotation){app.annotations.update(annotation)}}if(typeof options.onDelete==="undefined"){options.onDelete=function(annotation){app.annotations["delete"](annotation)}}if(typeof options.permitEdit==="undefined"){options.permitEdit=function(annotation){return authz.permits("update",annotation,ident.who())}}if(typeof options.permitDelete==="undefined"){options.permitDelete=function(annotation){return authz.permits("delete",annotation,ident.who())}}widget=new exports.Viewer(options)},destroy:function(){widget.destroy()}}}},{"../util":30,"./widget":29}],29:[function(require,module,exports){(function(global){"use strict";var extend=require("backbone-extend-standalone");var util=require("../util");var $=util.$;function Widget(options){this.element=$(this.constructor.template);this.classes=$.extend({},Widget.classes,this.constructor.classes);this.options=$.extend({},Widget.options,this.constructor.options,options);this.extensionsInstalled=false}Widget.prototype.destroy=function(){this.element.remove()};Widget.prototype.installExtensions=function(){if(this.options.extensions){for(var i=0,len=this.options.extensions.length;i<len;i++){var extension=this.options.extensions[i];extension(this)}}};Widget.prototype._maybeInstallExtensions=function(){if(!this.extensionsInstalled){this.extensionsInstalled=true;this.installExtensions()}};Widget.prototype.attach=function(){this.element.appendTo(this.options.appendTo);this._maybeInstallExtensions()};Widget.prototype.show=function(){this.element.removeClass(this.classes.hide);this.checkOrientation()};Widget.prototype.hide=function(){$(this.element).addClass(this.classes.hide)};Widget.prototype.isShown=function(){return!$(this.element).hasClass(this.classes.hide)};Widget.prototype.checkOrientation=function(){this.resetOrientation();var $win=$(global),$widget=this.element.children(":first"),offset=$widget.offset(),viewport={top:$win.scrollTop(),right:$win.width()+$win.scrollLeft()},current={top:offset.top,right:offset.left+$widget.width()};if(current.top-viewport.top<0){this.invertY()}if(current.right-viewport.right>0){this.invertX()}return this};Widget.prototype.resetOrientation=function(){this.element.removeClass(this.classes.invert.x).removeClass(this.classes.invert.y);return this};Widget.prototype.invertX=function(){this.element.addClass(this.classes.invert.x);return this};Widget.prototype.invertY=function(){this.element.addClass(this.classes.invert.y);return this};Widget.prototype.isInvertedY=function(){return this.element.hasClass(this.classes.invert.y)};Widget.prototype.isInvertedX=function(){return this.element.hasClass(this.classes.invert.x)};Widget.classes={hide:"annotator-hide",invert:{x:"annotator-invert-x",y:"annotator-invert-y"}};Widget.template="<div></div>";Widget.options={appendTo:"body"};Widget.extend=extend;exports.Widget=Widget}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../util":30,"backbone-extend-standalone":3}],30:[function(require,module,exports){(function(global){"use strict";var $=require("jquery");var Promise=require("es6-promise").Promise;var ESCAPE_MAP={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function escapeHtml(string){return String(string).replace(/[&<>"'\/]/g,function(c){return ESCAPE_MAP[c]})}var gettext=function(){if(typeof global.Gettext==="function"){var _gettext=new global.Gettext({domain:"annotator"});return function(msgid){return _gettext.gettext(msgid)}}return function(msgid){return msgid}}();function mousePosition(event){var body=global.document.body;var offset={top:0,left:0};if($(body).css("position")!=="static"){offset=$(body).offset()}return{top:event.pageY-offset.top,left:event.pageX-offset.left}}exports.$=$;exports.Promise=Promise;exports.gettext=gettext;exports.escapeHtml=escapeHtml;exports.mousePosition=mousePosition}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"es6-promise":5,jquery:7}]},{},[1])(1)}); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/bookmarklet.js b/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/bookmarklet.js deleted file mode 100644 index 2afdfc3c..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/bookmarklet.js +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | |||
2 | top["bookmarklet-url@wallabag.org"]=""+"<!DOCTYPE html>"+"<html>"+"<head>"+"<title>bag it!</title>"+'<link rel="icon" href="tpl/img/favicon.ico" />'+"</head>"+"<body>"+"<script>"+"window.onload=function(){"+"window.setTimeout(function(){"+"history.back();"+"},250);"+"};"+"</scr"+"ipt>"+"</body>"+"</html>" | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/jquery-2.0.3.min.js b/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/jquery-2.0.3.min.js deleted file mode 100644 index a4dd0a2f..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/jquery-2.0.3.min.js +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | (function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.attachEvent&&r!==r.top&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ut(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[v]&&(r=bt(r)),i&&!i[v]&&(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=yt(function(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return bt(l>1&&vt(f),l>1&&mt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&wt(e.slice(l,r)),o>r&&wt(e=e.slice(r)),o>r&&mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split("").sort(S).join("")===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||lt("type|href|height|width",function(e,t,n){return n?undefined:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||lt("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&&"string"==typeof t&&n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ct={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1></$2>")+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[q.expando],o&&(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&&delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=q.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(xt[0].contentWindow||xt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=Mt(e,t),xt.detach()),Nt[e]=n),n}function Mt(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,t){x.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&bt.test(x.css(e,"display"))?x.swap(e,Et,function(){return Pt(e,t,r)}):Pt(e,t,r):undefined},set:function(e,n,r){var i=r&&qt(e);return Ot(e,n,r?Ft(e,t,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,t){return t?x.swap(e,{display:"inline-block"},vt,[e,"marginRight"]):undefined}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,t){x.cssHooks[t]={get:function(e,n){return n?(n=vt(e,t),Ct.test(n)?x(e).position()[t]+"px":n):undefined}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+jt[r]+t]=o[r]||o[r-2]||o[0];return i}},wt.test(e)||(x.cssHooks[e+t].set=Ot)});var Wt=/%20/g,$t=/\[\]$/,Bt=/\r?\n/g,It=/^(?:submit|button|image|reset|file)$/i,zt=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&zt.test(this.nodeName)&&!It.test(e)&&(this.checked||!ot.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(Bt,"\r\n")}}):{name:t.name,value:n.replace(Bt,"\r\n")}}).get()}}),x.param=function(e,t){var n,r=[],i=function(e,t){t=x.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(t===undefined&&(t=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){i(this.name,this.value)});else for(n in e)_t(n,e[n],t,i);return r.join("&").replace(Wt,"+")};function _t(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||$t.test(e)?r(e,i):_t(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)_t(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Xt,Ut,Yt=x.now(),Vt=/\?/,Gt=/#.*$/,Jt=/([?&])_=[^&]*/,Qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Kt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Zt=/^(?:GET|HEAD)$/,en=/^\/\//,tn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,nn=x.fn.load,rn={},on={},sn="*/".concat("*");try{Ut=i.href}catch(an){Ut=o.createElement("a"),Ut.href="",Ut=Ut.href}Xt=tn.exec(Ut.toLowerCase())||[];function un(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function ln(e,t,n,r){var i={},o=e===on;function s(a){var u;return i[a]=!0,x.each(e[a]||[],function(e,a){var l=a(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):undefined:(t.dataTypes.unshift(l),s(l),!1)}),u}return s(t.dataTypes[0])||!i["*"]&&s("*")}function cn(e,t){var n,r,i=x.ajaxSettings.flatOptions||{};for(n in t)t[n]!==undefined&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,t,n){if("string"!=typeof e&&nn)return nn.apply(this,arguments);var r,i,o,s=this,a=e.indexOf(" ");return a>=0&&(r=e.slice(a),e=e.slice(0,a)),x.isFunction(t)?(n=t,t=undefined):t&&"object"==typeof t&&(i="POST"),s.length>0&&x.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){o=arguments,s.html(r?x("<div>").append(x.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){s.each(n,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ut,type:"GET",isLocal:Kt.test(Xt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":sn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?cn(cn(e,x.ajaxSettings),t):cn(x.ajaxSettings,e)},ajaxPrefilter:un(rn),ajaxTransport:un(on),ajax:function(e,t){"object"==typeof e&&(t=e,e=undefined),t=t||{};var n,r,i,o,s,a,u,l,c=x.ajaxSetup({},t),p=c.context||c,f=c.context&&(p.nodeType||p.jquery)?x(p):x.event,h=x.Deferred(),d=x.Callbacks("once memory"),g=c.statusCode||{},m={},y={},v=0,b="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===v){if(!o){o={};while(t=Qt.exec(i))o[t[1].toLowerCase()]=t[2]}t=o[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===v?i:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return v||(e=y[n]=y[n]||e,m[e]=t),this},overrideMimeType:function(e){return v||(c.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>v)for(t in e)g[t]=[g[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||b;return n&&n.abort(t),k(0,t),this}};if(h.promise(T).complete=d.add,T.success=T.done,T.error=T.fail,c.url=((e||c.url||Ut)+"").replace(Gt,"").replace(en,Xt[1]+"//"),c.type=t.method||t.type||c.method||c.type,c.dataTypes=x.trim(c.dataType||"*").toLowerCase().match(w)||[""],null==c.crossDomain&&(a=tn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===Xt[1]&&a[2]===Xt[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(Xt[3]||("http:"===Xt[1]?"80":"443")))),c.data&&c.processData&&"string"!=typeof c.data&&(c.data=x.param(c.data,c.traditional)),ln(rn,c,t,T),2===v)return T;u=c.global,u&&0===x.active++&&x.event.trigger("ajaxStart"),c.type=c.type.toUpperCase(),c.hasContent=!Zt.test(c.type),r=c.url,c.hasContent||(c.data&&(r=c.url+=(Vt.test(r)?"&":"?")+c.data,delete c.data),c.cache===!1&&(c.url=Jt.test(r)?r.replace(Jt,"$1_="+Yt++):r+(Vt.test(r)?"&":"?")+"_="+Yt++)),c.ifModified&&(x.lastModified[r]&&T.setRequestHeader("If-Modified-Since",x.lastModified[r]),x.etag[r]&&T.setRequestHeader("If-None-Match",x.etag[r])),(c.data&&c.hasContent&&c.contentType!==!1||t.contentType)&&T.setRequestHeader("Content-Type",c.contentType),T.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+("*"!==c.dataTypes[0]?", "+sn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)T.setRequestHeader(l,c.headers[l]);if(c.beforeSend&&(c.beforeSend.call(p,T,c)===!1||2===v))return T.abort();b="abort";for(l in{success:1,error:1,complete:1})T[l](c[l]);if(n=ln(on,c,t,T)){T.readyState=1,u&&f.trigger("ajaxSend",[T,c]),c.async&&c.timeout>0&&(s=setTimeout(function(){T.abort("timeout")},c.timeout));try{v=1,n.send(m,k)}catch(C){if(!(2>v))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,t,o,a){var l,m,y,b,w,C=t;2!==v&&(v=2,s&&clearTimeout(s),n=undefined,i=a||"",T.readyState=e>0?4:0,l=e>=200&&300>e||304===e,o&&(b=pn(c,T,o)),b=fn(c,b,T,l),l?(c.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(x.lastModified[r]=w),w=T.getResponseHeader("etag"),w&&(x.etag[r]=w)),204===e||"HEAD"===c.type?C="nocontent":304===e?C="notmodified":(C=b.state,m=b.data,y=b.error,l=!y)):(y=C,(e||!C)&&(C="error",0>e&&(e=0))),T.status=e,T.statusText=(t||C)+"",l?h.resolveWith(p,[m,C,T]):h.rejectWith(p,[T,C,y]),T.statusCode(g),g=undefined,u&&f.trigger(l?"ajaxSuccess":"ajaxError",[T,c,l?m:y]),d.fireWith(p,[T,C]),u&&(f.trigger("ajaxComplete",[T,c]),--x.active||x.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,t){return x.get(e,undefined,t,"script")}}),x.each(["get","post"],function(e,t){x[t]=function(e,n,r,i){return x.isFunction(n)&&(i=i||r,r=n,n=undefined),x.ajax({url:e,type:t,dataType:i,data:n,success:r})}});function pn(e,t,n){var r,i,o,s,a=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),r===undefined&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}s||(s=i)}o=o||s}return o?(o!==u[0]&&u.unshift(o),n[o]):undefined}function fn(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(s=l[u+" "+o]||l["* "+o],!s)for(i in l)if(a=i.split(" "),a[1]===o&&(s=l[u+" "+a[0]]||l["* "+a[0]])){s===!0?s=l[i]:l[i]!==!0&&(o=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&e["throws"])t=s(t);else try{t=s(t)}catch(p){return{state:"parsererror",error:s?p:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),x.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=x("<script>").prop({async:!0,charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),o.head.appendChild(t[0])},abort:function(){n&&n()}}}});var hn=[],dn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=hn.pop()||x.expando+"_"+Yt++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,s,a=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");return a||"jsonp"===t.dataTypes[0]?(i=t.jsonpCallback=x.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(Vt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return s||x.error(i+" was not called"),s[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){s=arguments},r.always(function(){e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,hn.push(i)),s&&x.isFunction(o)&&o(s[0]),s=o=undefined}),"script"):undefined}),x.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var gn=x.ajaxSettings.xhr(),mn={0:200,1223:204},yn=0,vn={};e.ActiveXObject&&x(e).on("unload",function(){for(var e in vn)vn[e]();vn=undefined}),x.support.cors=!!gn&&"withCredentials"in gn,x.support.ajax=gn=!!gn,x.ajaxTransport(function(e){var t;return x.support.cors||gn&&!e.crossDomain?{send:function(n,r){var i,o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)s[i]=e.xhrFields[i];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)s.setRequestHeader(i,n[i]);t=function(e){return function(){t&&(delete vn[o],t=s.onload=s.onerror=null,"abort"===e?s.abort():"error"===e?r(s.status||404,s.statusText):r(mn[s.status]||s.status,s.statusText,"string"==typeof s.responseText?{text:s.responseText}:undefined,s.getAllResponseHeaders()))}},s.onload=t(),s.onerror=t("error"),t=vn[o=yn++]=t("abort"),s.send(e.hasContent&&e.data||null)},abort:function(){t&&t()}}:undefined});var xn,bn,wn=/^(?:toggle|show|hide)$/,Tn=RegExp("^(?:([+-])=|)("+b+")([a-z%]*)$","i"),Cn=/queueHooks$/,kn=[An],Nn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Tn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),s=(x.cssNumber[e]||"px"!==o&&+r)&&Tn.exec(x.css(n.elem,e)),a=1,u=20;if(s&&s[3]!==o){o=o||s[3],i=i||[],s=+r||1;do a=a||".5",s/=a,x.style(n.elem,e,s+o);while(a!==(a=n.cur()/r)&&1!==a&&--u)}return i&&(s=n.start=+s||+r||0,n.unit=o,n.end=i[1]?s+(i[1]+1)*i[2]:+i[2]),n}]};function En(){return setTimeout(function(){xn=undefined}),xn=x.now()}function Sn(e,t,n){var r,i=(Nn[t]||[]).concat(Nn["*"]),o=0,s=i.length;for(;s>o;o++)if(r=i[o].call(n,t,e))return r}function jn(e,t,n){var r,i,o=0,s=kn.length,a=x.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=xn||En(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,s=0,u=l.tweens.length;for(;u>s;s++)l.tweens[s].run(o);return a.notifyWith(e,[l,o,n]),1>o&&u?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:xn||En(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),c=l.props;for(Dn(c,l.opts.specialEasing);s>o;o++)if(r=kn[o].call(l,e,c,l.opts))return r;return x.map(c,Sn,l),x.isFunction(l.opts.start)&&l.opts.start.call(e,l),x.fx.timer(x.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function Dn(e,t){var n,r,i,o,s;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),s=x.cssHooks[r],s&&"expand"in s){o=s.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(jn,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Nn[n]=Nn[n]||[],Nn[n].unshift(t)},prefilter:function(e,t){t?kn.unshift(e):kn.push(e)}});function An(e,t,n){var r,i,o,s,a,u,l=this,c={},p=e.style,f=e.nodeType&&Lt(e),h=q.get(e,"fxshow");n.queue||(a=x._queueHooks(e,"fx"),null==a.unqueued&&(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,l.always(function(){l.always(function(){a.unqueued--,x.queue(e,"fx").length||a.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",l.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],wn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show")){if("show"!==i||!h||h[r]===undefined)continue;f=!0}c[r]=h&&h[r]||x.style(e,r)}if(!x.isEmptyObject(c)){h?"hidden"in h&&(f=h.hidden):h=q.access(e,"fxshow",{}),o&&(h.hidden=!f),f?x(e).show():l.done(function(){x(e).hide()}),l.done(function(){var t;q.remove(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)s=Sn(f?h[r]:0,r,l),r in h||(h[r]=s.start,f&&(s.end=s.start,s.start="width"===r||"height"===r?1:0))}}function Ln(e,t,n,r,i){return new Ln.prototype.init(e,t,n,r,i)}x.Tween=Ln,Ln.prototype={constructor:Ln,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=Ln.propHooks[this.prop];return e&&e.get?e.get(this):Ln.propHooks._default.get(this)},run:function(e){var t,n=Ln.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ln.propHooks._default.set(this),this}},Ln.prototype.init.prototype=Ln.prototype,Ln.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Ln.propHooks.scrollTop=Ln.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(qn(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Lt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),s=function(){var t=jn(this,x.extend({},e),o);(i||q.get(this,"finish"))&&t.stop(!0)};return s.finish=s,i||o.queue===!1?this.each(s):this.queue(o.queue,s)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=undefined),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=x.timers,s=q.get(this);if(i)s[i]&&s[i].stop&&r(s[i]);else for(i in s)s[i]&&s[i].stop&&Cn.test(i)&&r(s[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=q.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,s=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;s>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function qn(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=jt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:qn("show"),slideUp:qn("hide"),slideToggle:qn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=Ln.prototype.init,x.fx.tick=function(){var e,t=x.timers,n=0;for(xn=x.now();t.length>n;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||x.fx.stop(),xn=undefined},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){bn||(bn=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(bn),bn=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===undefined?this:this.each(function(t){x.offset.setOffset(this,e,t)});var t,n,i=this[0],o={top:0,left:0},s=i&&i.ownerDocument;if(s)return t=s.documentElement,x.contains(t,i)?(typeof i.getBoundingClientRect!==r&&(o=i.getBoundingClientRect()),n=Hn(s),{top:o.top+n.pageYOffset-t.clientTop,left:o.left+n.pageXOffset-t.clientLeft}):o},x.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,l,c=x.css(e,"position"),p=x(e),f={};"static"===c&&(e.style.position="relative"),a=p.offset(),o=x.css(e,"top"),u=x.css(e,"left"),l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1,l?(r=p.position(),s=r.top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(u)||0),x.isFunction(t)&&(t=t.call(e,n,a)),null!=t.top&&(f.top=t.top-a.top+s),null!=t.left&&(f.left=t.left-a.left+i),"using"in t?t.using.call(e,f):p.css(f)}},x.fn.extend({position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===x.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(r=e.offset()),r.top+=x.css(e[0],"borderTopWidth",!0),r.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-x.css(n,"marginTop",!0),left:t.left-r.left-x.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,n){var r="pageYOffset"===n;x.fn[t]=function(i){return x.access(this,function(t,i,o){var s=Hn(t);return o===undefined?s?s[n]:t[i]:(s?s.scrollTo(r?e.pageXOffset:o,r?o:e.pageYOffset):t[i]=o,undefined)},t,i,arguments.length,null)}});function Hn(e){return x.isWindow(e)?e:9===e.nodeType&&e.defaultView}x.each({Height:"height",Width:"width"},function(e,t){x.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){x.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),s=n||(r===!0||i===!0?"margin":"border");return x.access(this,function(t,n,r){var i;return x.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):r===undefined?x.css(t,n,s):x.style(t,n,r,s)},t,o?r:undefined,o,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}),"object"==typeof e&&"object"==typeof e.document&&(e.jQuery=e.$=x)})(window); \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/jquery.cookie.js b/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/jquery.cookie.js deleted file mode 100755 index 92719000..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/jquery.cookie.js +++ /dev/null | |||
@@ -1,117 +0,0 @@ | |||
1 | /*! | ||
2 | * jQuery Cookie Plugin v1.4.0 | ||
3 | * https://github.com/carhartl/jquery-cookie | ||
4 | * | ||
5 | * Copyright 2013 Klaus Hartl | ||
6 | * Released under the MIT license | ||
7 | */ | ||
8 | (function (factory) { | ||
9 | if (typeof define === 'function' && define.amd) { | ||
10 | // AMD. Register as anonymous module. | ||
11 | define(['jquery'], factory); | ||
12 | } else { | ||
13 | // Browser globals. | ||
14 | factory(jQuery); | ||
15 | } | ||
16 | }(function ($) { | ||
17 | |||
18 | var pluses = /\+/g; | ||
19 | |||
20 | function encode(s) { | ||
21 | return config.raw ? s : encodeURIComponent(s); | ||
22 | } | ||
23 | |||
24 | function decode(s) { | ||
25 | return config.raw ? s : decodeURIComponent(s); | ||
26 | } | ||
27 | |||
28 | function stringifyCookieValue(value) { | ||
29 | return encode(config.json ? JSON.stringify(value) : String(value)); | ||
30 | } | ||
31 | |||
32 | function parseCookieValue(s) { | ||
33 | if (s.indexOf('"') === 0) { | ||
34 | // This is a quoted cookie as according to RFC2068, unescape... | ||
35 | s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); | ||
36 | } | ||
37 | |||
38 | try { | ||
39 | // Replace server-side written pluses with spaces. | ||
40 | // If we can't decode the cookie, ignore it, it's unusable. | ||
41 | s = decodeURIComponent(s.replace(pluses, ' ')); | ||
42 | } catch(e) { | ||
43 | return; | ||
44 | } | ||
45 | |||
46 | try { | ||
47 | // If we can't parse the cookie, ignore it, it's unusable. | ||
48 | return config.json ? JSON.parse(s) : s; | ||
49 | } catch(e) {} | ||
50 | } | ||
51 | |||
52 | function read(s, converter) { | ||
53 | var value = config.raw ? s : parseCookieValue(s); | ||
54 | return $.isFunction(converter) ? converter(value) : value; | ||
55 | } | ||
56 | |||
57 | var config = $.cookie = function (key, value, options) { | ||
58 | |||
59 | // Write | ||
60 | if (value !== undefined && !$.isFunction(value)) { | ||
61 | options = $.extend({}, config.defaults, options); | ||
62 | |||
63 | if (typeof options.expires === 'number') { | ||
64 | var days = options.expires, t = options.expires = new Date(); | ||
65 | t.setDate(t.getDate() + days); | ||
66 | } | ||
67 | |||
68 | return (document.cookie = [ | ||
69 | encode(key), '=', stringifyCookieValue(value), | ||
70 | options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE | ||
71 | options.path ? '; path=' + options.path : '', | ||
72 | options.domain ? '; domain=' + options.domain : '', | ||
73 | options.secure ? '; secure' : '' | ||
74 | ].join('')); | ||
75 | } | ||
76 | |||
77 | // Read | ||
78 | |||
79 | var result = key ? undefined : {}; | ||
80 | |||
81 | // To prevent the for loop in the first place assign an empty array | ||
82 | // in case there are no cookies at all. Also prevents odd result when | ||
83 | // calling $.cookie(). | ||
84 | var cookies = document.cookie ? document.cookie.split('; ') : []; | ||
85 | |||
86 | for (var i = 0, l = cookies.length; i < l; i++) { | ||
87 | var parts = cookies[i].split('='); | ||
88 | var name = decode(parts.shift()); | ||
89 | var cookie = parts.join('='); | ||
90 | |||
91 | if (key && key === name) { | ||
92 | // If second argument (value) is a function it's a converter... | ||
93 | result = read(cookie, value); | ||
94 | break; | ||
95 | } | ||
96 | |||
97 | // Prevent storing a cookie that we couldn't decode. | ||
98 | if (!key && (cookie = read(cookie)) !== undefined) { | ||
99 | result[name] = cookie; | ||
100 | } | ||
101 | } | ||
102 | |||
103 | return result; | ||
104 | }; | ||
105 | |||
106 | config.defaults = {}; | ||
107 | |||
108 | $.removeCookie = function (key, options) { | ||
109 | if ($.cookie(key) !== undefined) { | ||
110 | // Must not alter options, thus extending a fresh object... | ||
111 | $.cookie(key, '', $.extend({}, options, { expires: -1 })); | ||
112 | return true; | ||
113 | } | ||
114 | return false; | ||
115 | }; | ||
116 | |||
117 | })); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/restoreScroll.js b/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/restoreScroll.js deleted file mode 100644 index 331c9e19..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/_global/js/restoreScroll.js +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | function supportsLocalStorage() { | ||
2 | try { | ||
3 | return 'localStorage' in window && window['localStorage'] !== null; | ||
4 | } catch (e) { | ||
5 | return false; | ||
6 | } | ||
7 | } | ||
8 | |||
9 | function savePercent(id, percent) { | ||
10 | if (!supportsLocalStorage()) { return false; } | ||
11 | localStorage["poche.article." + id + ".percent"] = percent; | ||
12 | return true; | ||
13 | } | ||
14 | |||
15 | function retrievePercent(id) { | ||
16 | if (!supportsLocalStorage()) { return false; } | ||
17 | |||
18 | var bheight = $(document).height(); | ||
19 | var percent = localStorage["poche.article." + id + ".percent"]; | ||
20 | var scroll = bheight * percent; | ||
21 | |||
22 | $('html,body').animate({scrollTop: scroll}, 'fast'); | ||
23 | |||
24 | return true; | ||
25 | } \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/font.css b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/font.css deleted file mode 100755 index 7c02a16f..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/font.css +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | @font-face { | ||
2 | font-family: 'PT Sans'; | ||
3 | font-style: normal; | ||
4 | font-weight: 700; | ||
5 | src: local('PT Sans Bold'), local('PTSans-Bold'), url(../fonts/ptsans.woff) format('woff'); | ||
6 | } | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/main.css b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/main.css deleted file mode 100755 index ba430cc4..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/main.css +++ /dev/null | |||
@@ -1,1120 +0,0 @@ | |||
1 | /* ========================================================================== | ||
2 | Sommaire | ||
3 | |||
4 | 1 = Style Guide | ||
5 | 2 = Layout | ||
6 | 3 = Pictos | ||
7 | 4 = Messages | ||
8 | 5 = Article | ||
9 | 6 = Media queries | ||
10 | |||
11 | ========================================================================== */ | ||
12 | |||
13 | html { | ||
14 | min-height: 100%; | ||
15 | } | ||
16 | |||
17 | body { | ||
18 | background-color: #EEE; | ||
19 | } | ||
20 | |||
21 | .login { | ||
22 | background-color: #333; | ||
23 | } | ||
24 | |||
25 | .login #main { | ||
26 | padding: 0; | ||
27 | margin: 0; | ||
28 | } | ||
29 | |||
30 | .login form { | ||
31 | background-color: #FFF; | ||
32 | padding: 1.5em; | ||
33 | box-shadow: 0 1px 8px rgba(0,0,0,0.9); | ||
34 | width: 20em; | ||
35 | position: absolute; | ||
36 | top: 8em; | ||
37 | left: 50%; | ||
38 | margin-left: -10em; | ||
39 | } | ||
40 | |||
41 | .login .logo { | ||
42 | position: absolute; | ||
43 | top: 2em; | ||
44 | left: 50%; | ||
45 | margin-left: -55px; | ||
46 | } | ||
47 | |||
48 | /* ========================================================================== | ||
49 | 1 = Style Guide | ||
50 | ========================================================================== */ | ||
51 | |||
52 | ::selection { | ||
53 | color: #FFF; | ||
54 | background-color: #000; | ||
55 | } | ||
56 | |||
57 | .desktopHide { | ||
58 | display: none; | ||
59 | } | ||
60 | |||
61 | .logo { | ||
62 | position: fixed; | ||
63 | z-index: 20; | ||
64 | top: 0.4em; | ||
65 | left: 0.6em; | ||
66 | } | ||
67 | |||
68 | h2, h3, h4 { | ||
69 | font-family: 'PT Sans', sans-serif; | ||
70 | text-transform: uppercase; | ||
71 | } | ||
72 | |||
73 | p, li, label { | ||
74 | color: #666; | ||
75 | } | ||
76 | |||
77 | a { | ||
78 | color: #000; | ||
79 | font-weight: bold; | ||
80 | } | ||
81 | |||
82 | a:hover, a:focus { | ||
83 | text-decoration: none; | ||
84 | } | ||
85 | |||
86 | form fieldset { | ||
87 | border:0; | ||
88 | padding: 0; | ||
89 | margin: 0; | ||
90 | } | ||
91 | |||
92 | form input[type="text"], form input[type="number"], select, form input[type="password"], form input[type="url"], form input[type="email"] { | ||
93 | border: 1px solid #999; | ||
94 | padding: 0.5em 1em; | ||
95 | min-width: 12em; | ||
96 | color: #666; | ||
97 | } | ||
98 | |||
99 | @media screen and (-webkit-min-device-pixel-ratio:0){ | ||
100 | select{ | ||
101 | -webkit-appearance: none; | ||
102 | border-radius: 0; | ||
103 | background: #FFF url(../img/bg-select.png) no-repeat right center; | ||
104 | } | ||
105 | } | ||
106 | |||
107 | .inline .row { | ||
108 | display: inline-block; | ||
109 | margin-right: 0.5em; | ||
110 | } | ||
111 | |||
112 | .inline label { | ||
113 | min-width: 6em; | ||
114 | } | ||
115 | |||
116 | fieldset label { | ||
117 | display: inline-block; | ||
118 | min-width: 12.5em; | ||
119 | color: #666; | ||
120 | } | ||
121 | |||
122 | label { | ||
123 | margin-right: 0.5em; | ||
124 | } | ||
125 | |||
126 | form .row { | ||
127 | margin-bottom: 0.5em; | ||
128 | } | ||
129 | |||
130 | form button, input[type="submit"] { | ||
131 | cursor:pointer; | ||
132 | background-color: #000; | ||
133 | color: #FFF; | ||
134 | border:0; | ||
135 | padding: 0.5em 1em; | ||
136 | display: inline-block; | ||
137 | border:1px solid #000; | ||
138 | } | ||
139 | |||
140 | form button:hover, form button:focus, input[type="submit"]:hover, input[type="submit"]:focus { | ||
141 | background-color: #FFF; | ||
142 | color: #000; | ||
143 | -webkit-transition: all 0.5s ease; | ||
144 | -moz-transition: all 0.5s ease; | ||
145 | -ms-transition: all 0.5s ease; | ||
146 | -o-transition: all 0.5s ease; | ||
147 | transition: all 0.5s ease; | ||
148 | } | ||
149 | |||
150 | #bookmarklet { | ||
151 | cursor: move; | ||
152 | } | ||
153 | |||
154 | h2:after { | ||
155 | content: ""; | ||
156 | height: 4px; | ||
157 | width: 70px; | ||
158 | background-color: #000; | ||
159 | display: block; | ||
160 | } | ||
161 | |||
162 | .links { | ||
163 | padding: 0; | ||
164 | margin: 0; | ||
165 | } | ||
166 | .links li { | ||
167 | list-style: none; | ||
168 | margin: 0; | ||
169 | padding: 0; | ||
170 | } | ||
171 | |||
172 | |||
173 | #links { | ||
174 | position: fixed; | ||
175 | top: 0; | ||
176 | width: 10em; | ||
177 | left: 0; | ||
178 | text-align: right; | ||
179 | background-color: #333; | ||
180 | padding-top: 9.5em; | ||
181 | height: 100%; | ||
182 | box-shadow:inset -4px 0 20px rgba(0,0,0,0.6); | ||
183 | z-index: 15; | ||
184 | } | ||
185 | |||
186 | #main { | ||
187 | margin-left: 13em; | ||
188 | position: relative; | ||
189 | z-index: 10; | ||
190 | padding-right: 5%; | ||
191 | padding-bottom: 1em; | ||
192 | } | ||
193 | |||
194 | #links > li > a { | ||
195 | display: block; | ||
196 | padding: 0.5em 2em 0.5em 1em; | ||
197 | color: #FFF; | ||
198 | position: relative; | ||
199 | text-transform: uppercase; | ||
200 | text-decoration: none; | ||
201 | font-weight: normal; | ||
202 | font-family: 'PT Sans', sans-serif; | ||
203 | -webkit-transition: all 0.5s ease; | ||
204 | -moz-transition: all 0.5s ease; | ||
205 | -ms-transition: all 0.5s ease; | ||
206 | -o-transition: all 0.5s ease; | ||
207 | transition: all 0.5s ease; | ||
208 | } | ||
209 | |||
210 | #links > li > a:hover, #links > li > a:focus { | ||
211 | background-color: #999; | ||
212 | color: #000; | ||
213 | } | ||
214 | |||
215 | #links .current:after { | ||
216 | content: ""; | ||
217 | width: 0; | ||
218 | height: 0; | ||
219 | position: absolute; | ||
220 | border-style: solid; | ||
221 | border-width: 10px; | ||
222 | border-color: transparent #EEE transparent transparent; | ||
223 | right: 0; | ||
224 | top: 50%; | ||
225 | margin-top: -10px; | ||
226 | } | ||
227 | |||
228 | #links li:last-child { | ||
229 | position: fixed; | ||
230 | bottom: 1em; | ||
231 | width: 10em; | ||
232 | } | ||
233 | |||
234 | #links li:last-child a:before { | ||
235 | font-size: 1.2em; | ||
236 | position: relative; | ||
237 | top: 2px; | ||
238 | } | ||
239 | |||
240 | |||
241 | #sort { | ||
242 | padding: 0; | ||
243 | list-style-type: none; | ||
244 | opacity: 0.5; | ||
245 | display: inline-block; | ||
246 | } | ||
247 | |||
248 | #sort li { | ||
249 | display: inline; | ||
250 | font-size: 0.9em; | ||
251 | } | ||
252 | |||
253 | #sort li + li { | ||
254 | margin-left: 10px; | ||
255 | } | ||
256 | |||
257 | #sort a { | ||
258 | padding: 2px 2px 0; | ||
259 | vertical-align: middle; | ||
260 | } | ||
261 | |||
262 | #sort img { | ||
263 | vertical-align: baseline; | ||
264 | } | ||
265 | #sort img:hover { | ||
266 | cursor: pointer; | ||
267 | } | ||
268 | |||
269 | #display-mode { | ||
270 | float: right; | ||
271 | vertical-align: middle; | ||
272 | margin-top: 10px; | ||
273 | margin-bottom: 10px; | ||
274 | opacity: 0.5; | ||
275 | } | ||
276 | #listmode { | ||
277 | width: 16px; | ||
278 | display: inline-block; | ||
279 | text-decoration: none; | ||
280 | } | ||
281 | #listmode a:hover { | ||
282 | opacity: 1; | ||
283 | } | ||
284 | #listmode.tablemode { | ||
285 | background-image: url("../img/baggy/table.png"); | ||
286 | background-repeat: no-repeat; | ||
287 | background-position: bottom; | ||
288 | } | ||
289 | #listmode.listmode { | ||
290 | background-image: url("../img/baggy/list.png"); | ||
291 | background-repeat: no-repeat; | ||
292 | background-position: bottom; | ||
293 | } | ||
294 | |||
295 | |||
296 | /* ========================================================================== | ||
297 | 2 = Layout | ||
298 | ========================================================================== */ | ||
299 | |||
300 | #content { | ||
301 | margin-top: 2em; | ||
302 | min-height: 30em; | ||
303 | } | ||
304 | |||
305 | footer { | ||
306 | text-align: right; | ||
307 | position: relative; | ||
308 | bottom: 0; | ||
309 | right: 5em; | ||
310 | color: #999; | ||
311 | font-size: 0.8em; | ||
312 | font-style: italic; | ||
313 | z-index: 20; | ||
314 | } | ||
315 | |||
316 | footer a { | ||
317 | color: #999; | ||
318 | font-weight: normal; | ||
319 | } | ||
320 | |||
321 | .list-entries { | ||
322 | letter-spacing:-5px; | ||
323 | } | ||
324 | |||
325 | .listmode .entry { | ||
326 | width: 100%!important; | ||
327 | margin-left: 0!important; | ||
328 | } | ||
329 | |||
330 | .list-entries + .results { | ||
331 | margin-bottom: 2em; | ||
332 | } | ||
333 | |||
334 | .estimatedTime .reading-time { | ||
335 | color: #999; | ||
336 | font-style: italic; | ||
337 | font-weight: normal; | ||
338 | font-size: 0.9em; | ||
339 | } | ||
340 | |||
341 | .estimatedTime small { | ||
342 | position: relative; | ||
343 | top: -1px; | ||
344 | } | ||
345 | |||
346 | .entry { | ||
347 | background-color: #FFF; | ||
348 | letter-spacing:normal; | ||
349 | box-shadow: 0 3px 7px rgba(0,0,0,0.3); | ||
350 | display: inline-block; | ||
351 | width: 32%; | ||
352 | margin-bottom: 1.5em; | ||
353 | vertical-align: top; | ||
354 | margin-left: 1.5%; | ||
355 | position: relative; | ||
356 | overflow: hidden; | ||
357 | padding: 1.5em 1.5em 3em 1.5em; | ||
358 | |||
359 | /* Removing CSS transitions because they make the switch from list view to | ||
360 | * table view jerky | ||
361 | */ | ||
362 | /* -webkit-transition: all 0.5s ease; */ | ||
363 | /* -moz-transition: all 0.5s ease; */ | ||
364 | /* -ms-transition: all 0.5s ease; */ | ||
365 | /* -o-transition: all 0.5s ease; */ | ||
366 | /* transition: all 0.5s ease; */ | ||
367 | } | ||
368 | |||
369 | .entry:before { | ||
370 | content: ""; | ||
371 | width: 0; | ||
372 | height: 0; | ||
373 | border-style:solid; | ||
374 | border-color: transparent transparent #000 transparent; | ||
375 | border-width: 10px; | ||
376 | position: absolute; | ||
377 | bottom: 0.3em; | ||
378 | z-index: 10; | ||
379 | right: 1.5em; | ||
380 | -webkit-transition: all 0.5s ease; | ||
381 | -moz-transition: all 0.5s ease; | ||
382 | -ms-transition: all 0.5s ease; | ||
383 | -o-transition: all 0.5s ease; | ||
384 | transition: all 0.5s ease; | ||
385 | } | ||
386 | |||
387 | .entry:after { | ||
388 | content: ""; | ||
389 | position: absolute; | ||
390 | height: 7px; | ||
391 | width: 100%; | ||
392 | bottom: 0; | ||
393 | left: 0; | ||
394 | background-color: #000; | ||
395 | -webkit-transition: all 0.5s ease; | ||
396 | -moz-transition: all 0.5s ease; | ||
397 | -ms-transition: all 0.5s ease; | ||
398 | -o-transition: all 0.5s ease; | ||
399 | transition: all 0.5s ease; | ||
400 | } | ||
401 | |||
402 | .entry:hover { | ||
403 | box-shadow: 0 3px 10px rgba(0,0,0,1); | ||
404 | } | ||
405 | |||
406 | .entry:hover:after { | ||
407 | height: 40px; | ||
408 | } | ||
409 | |||
410 | .entry:hover:before { | ||
411 | bottom: 2.4em; | ||
412 | } | ||
413 | |||
414 | .entry:hover h2 a { | ||
415 | color: #666; | ||
416 | } | ||
417 | |||
418 | .entry h2 { | ||
419 | text-transform: none; | ||
420 | margin-bottom: 0; | ||
421 | line-height: 1.2; | ||
422 | } | ||
423 | |||
424 | .entry h2:after { | ||
425 | content: none; | ||
426 | } | ||
427 | |||
428 | |||
429 | .entry h2 a { | ||
430 | display: block; | ||
431 | text-decoration: none; | ||
432 | color: #000; | ||
433 | word-wrap: break-word; | ||
434 | -webkit-transition: all 0.5s ease; | ||
435 | -moz-transition: all 0.5s ease; | ||
436 | -ms-transition: all 0.5s ease; | ||
437 | -o-transition: all 0.5s ease; | ||
438 | transition: all 0.5s ease; | ||
439 | } | ||
440 | /* | ||
441 | .entry h2 a:after { | ||
442 | content: ""; | ||
443 | position: absolute; | ||
444 | top: 0; | ||
445 | width: 100%; | ||
446 | height: 100%; | ||
447 | left: 0; | ||
448 | } | ||
449 | */ | ||
450 | |||
451 | img.preview { | ||
452 | max-width: 100%; | ||
453 | } | ||
454 | |||
455 | .entry p { | ||
456 | color: #666; | ||
457 | font-size: 0.9em; | ||
458 | line-height: 1.7; | ||
459 | } | ||
460 | |||
461 | .entry h2 a:first-letter { | ||
462 | text-transform: uppercase; | ||
463 | } | ||
464 | |||
465 | .entry:hover .tools { | ||
466 | bottom: 0; | ||
467 | } | ||
468 | |||
469 | .entry .tools { | ||
470 | position: absolute; | ||
471 | bottom: -50px; | ||
472 | left: 0; | ||
473 | width: 100%; | ||
474 | z-index: 10; | ||
475 | padding-right: 0.5em; | ||
476 | text-align: right; | ||
477 | -webkit-transition: all 0.5s ease; | ||
478 | -moz-transition: all 0.5s ease; | ||
479 | -ms-transition: all 0.5s ease; | ||
480 | -o-transition: all 0.5s ease; | ||
481 | transition: all 0.5s ease; | ||
482 | } | ||
483 | |||
484 | .entry .tools a { | ||
485 | color: #666; | ||
486 | text-decoration: none; | ||
487 | display: block; | ||
488 | padding: 0.4em; | ||
489 | } | ||
490 | |||
491 | .entry .tools a:hover { | ||
492 | color: #FFF; | ||
493 | } | ||
494 | |||
495 | .entry .tools li { | ||
496 | display: inline-block; | ||
497 | } | ||
498 | |||
499 | .entry:nth-child(3n+1) { | ||
500 | margin-left: 0; | ||
501 | } | ||
502 | |||
503 | .results { | ||
504 | letter-spacing: -5px; | ||
505 | padding: 0 0 0.5em; | ||
506 | } | ||
507 | |||
508 | .results > * { | ||
509 | display: inline-block; | ||
510 | vertical-align: top; | ||
511 | letter-spacing: normal; | ||
512 | width: 50%; | ||
513 | } | ||
514 | |||
515 | div.pagination ul { | ||
516 | text-align: right; | ||
517 | margin-bottom:50px; | ||
518 | } | ||
519 | |||
520 | .nb-results { | ||
521 | text-align: left; | ||
522 | font-style: italic; | ||
523 | color: #999; | ||
524 | } | ||
525 | |||
526 | div.pagination ul > * { | ||
527 | display: inline-block; | ||
528 | margin-left: 0.5em; | ||
529 | } | ||
530 | |||
531 | div.pagination ul a { | ||
532 | color: #999; | ||
533 | text-decoration: none; | ||
534 | } | ||
535 | |||
536 | div.pagination ul a:hover, div.pagination ul a:focus { | ||
537 | text-decoration: underline; | ||
538 | } | ||
539 | |||
540 | div.pagination ul .disabled { | ||
541 | display: none; | ||
542 | } | ||
543 | |||
544 | div.pagination ul .current { | ||
545 | height: 25px; | ||
546 | padding: 4px 8px; | ||
547 | border: 1px solid #d5d5d5; | ||
548 | text-decoration: none; | ||
549 | font-weight: bold; | ||
550 | color: #000; | ||
551 | background-color: #ccc; | ||
552 | } | ||
553 | |||
554 | /* ========================================================================== | ||
555 | 2.1 = "save a link" related styles | ||
556 | ========================================================================== */ | ||
557 | |||
558 | .popup-form { | ||
559 | background: rgba(0,0,0,0.5); | ||
560 | position: absolute; | ||
561 | top: 0; | ||
562 | left: 10em; | ||
563 | z-index: 20; | ||
564 | height: 100%; | ||
565 | width: 100%; | ||
566 | margin: 0; | ||
567 | margin-top: -30% !important; | ||
568 | padding: 2em; | ||
569 | display: none; | ||
570 | border-left: 1px #EEE solid; | ||
571 | } | ||
572 | |||
573 | .popup-form form { | ||
574 | background-color: #FFF; | ||
575 | position: absolute; | ||
576 | top: 0; | ||
577 | left: 0; | ||
578 | z-index: 20; | ||
579 | border: 10px solid #000; | ||
580 | width: 400px; | ||
581 | height: 200px; | ||
582 | padding: 2em; | ||
583 | } | ||
584 | |||
585 | #bagit-form-form .addurl { | ||
586 | margin-left: 0; | ||
587 | } | ||
588 | |||
589 | .closeMessage, | ||
590 | .close-button { | ||
591 | background-color: #000; | ||
592 | color: #FFF; | ||
593 | font-size: 1.2em; | ||
594 | line-height: 1.6; | ||
595 | width: 1.6em; | ||
596 | height: 1.6em; | ||
597 | text-align: center; | ||
598 | text-decoration: none; | ||
599 | } | ||
600 | .closeMessage:hover, | ||
601 | .closeMessage:focus, | ||
602 | .close-button:hover, | ||
603 | .close-button:focus { | ||
604 | background-color: #999; | ||
605 | color: #000; | ||
606 | } | ||
607 | |||
608 | .close-button--popup { | ||
609 | display: inline-block; | ||
610 | position: absolute; | ||
611 | top: 0; | ||
612 | right: 0; | ||
613 | font-size: 1.4em; | ||
614 | } | ||
615 | |||
616 | .active-current { | ||
617 | background-color: #999; | ||
618 | } | ||
619 | |||
620 | .active-current:after { | ||
621 | content: ""; | ||
622 | width: 0; | ||
623 | height: 0; | ||
624 | position: absolute; | ||
625 | border-style: solid; | ||
626 | border-width: 10px; | ||
627 | border-color: transparent #EEE transparent transparent; | ||
628 | right: 0; | ||
629 | top: 50%; | ||
630 | margin-top: -10px; | ||
631 | } | ||
632 | |||
633 | .opacity03 { | ||
634 | opacity: 0.3; | ||
635 | } | ||
636 | |||
637 | .add-to-wallabag-link-after { | ||
638 | background-color: #000; | ||
639 | color: #fff; | ||
640 | padding: 0 3px 2px 3px; | ||
641 | } | ||
642 | |||
643 | a.add-to-wallabag-link-after { | ||
644 | visibility: hidden; | ||
645 | position: absolute; | ||
646 | opacity: 0; | ||
647 | transition-duration: 2s; | ||
648 | transition-timing-function: ease-out; | ||
649 | } | ||
650 | |||
651 | #article article a:hover + a.add-to-wallabag-link-after, a.add-to-wallabag-link-after:hover { | ||
652 | opacity: 1; | ||
653 | visibility: visible; | ||
654 | transition-duration: .3s; | ||
655 | transition-timing-function: ease-in; | ||
656 | } | ||
657 | |||
658 | a.add-to-wallabag-link-after:after { | ||
659 | content: "w"; | ||
660 | } | ||
661 | |||
662 | #add-link-result { | ||
663 | font-weight: bold; | ||
664 | font-size: 0.9em; | ||
665 | } | ||
666 | |||
667 | /* ========================================================================== | ||
668 | 3 = Pictos | ||
669 | ========================================================================== */ | ||
670 | |||
671 | @font-face { | ||
672 | font-family: 'icomoon'; | ||
673 | src:url('../fonts/icomoon.eot?-s0mcsx'); | ||
674 | src:url('../fonts/icomoon.eot?#iefix-s0mcsx') format('embedded-opentype'), | ||
675 | url('../fonts/icomoon.woff?-s0mcsx') format('woff'), | ||
676 | url('../fonts/icomoon.ttf?-s0mcsx') format('truetype'), | ||
677 | url('../fonts/icomoon.svg?-s0mcsx#icomoon') format('svg'); | ||
678 | font-weight: normal; | ||
679 | font-style: normal; | ||
680 | } | ||
681 | |||
682 | .icon span, | ||
683 | .icon-image span { | ||
684 | position: absolute; | ||
685 | top: -9999px; | ||
686 | } | ||
687 | |||
688 | [class^="icon-"]:before, [class*=" icon-"]:before { | ||
689 | font-family: 'icomoon'; | ||
690 | speak: none; | ||
691 | font-style: normal; | ||
692 | font-weight: normal; | ||
693 | font-variant: normal; | ||
694 | text-transform: none; | ||
695 | line-height: 1; | ||
696 | |||
697 | /* Better Font Rendering =========== */ | ||
698 | -webkit-font-smoothing: antialiased; | ||
699 | -moz-osx-font-smoothing: grayscale; | ||
700 | } | ||
701 | |||
702 | .icon-flattr:before { | ||
703 | content: "\e800"; | ||
704 | } | ||
705 | .icon-mail:before { | ||
706 | content: "\e80a"; | ||
707 | } | ||
708 | .icon-up-open:before { | ||
709 | content: "\e80b"; | ||
710 | } | ||
711 | .icon-star:before { | ||
712 | content: "\e805"; | ||
713 | } | ||
714 | .icon-check:before { | ||
715 | content: "\e804"; | ||
716 | } | ||
717 | .icon-link:before { | ||
718 | content: "\e801"; | ||
719 | } | ||
720 | .icon-reply:before { | ||
721 | content: "\e806"; | ||
722 | } | ||
723 | .icon-menu:before { | ||
724 | content: "\e802"; | ||
725 | } | ||
726 | .icon-clock:before { | ||
727 | content: "\e803"; | ||
728 | } | ||
729 | .icon-twitter:before { | ||
730 | content: "\e807"; | ||
731 | } | ||
732 | .icon-down-open:before { | ||
733 | content: "\e809"; | ||
734 | } | ||
735 | .icon-trash:before { | ||
736 | content: "\e80c"; | ||
737 | } | ||
738 | .icon-delete:before { | ||
739 | content: "\e600"; | ||
740 | } | ||
741 | .icon-power:before { | ||
742 | content: "\e601"; | ||
743 | } | ||
744 | .icon-arrow-up-thick:before { | ||
745 | content: "\e602"; | ||
746 | } | ||
747 | .icon-rss:before { | ||
748 | content: "\e808"; | ||
749 | } | ||
750 | .icon-print:before { | ||
751 | content: "\e80d"; | ||
752 | } | ||
753 | .icon-reload:before { | ||
754 | content: "\ea2e"; | ||
755 | } | ||
756 | |||
757 | |||
758 | /* .icon-image class, for image-based icons | ||
759 | ========================================================================== */ | ||
760 | |||
761 | .icon-image { | ||
762 | background-size: 16px 16px; | ||
763 | background-repeat: no-repeat; | ||
764 | background-position: center; | ||
765 | padding-right: 1em !important; | ||
766 | padding-left: 1em !important; | ||
767 | } | ||
768 | |||
769 | /* Carrot (http://carrot.org) */ | ||
770 | .icon-image--carrot { | ||
771 | background-image: url('../../_global/img/icons/carrot-icon--white.png'); | ||
772 | } | ||
773 | |||
774 | /* Diaspora */ | ||
775 | .icon-image--diaspora { | ||
776 | background-image: url('../../_global/img/icons/diaspora-icon--black.png'); | ||
777 | } | ||
778 | |||
779 | /* ========================================================================== | ||
780 | Icon selected | ||
781 | ========================================================================== */ | ||
782 | |||
783 | .icon-star.fav:before { | ||
784 | color: #FFF; | ||
785 | } | ||
786 | |||
787 | .icon-check.archive:before { | ||
788 | color: #FFF; | ||
789 | } | ||
790 | |||
791 | /* ========================================================================== | ||
792 | 4 = Messages | ||
793 | ========================================================================== */ | ||
794 | |||
795 | .messages { | ||
796 | text-align: left; | ||
797 | margin-top: 1em; | ||
798 | } | ||
799 | |||
800 | .messages > * { display: inline-block;} | ||
801 | |||
802 | .warning { | ||
803 | /* font-size: 3em; | ||
804 | color: #999; | ||
805 | font-style: italic; | ||
806 | position: absolute; | ||
807 | top: 50%; | ||
808 | left: 0; | ||
809 | width: 100%; | ||
810 | text-align: center; | ||
811 | padding-right: 5%; | ||
812 | margin-top: -2em;*/ | ||
813 | font-weight: bold; | ||
814 | display: block; | ||
815 | width: 100%; | ||
816 | } | ||
817 | |||
818 | .more-info { | ||
819 | font-size: 0.85em; | ||
820 | line-height: 1.5; | ||
821 | color: #aaa; | ||
822 | } | ||
823 | |||
824 | .more-info a { | ||
825 | color: #aaa; | ||
826 | } | ||
827 | |||
828 | /* ========================================================================== | ||
829 | 5 = Article | ||
830 | ========================================================================== */ | ||
831 | |||
832 | #article { | ||
833 | width: 70%; | ||
834 | margin-bottom: 3em; | ||
835 | text-align: justify; | ||
836 | } | ||
837 | |||
838 | #article .tags { | ||
839 | margin-bottom: 1em; | ||
840 | } | ||
841 | |||
842 | #article i { | ||
843 | font-style: normal; | ||
844 | } | ||
845 | |||
846 | blockquote { | ||
847 | border:1px solid #999; | ||
848 | background-color: #FFF; | ||
849 | padding: 1em; | ||
850 | margin: 0; | ||
851 | } | ||
852 | |||
853 | #article h1 { | ||
854 | text-align: left; | ||
855 | } | ||
856 | |||
857 | #article h2, #article h3, #article h4 { | ||
858 | text-transform: none; | ||
859 | } | ||
860 | |||
861 | #article h2:after { | ||
862 | content: none; | ||
863 | } | ||
864 | |||
865 | .topPosF { | ||
866 | position: fixed; | ||
867 | right: 20%; | ||
868 | bottom: 2em; | ||
869 | font-size: 1.5em; | ||
870 | } | ||
871 | |||
872 | #article_toolbar { | ||
873 | margin-bottom: 1em; | ||
874 | } | ||
875 | |||
876 | #article_toolbar li { | ||
877 | display: inline-block; | ||
878 | } | ||
879 | |||
880 | #article_toolbar a { | ||
881 | background-color: #000; | ||
882 | padding: 0.3em 0.5em 0.2em; | ||
883 | color: #FFF; | ||
884 | text-decoration: none; | ||
885 | } | ||
886 | |||
887 | #article_toolbar a:hover, #article_toolbar a:focus { | ||
888 | background-color: #999; | ||
889 | } | ||
890 | |||
891 | #nav-btn-add-tag { | ||
892 | cursor: pointer; | ||
893 | } | ||
894 | |||
895 | .shaarli:before { | ||
896 | content: "*"; | ||
897 | } | ||
898 | |||
899 | .return { | ||
900 | text-decoration: none; | ||
901 | margin-top: 1em; | ||
902 | display: block; | ||
903 | } | ||
904 | |||
905 | .return:before { | ||
906 | margin-right: 0.5em; | ||
907 | } | ||
908 | |||
909 | .notags { | ||
910 | font-style: italic; | ||
911 | color: #999; | ||
912 | } | ||
913 | |||
914 | .icon-rss { | ||
915 | background-color: #000; | ||
916 | color: #FFF; | ||
917 | padding: 0.2em 0.5em; | ||
918 | } | ||
919 | |||
920 | .icon-rss:before { | ||
921 | position: relative; | ||
922 | top: 2px; | ||
923 | } | ||
924 | |||
925 | .list-tags li { | ||
926 | margin-bottom: 0.5em; | ||
927 | } | ||
928 | |||
929 | .list-tags .icon-rss:hover, .list-tags .icon-rss:focus { | ||
930 | background-color: #FFF; | ||
931 | color: #000; | ||
932 | text-decoration: none; | ||
933 | } | ||
934 | |||
935 | .list-tags a { | ||
936 | text-decoration: none; | ||
937 | } | ||
938 | |||
939 | .list-tags a:hover, .list-tags a:focus { | ||
940 | text-decoration: underline; | ||
941 | } | ||
942 | |||
943 | pre code { | ||
944 | font-family: "Courier New", Courier, monospace; | ||
945 | border: 1px solid #ccc; | ||
946 | font-size: 0.96em; | ||
947 | } | ||
948 | |||
949 | #filter-form { | ||
950 | position: fixed; | ||
951 | width: 20%; | ||
952 | height: 100%; | ||
953 | top: 0; | ||
954 | right: 0; | ||
955 | background-color: #FFF; | ||
956 | padding: 15px; | ||
957 | padding-right: 30px; | ||
958 | padding-top: 30px; | ||
959 | border-left: 1px #333 solid; | ||
960 | z-index: 12; | ||
961 | |||
962 | /*transition-property: transform; | ||
963 | transition-duration: 0.3s; | ||
964 | transition-delay: 0.3s; | ||
965 | |||
966 | transform: translate3d(100%, 0, 0);*/ | ||
967 | } | ||
968 | |||
969 | #filter-form form { | ||
970 | |||
971 | } | ||
972 | |||
973 | #filter-form form .filter-group { | ||
974 | margin: 5px; | ||
975 | } | ||
976 | |||
977 | |||
978 | /* ========================================================================== | ||
979 | 6 = Media Queries | ||
980 | ========================================================================== */ | ||
981 | |||
982 | @media screen and (max-width: 1050px) { | ||
983 | .entry { | ||
984 | width: 49%; | ||
985 | } | ||
986 | .entry:nth-child(3n+1) { | ||
987 | margin-left: 1.5%; | ||
988 | } | ||
989 | .entry:nth-child(2n+1) { | ||
990 | margin-left: 0; | ||
991 | } | ||
992 | } | ||
993 | |||
994 | @media screen and (max-width: 900px) { | ||
995 | #article { | ||
996 | width: 80%; | ||
997 | } | ||
998 | .topPosF { | ||
999 | right: 2.5em; | ||
1000 | } | ||
1001 | } | ||
1002 | |||
1003 | @media screen and (max-width: 700px) { | ||
1004 | .entry { | ||
1005 | width: 100%; | ||
1006 | margin-left: 0; | ||
1007 | } | ||
1008 | #display-mode { | ||
1009 | display: none; | ||
1010 | } | ||
1011 | } | ||
1012 | |||
1013 | @media screen and (max-width: 500px) { | ||
1014 | .entry { | ||
1015 | width: 100%; | ||
1016 | margin-left: 0; | ||
1017 | } | ||
1018 | body > header { | ||
1019 | background-color: #333; | ||
1020 | position: fixed; | ||
1021 | top: 0; | ||
1022 | width: 100%; | ||
1023 | height: 3em; | ||
1024 | z-index: 11; | ||
1025 | } | ||
1026 | #links li:last-child { | ||
1027 | position: static; | ||
1028 | width: auto; | ||
1029 | } | ||
1030 | #links li:last-child a:before { | ||
1031 | content: none; | ||
1032 | } | ||
1033 | .logo { | ||
1034 | width: 1.25em; | ||
1035 | height: 1.25em; | ||
1036 | left: 0; | ||
1037 | top: 0; | ||
1038 | } | ||
1039 | .login > header { | ||
1040 | position: static; | ||
1041 | } | ||
1042 | .login form { | ||
1043 | width: 100%; | ||
1044 | position: static; | ||
1045 | margin-left: 0; | ||
1046 | } | ||
1047 | .login .logo { | ||
1048 | width: auto; | ||
1049 | height: auto; | ||
1050 | top: 0.5em; | ||
1051 | width: 75px; | ||
1052 | height: 75px; | ||
1053 | margin-left: -37.5px; | ||
1054 | } | ||
1055 | .desktopHide { | ||
1056 | display: block; | ||
1057 | position: fixed; | ||
1058 | z-index: 20; | ||
1059 | top: 0; | ||
1060 | right: 0; | ||
1061 | border:0; | ||
1062 | width: 2.5em; | ||
1063 | height: 2.5em; | ||
1064 | cursor: pointer; | ||
1065 | background-color: #999; | ||
1066 | font-size: 1.2em; | ||
1067 | } | ||
1068 | .desktopHide:hover, .desktopHide:focus { | ||
1069 | background-color: #FFF; | ||
1070 | } | ||
1071 | #links { | ||
1072 | display: none; | ||
1073 | width: 100%; | ||
1074 | height: auto; | ||
1075 | padding-top: 3em; | ||
1076 | } | ||
1077 | #links.menu--open { | ||
1078 | display: block; | ||
1079 | } | ||
1080 | footer { | ||
1081 | position: static; | ||
1082 | margin-right: 3em; | ||
1083 | } | ||
1084 | #main { | ||
1085 | margin-left: 1.5em; | ||
1086 | padding-right: 1.5em; | ||
1087 | position: static; | ||
1088 | margin-top: 3em; | ||
1089 | } | ||
1090 | #article_toolbar .topPosF { | ||
1091 | display: none; | ||
1092 | } | ||
1093 | |||
1094 | #article { | ||
1095 | width: 100%; | ||
1096 | } | ||
1097 | |||
1098 | #article h1 { | ||
1099 | font-size: 1.5em; | ||
1100 | } | ||
1101 | #article_toolbar a { | ||
1102 | padding: 0.3em 0.4em 0.2em; | ||
1103 | } | ||
1104 | |||
1105 | #display-mode { | ||
1106 | display: none; | ||
1107 | } | ||
1108 | |||
1109 | .popup-form, #bagit-form, #search-form { | ||
1110 | left: 0; | ||
1111 | width: 100%; | ||
1112 | border-left: none; | ||
1113 | } | ||
1114 | |||
1115 | .popup-form form, | ||
1116 | #bagit-form form, | ||
1117 | #search-form form { | ||
1118 | width: 100%; | ||
1119 | } | ||
1120 | } | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/messages.css b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/messages.css deleted file mode 100755 index 42da70b3..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/messages.css +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | .messages.error.install { | ||
2 | border: 1px solid #c42608; | ||
3 | color: #c00 !important; | ||
4 | background: #fff0ef; | ||
5 | text-align: left; | ||
6 | } | ||
7 | |||
8 | .messages.notice.install { | ||
9 | border: 1px solid #ebcd41; | ||
10 | color: #000; | ||
11 | background: #fffcd3; | ||
12 | text-align: left; | ||
13 | } | ||
14 | |||
15 | .messages.success.install { | ||
16 | border: 1px solid #6dc70c; | ||
17 | background: #e0fbcc !important; | ||
18 | text-align: left; | ||
19 | } \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/print.css b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/print.css deleted file mode 100755 index 9dd6d295..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/print.css +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* ### Layout ### */ | ||
2 | |||
3 | body { | ||
4 | font-family: Serif; | ||
5 | background-color: #fff; | ||
6 | } | ||
7 | |||
8 | @page { | ||
9 | margin: 1cm; | ||
10 | } | ||
11 | |||
12 | img { | ||
13 | max-width: 100% !important; | ||
14 | } | ||
15 | |||
16 | /* ### Content ### */ | ||
17 | |||
18 | /* Hide useless blocks */ | ||
19 | body > header, | ||
20 | #article_toolbar, | ||
21 | #links, | ||
22 | #sort, | ||
23 | body > footer, | ||
24 | .top_link, | ||
25 | div.tools, | ||
26 | header div, | ||
27 | .messages, | ||
28 | .entrie + .results { | ||
29 | display: none !important; | ||
30 | } | ||
31 | |||
32 | article { | ||
33 | border: none !important; | ||
34 | } | ||
35 | |||
36 | /* Add URL after links */ | ||
37 | .vieworiginal a:after { | ||
38 | content: " (" attr(href) ")"; | ||
39 | } | ||
40 | |||
41 | /* Add explanation after abbr */ | ||
42 | abbr[title]:after { | ||
43 | content: " (" attr(title) ")"; | ||
44 | } | ||
45 | |||
46 | /* Change border on current pager item */ | ||
47 | .pagination span.current { | ||
48 | border-style: dashed; | ||
49 | } | ||
50 | |||
51 | #main { | ||
52 | width: 100%; | ||
53 | padding: 0; | ||
54 | margin: 0; | ||
55 | margin-left: 0; | ||
56 | padding-right: 0; | ||
57 | padding-bottom: 0; | ||
58 | } | ||
59 | |||
60 | #article { | ||
61 | width: 100%; | ||
62 | } | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/ratatouille.css b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/ratatouille.css deleted file mode 100644 index 605eb641..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/css/ratatouille.css +++ /dev/null | |||
@@ -1,211 +0,0 @@ | |||
1 | /* | ||
2 | Ratatouille mini Framework css by Thomas LEBEAU | ||
3 | Base on KNACSS => www.KNACSS.com (2013-10) @author: Raphael Goetter, Alsacreations | ||
4 | and normalize.css | ||
5 | */ | ||
6 | |||
7 | * { | ||
8 | -webkit-box-sizing: border-box; | ||
9 | -moz-box-sizing: border-box; | ||
10 | box-sizing: border-box; | ||
11 | } | ||
12 | |||
13 | html { | ||
14 | font-family: sans-serif; /* 1 */ | ||
15 | -ms-text-size-adjust: 100%; /* 2 */ | ||
16 | -webkit-text-size-adjust: 100%; /* 2 */ | ||
17 | } | ||
18 | |||
19 | body { | ||
20 | font-size: 1em; | ||
21 | line-height:1.5; | ||
22 | margin: 0; | ||
23 | } | ||
24 | |||
25 | /* ========================================================================== | ||
26 | Mise en forme | ||
27 | ========================================================================== */ | ||
28 | |||
29 | h1:first-child, | ||
30 | h2:first-child, | ||
31 | h3:first-child, | ||
32 | h4:first-child, | ||
33 | h5:first-child, | ||
34 | h6:first-child, | ||
35 | p:first-child, | ||
36 | ul:first-child, | ||
37 | ol:first-child, | ||
38 | dl:first-child{ | ||
39 | margin-top: 0; | ||
40 | } | ||
41 | |||
42 | code, | ||
43 | kbd, | ||
44 | pre, | ||
45 | samp { | ||
46 | font-family: monospace, serif; | ||
47 | } | ||
48 | |||
49 | pre { | ||
50 | white-space: pre-wrap; | ||
51 | } | ||
52 | |||
53 | |||
54 | .upper { | ||
55 | text-transform: uppercase; | ||
56 | } | ||
57 | |||
58 | .bold { | ||
59 | font-weight: bold; | ||
60 | } | ||
61 | |||
62 | .inner { | ||
63 | margin: 0 auto; | ||
64 | max-width: 61.25em;/*980px*/ | ||
65 | } | ||
66 | |||
67 | table, img, figure { | ||
68 | max-width: 100%; | ||
69 | height :auto; | ||
70 | } | ||
71 | |||
72 | iframe { | ||
73 | max-width: 100%; | ||
74 | } | ||
75 | |||
76 | .fl { | ||
77 | float: left; | ||
78 | } | ||
79 | |||
80 | .fr { | ||
81 | float: right; | ||
82 | } | ||
83 | |||
84 | table { | ||
85 | border-collapse: collapse; | ||
86 | } | ||
87 | |||
88 | figure { | ||
89 | margin: 0; | ||
90 | } | ||
91 | |||
92 | button, | ||
93 | input, | ||
94 | select, | ||
95 | textarea { | ||
96 | font-family: inherit; | ||
97 | font-size: 100%; | ||
98 | margin: 0; | ||
99 | } | ||
100 | |||
101 | input[type="search"] { | ||
102 | -webkit-appearance: textfield; | ||
103 | } | ||
104 | |||
105 | /* ========================================================================== | ||
106 | Mise en page | ||
107 | ========================================================================== */ | ||
108 | |||
109 | .dib { | ||
110 | display: inline-block; | ||
111 | vertical-align: middle; | ||
112 | } | ||
113 | |||
114 | .dnone { | ||
115 | display: none; | ||
116 | } | ||
117 | |||
118 | .dtable { display:table } | ||
119 | |||
120 | .dtable > * { display:table-row; } | ||
121 | |||
122 | .dtable > * > * { display:table-cell; } | ||
123 | |||
124 | .element-invisible { | ||
125 | border: 0; | ||
126 | clip: rect(0 0 0 0); | ||
127 | height: 1px; | ||
128 | margin: -1px; | ||
129 | overflow: hidden; | ||
130 | padding: 0; | ||
131 | position: absolute; | ||
132 | width: 1px; | ||
133 | } | ||
134 | |||
135 | .small { | ||
136 | font-size:0.8em; | ||
137 | } | ||
138 | |||
139 | .big { | ||
140 | font-size: 1.2em; | ||
141 | } | ||
142 | |||
143 | /*Width*/ | ||
144 | |||
145 | .w100 { width:100%; } | ||
146 | .w90 { width:90%; } | ||
147 | .w80 { width:80%; } | ||
148 | .w70 { width:70%; } | ||
149 | .w60 { width:60%; } | ||
150 | .w50 { width:50%; } | ||
151 | .w40 { width:40%; } | ||
152 | .w30 { width:30%; } | ||
153 | .w20 { width:20%; } | ||
154 | .w10 { width:10%; } | ||
155 | |||
156 | |||
157 | /* ========================================================================== | ||
158 | Internet Explorer | ||
159 | ========================================================================== */ | ||
160 | |||
161 | /*IE8 and IE9*/ | ||
162 | |||
163 | article, | ||
164 | aside, | ||
165 | details, | ||
166 | figcaption, | ||
167 | figure, | ||
168 | footer, | ||
169 | header, | ||
170 | hgroup, | ||
171 | main, | ||
172 | nav, | ||
173 | section, | ||
174 | summary { | ||
175 | display: block; | ||
176 | } | ||
177 | |||
178 | /*IE8 and IE9*/ | ||
179 | |||
180 | audio, | ||
181 | canvas, | ||
182 | video { | ||
183 | display: inline-block; | ||
184 | } | ||
185 | |||
186 | @media screen and (-webkit-min-device-pixel-ratio:0){ | ||
187 | select{ | ||
188 | -webkit-appearance: none; | ||
189 | border-radius: 0; | ||
190 | } | ||
191 | } | ||
192 | |||
193 | /* ========================================================================== | ||
194 | Medias Queries | ||
195 | ========================================================================== */ | ||
196 | |||
197 | /*Desktop 1080px*/ | ||
198 | |||
199 | @media screen and (max-width: 67.50em) { | ||
200 | } | ||
201 | |||
202 | /*Tablet 800px*/ | ||
203 | |||
204 | @media screen and (max-width: 50em) { | ||
205 | } | ||
206 | |||
207 | /*Mobile 640px*/ | ||
208 | |||
209 | @media screen and (max-width: 40em) { | ||
210 | } | ||
211 | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.eot b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.eot deleted file mode 100644 index 057c7bc4..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.eot +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.svg b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.svg deleted file mode 100644 index f4086b53..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.svg +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | <?xml version="1.0" standalone="no"?> | ||
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > | ||
3 | <svg xmlns="http://www.w3.org/2000/svg"> | ||
4 | <metadata>Generated by IcoMoon</metadata> | ||
5 | <defs> | ||
6 | <font id="icomoon" horiz-adv-x="1024"> | ||
7 | <font-face units-per-em="1024" ascent="960" descent="-64" /> | ||
8 | <missing-glyph horiz-adv-x="1024" /> | ||
9 | <glyph unicode=" " d="" horiz-adv-x="512" /> | ||
10 | <glyph unicode="" d="M512 778.666c-188.544 0-341.334-152.832-341.334-341.332s152.788-341.334 341.334-341.334 341.334 152.832 341.334 341.334-152.788 341.332-341.334 341.332zM670.164 339.498c16.682-16.682 16.682-43.648 0-60.332-8.32-8.32-19.244-12.5-30.164-12.5s-21.846 4.182-30.164 12.5l-97.836 97.836-97.834-97.836c-8.32-8.32-19.242-12.5-30.166-12.5s-21.846 4.182-30.166 12.5c-16.682 16.682-16.682 43.648 0 60.332l97.834 97.836-97.834 97.834c-16.682 16.682-16.682 43.648 0 60.332s43.648 16.682 60.332 0l97.834-97.834 97.836 97.834c16.682 16.682 43.648 16.682 60.332 0s16.682-43.648 0-60.332l-97.836-97.834 97.836-97.836z" /> | ||
11 | <glyph unicode="" d="M490.666 146.218c-74.070 0-143.7 28.842-196.096 81.196-52.352 52.394-81.236 122.028-81.236 196.14s28.884 143.744 81.236 196.14c16.682 16.682 43.648 16.682 60.332 0s16.682-43.648 0-60.332c-36.266-36.308-56.236-84.522-56.236-135.808s19.968-99.542 56.236-135.808c36.266-36.268 84.438-56.192 135.764-56.192s99.498 19.968 135.766 56.192c36.308 36.268 56.236 84.48 56.236 135.808s-19.968 99.542-56.236 135.808c-16.682 16.682-16.682 43.648 0 60.332s43.648 16.682 60.332 0c52.352-52.438 81.236-122.070 81.236-196.14s-28.884-143.744-81.236-196.14c-52.394-52.352-122.028-81.194-196.096-81.194zM490.666 469.334c-23.594 0-42.666 19.116-42.666 42.666v213.334c0 23.552 19.072 42.666 42.668 42.666s42.668-19.116 42.668-42.666v-213.334c0-23.552-19.072-42.666-42.668-42.666z" /> | ||
12 | <glyph unicode="" d="M512 803.328l-273.664-273.664c-33.324-33.322-33.324-87.34 0-120.662s87.338-33.322 120.662 0l67.668 67.67v-308.992c0-47.104 38.188-85.332 85.334-85.332 47.104 0 85.332 38.23 85.332 85.332v308.992l67.668-67.67c16.682-16.682 38.486-25.004 60.332-25.004s43.648 8.32 60.332 25.004c33.322 33.322 33.322 87.34 0 120.662l-273.664 273.664z" /> | ||
13 | <glyph unicode="" d="M887.757 752.282c0 58.88-88.678 65.382-88.678 65.382l-208.333 13.107c0 0-4.454 56.678-46.541 76.39-42.086 19.61-88.371 13.619-121.651 13.312-33.28-0.358-41.114-42.752-41.114-82.79 0-39.987 0.717-86.221 0.717-115.2 0-52.122-22.886-74.189-80.179-74.189h-118.118c-33.024 2.099-58.726-3.277-58.726-30.003 0-26.778 38.861-254.618 92.211-307.2 30.976-30.515 220.416-51.917 260.301-51.917s26.573 117.811 37.683 117.811c11.11 0 23.245-66.509 86.118-82.074 62.771-15.718 146.637-12.8 151.091-57.498 5.786-58.982 11.11-135.27-27.699-140.698l-87.859-3.482c-60.211 4.301-44.032 70.093-17.459 70.093s39.885 0.973 39.885 0.973l3.328 71.987c0 0-137.882 16.282-143.718-76.698-5.376-84.992 9.216-125.082 19.917-133.786 10.701-8.806 29.235-25.805 198.093-25.805 237.926 0 150.733 693.402 150.733 752.282zM790.528 444.416c-9.318-10.035-43.11 16.384-75.366 16.384-32.307 0-67.123-17.101-75.315-5.786-8.192 11.213 7.475 101.888 68.301 101.888s91.802-102.605 82.381-112.486zM297.165 759.501c0 11.725 2.97 152.781 2.97 152.781l-179.456-176.128c0 0 124.006 0 148.378 0 24.371 0.051 28.109 11.725 28.109 23.347z" /> | ||
14 | <glyph unicode="" d="M1024 369.556l-512 397.426-512-397.428v162.038l512 397.426 512-397.428zM896 384v-384h-256v256h-256v-256h-256v384l384 288z" /> | ||
15 | <glyph unicode="" d="M621.254 82.746l320 320c24.994 24.992 24.994 65.516 0 90.51l-320 320c-24.994 24.992-65.516 24.992-90.51 0-24.994-24.994-24.994-65.516 0-90.51l210.746-210.746h-613.49c-35.346 0-64-28.654-64-64s28.654-64 64-64h613.49l-210.746-210.746c-12.496-12.496-18.744-28.876-18.744-45.254s6.248-32.758 18.744-45.254c24.994-24.994 65.516-24.994 90.51 0z" /> | ||
16 | <glyph unicode="" d="M402.746 82.746l-320 320c-24.994 24.992-24.994 65.516 0 90.51l320 320c24.994 24.992 65.516 24.992 90.51 0 24.994-24.994 24.994-65.516 0-90.51l-210.746-210.746h613.49c35.346 0 64-28.654 64-64s-28.654-64-64-64h-613.49l210.746-210.746c12.496-12.496 18.744-28.876 18.744-45.254s-6.248-32.758-18.744-45.254c-24.994-24.994-65.516-24.994-90.51 0z" /> | ||
17 | <glyph unicode="" d="M262.14 960c-113.728-206.032-132.89-520.304 313.86-509.824v253.824l384-384-384-384v248.372c-534.96-13.942-594.572 472.214-313.86 775.628z" /> | ||
18 | <glyph unicode="" d="M0 51.712v526.336q0 183.296 87.040 284.672t265.216 101.376h561.152q-5.12-5.12-53.248-54.272t-102.4-103.424-111.616-111.616-97.28-95.232-43.008-37.888q-15.36 0-15.36 16.384v159.744h-49.152q-60.416 0-96.256-6.144t-64.512-26.624-39.936-58.368-12.288-98.304v-268.288zM68.608-68.096q5.12 5.12 54.272 54.272t102.4 103.424 111.616 112.64 97.28 95.232 41.984 36.864q15.36 0 15.36-16.384v-159.744h49.152q118.784 0 165.888 36.864t46.080 152.576v268.288l229.376 228.352v-526.336q0-183.296-86.016-284.672t-266.24-101.376h-561.152z" horiz-adv-x="982" /> | ||
19 | <glyph unicode="" d="M301.056 208.384q14.336 14.336 34.816 14.336t36.864-14.336q32.768-34.816 0-71.68l-43.008-40.96q-57.344-57.344-135.168-57.344-79.872 0-137.216 57.344t-57.344 135.168q0 79.872 57.344 137.216l151.552 151.552q71.68 69.632 147.456 78.848t131.072-44.032q16.384-16.384 16.384-36.864t-16.384-36.864q-36.864-32.768-71.68 0-51.2 49.152-135.168-34.816l-151.552-149.504q-26.624-26.624-26.624-65.536t26.624-63.488q26.624-26.624 64.512-26.624t64.512 26.624zM761.856 796.16q57.344-57.344 57.344-135.168 0-79.872-57.344-137.216l-161.792-161.792q-75.776-73.728-153.6-73.728-63.488 0-114.688 51.2-14.336 14.336-14.336 34.816t14.336 36.864q14.336 14.336 35.84 14.336t35.84-14.336q51.2-49.152 124.928 24.576l161.792 159.744q28.672 28.672 28.672 65.536 0 38.912-28.672 63.488-24.576 26.624-57.344 31.744t-61.44-21.504l-51.2-51.2q-16.384-14.336-36.864-14.336t-34.816 14.336q-34.816 34.816 0 71.68l51.2 51.2q55.296 55.296 130.048 52.224t132.096-62.464z" horiz-adv-x="820" /> | ||
20 | <glyph unicode="" d="M877.568 192v-72.704q0-15.36-10.24-25.6t-26.624-11.264h-803.84q-15.36 0-25.6 11.264t-11.264 25.6v72.704q0 15.36 11.264 25.6t25.6 11.264h803.84q15.36 0 26.624-11.264t10.24-25.6zM877.568 484.864v-73.728q0-14.336-10.24-25.6t-26.624-10.24h-803.84q-15.36 0-25.6 10.24t-11.264 25.6v73.728q0 14.336 11.264 25.6t25.6 10.24h803.84q15.36 0 26.624-10.24t10.24-25.6zM877.568 776.704v-72.704q0-15.36-10.24-25.6t-26.624-11.264h-803.84q-15.36 0-25.6 11.264t-11.264 25.6v72.704q0 15.36 11.264 26.624t25.6 10.24h803.84q15.36 0 26.624-10.24t10.24-26.624z" horiz-adv-x="878" /> | ||
21 | <glyph unicode="" d="M471.040 919.040q194.56 0 332.8-138.24t138.24-332.8-138.24-332.8-332.8-138.24-332.8 138.24-138.24 332.8 138.24 332.8 332.8 138.24zM471.040 79.36q153.6 0 261.12 108.544t107.52 260.096q0 153.6-107.52 261.12t-261.12 107.52q-151.552 0-260.096-107.52t-108.544-261.12q0-151.552 108.544-260.096t260.096-108.544zM507.904 714.24v-249.856l153.6-153.6-51.2-51.2-174.080 174.080v280.576h71.68z" horiz-adv-x="942" /> | ||
22 | <glyph unicode="" d="M254.976 89.6q-34.816 0-57.344 28.672l-184.32 241.664q-16.384 24.576-12.288 53.248t26.624 47.104 52.224 14.336 48.128-28.672l120.832-157.696 303.104 485.376q16.384 24.576 44.032 30.72t54.272-8.192q24.576-16.384 30.72-44.032t-8.192-54.272l-358.4-573.44q-20.48-32.768-57.344-32.768z" horiz-adv-x="684" /> | ||
23 | <glyph unicode="" d="M450.56 898.56l122.88-344.064h327.68l-268.288-200.704 96.256-356.352-278.528 212.992-278.528-212.992 96.256 356.352-268.288 200.704h327.68z" horiz-adv-x="902" /> | ||
24 | <glyph unicode="" d="M921.6 99.84q-88.064 155.648-212.992 201.728t-337.92 46.080v-223.232l-370.688 342.016 370.688 329.728v-196.608q92.16 0 172.032-27.648t134.144-71.68 98.304-97.28 70.656-106.496 45.056-97.28 24.576-70.656z" horiz-adv-x="922" /> | ||
25 | <glyph unicode="" d="M942.080 740.864q-36.864-55.296-96.256-100.352v-24.576q0-133.12-61.44-256t-190.464-207.872-296.96-84.992q-163.84 0-296.96 86.016 14.336-2.048 47.104-2.048 135.168 0 239.616 81.92-63.488 2.048-112.64 38.912t-67.584 96.256q10.24-4.096 34.816-4.096 26.624 0 51.2 6.144-67.584 14.336-110.592 67.584t-43.008 122.88v2.048q36.864-20.48 86.016-24.576-86.016 59.392-86.016 161.792 0 49.152 26.624 96.256 157.696-192.512 399.36-200.704-6.144 18.432-6.144 43.008 0 79.872 56.32 136.192t138.24 56.32q83.968 0 139.264-59.392 61.44 12.288 122.88 45.056-20.48-67.584-83.968-106.496 57.344 8.192 110.592 30.72z" horiz-adv-x="942" /> | ||
26 | <glyph unicode="" d="M219.136 192q0-46.080-31.744-77.824t-77.824-31.744-77.824 31.744-31.744 77.824 31.744 77.824 77.824 31.744 77.824-31.744 31.744-77.824zM512 121.344q1.024-15.36-9.216-26.624-11.264-12.288-27.648-12.288h-76.8q-14.336 0-24.576 9.216t-11.264 23.552q-12.288 131.072-105.472 224.256t-224.256 105.472q-14.336 1.024-23.552 11.264t-9.216 24.576v76.8q0 16.384 12.288 26.624 9.216 10.24 24.576 10.24h3.072q91.136-7.168 174.080-46.080t148.48-103.424q64.512-64.512 103.424-148.48t46.080-175.104zM804.864 120.32q1.024-15.36-10.24-26.624-10.24-11.264-26.624-11.264h-81.92q-14.336 0-25.6 10.24t-11.264 23.552q-6.144 122.88-57.344 233.472t-132.096 192.512-192.512 132.096-232.448 58.368q-14.336 0-24.576 11.264t-10.24 24.576v81.92q0 15.36 11.264 26.624 10.24 10.24 25.6 10.24h1.024q150.528-8.192 286.72-68.608t243.712-167.936q106.496-106.496 167.936-243.712t68.608-286.72z" horiz-adv-x="804" /> | ||
27 | <glyph unicode="" d="M0 628.224l151.552 151.552 360.448-359.424 360.448 359.424 151.552-151.552-512-512-151.552 151.552z" /> | ||
28 | <glyph unicode="" d="M951.296 100.864v438.272q-18.432-20.48-39.936-37.888-152.576-116.736-243.712-192.512-28.672-24.576-47.104-38.912t-49.152-27.648-58.368-13.312h-2.048q-26.624 0-58.368 13.312t-49.152 27.648-47.104 38.912q-90.112 75.776-243.712 192.512-21.504 17.408-39.936 37.888v-438.272q0-8.192 6.144-13.312t12.288-5.12h841.728q7.168 0 12.288 5.12t6.144 13.312zM951.296 700.928v14.336t-1.024 7.168-1.024 7.168-3.072 5.12-5.12 4.096-8.192 2.048h-841.728q-7.168 0-12.288-6.144t-6.144-12.288q0-96.256 83.968-162.816 110.592-87.040 229.376-181.248 4.096-2.048 20.48-16.384t25.6-21.504 25.6-18.432 28.672-15.36 24.576-5.12h2.048q11.264 0 24.576 5.12t28.672 15.36 25.6 18.432 25.6 21.504 20.48 16.384q118.784 94.208 229.376 181.248 30.72 24.576 57.344 66.56t26.624 74.752zM1024 722.432v-621.568q0-37.888-26.624-64.512t-64.512-27.648h-841.728q-36.864 0-64.512 27.648t-26.624 64.512v621.568q0 37.888 26.624 64.512t64.512 26.624h841.728q37.888 0 64.512-26.624t26.624-64.512z" /> | ||
29 | <glyph unicode="" d="M0 267.776l512 512 512-512-151.552-151.552-360.448 359.424-360.448-359.424z" /> | ||
30 | <glyph unicode="" d="M51.2 558.592q124.928-71.68 337.92-71.68t337.92 71.68l-55.296-497.664q-2.048-14.336-35.84-36.864t-102.4-44.032-144.384-21.504-143.36 21.504-102.4 44.032-36.864 36.864zM550.912 865.792q96.256-18.432 161.792-56.32t65.536-72.704v-10.24q0-59.392-114.688-101.376t-274.432-41.984-274.432 41.984-114.688 101.376v10.24q0 34.816 65.536 72.704t161.792 56.32l43.008 49.152q22.528 26.624 71.68 26.624h94.208q53.248 0 71.68-26.624zM495.616 751.104h86.016q-94.208 112.64-106.496 129.024-14.336 16.384-32.768 16.384h-104.448q-22.528 0-32.768-16.384l-108.544-129.024h86.016l65.536 67.584h83.968z" horiz-adv-x="778" /> | ||
31 | <glyph unicode="" d="M256 896h512v-128h-512zM960 704h-896c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h192v-256h512v256h192c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM704 64h-384v320h384v-320zM974.4 608c0-25.626-20.774-46.4-46.398-46.4-25.626 0-46.402 20.774-46.402 46.4s20.776 46.4 46.402 46.4c25.626 0 46.398-20.774 46.398-46.4z" /> | ||
32 | <glyph unicode="" d="M896 704v128h-896v-704c0-35.346 28.654-64 64-64h864c53.022 0 96 42.978 96 96v544h-128zM832 128h-768v640h768v-640zM128 640h640v-64h-640zM512 512h256v-64h-256zM512 384h256v-64h-256zM512 256h192v-64h-192zM128 512h320v-320h-320z" /> | ||
33 | <glyph unicode="" d="M959.884 832c0.040-0.034 0.082-0.076 0.116-0.116v-767.77c-0.034-0.040-0.076-0.082-0.116-0.116h-895.77c-0.040 0.034-0.082 0.076-0.114 0.116v767.772c0.034 0.040 0.076 0.082 0.114 0.114h895.77zM960 896h-896c-35.2 0-64-28.8-64-64v-768c0-35.2 28.8-64 64-64h896c35.2 0 64 28.8 64 64v768c0 35.2-28.8 64-64 64v0zM832 672c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM896 128h-768v128l224 384 256-320h64l224 192z" /> | ||
34 | <glyph unicode="" d="M960 960h64v-736c0-88.366-100.29-160-224-160s-224 71.634-224 160c0 88.368 100.29 160 224 160 62.684 0 119.342-18.4 160-48.040v368.040l-512-113.778v-494.222c0-88.366-100.288-160-224-160s-224 71.634-224 160c0 88.368 100.288 160 224 160 62.684 0 119.342-18.4 160-48.040v624.040l576 128z" /> | ||
35 | <glyph unicode="" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" /> | ||
36 | <glyph unicode="" d="M864 768h-512c-88 0-160-72-160-160v-512c0-88 72-160 160-160h512c88 0 160 72 160 160v512c0 88-72 160-160 160zM416 64c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM416 448c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM608 256c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM800 64c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM800 448c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM828.76 832c-14.93 72.804-79.71 128-156.76 128h-512c-88 0-160-72-160-160v-512c0-77.046 55.196-141.83 128-156.76v636.76c0 35.2 28.8 64 64 64h636.76z" /> | ||
37 | <glyph unicode="" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" horiz-adv-x="1280" /> | ||
38 | <glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM320 448c0 106.040 85.96 192 192 192s192-85.96 192-192-85.96-192-192-192-192 85.96-192 192zM925.98 276.524v0l-177.42 73.49c12.518 30.184 19.44 63.276 19.44 97.986s-6.922 67.802-19.44 97.986l177.42 73.49c21.908-52.822 34.020-110.73 34.020-171.476s-12.114-118.654-34.020-171.476v0zM683.478 861.98v0 0l-73.49-177.42c-30.184 12.518-63.276 19.44-97.988 19.44s-67.802-6.922-97.986-19.44l-73.49 177.422c52.822 21.904 110.732 34.018 171.476 34.018 60.746 0 118.654-12.114 171.478-34.020zM98.020 619.476l177.422-73.49c-12.518-30.184-19.442-63.276-19.442-97.986s6.922-67.802 19.44-97.986l-177.42-73.49c-21.906 52.822-34.020 110.73-34.020 171.476s12.114 118.654 34.020 171.476zM340.524 34.020l73.49 177.42c30.184-12.518 63.276-19.44 97.986-19.44s67.802 6.922 97.986 19.44l73.49-177.42c-52.822-21.904-110.73-34.020-171.476-34.020-60.744 0-118.654 12.114-171.476 34.020z" /> | ||
39 | <glyph unicode="" d="M480 960v0c265.096 0 480-173.914 480-388.448s-214.904-388.448-480-388.448c-25.458 0-50.446 1.62-74.834 4.71-103.106-102.694-222.172-121.108-341.166-123.814v25.134c64.252 31.354 116 88.466 116 153.734 0 9.106-0.712 18.048-2.030 26.794-108.558 71.214-177.97 179.988-177.97 301.89 0 214.534 214.904 388.448 480 388.448zM996 89.314c0-55.942 36.314-104.898 92-131.772v-21.542c-103.126 2.318-197.786 18.102-287.142 106.126-21.14-2.65-42.794-4.040-64.858-4.040-95.47 0-183.408 25.758-253.614 69.040 144.674 0.506 281.26 46.854 384.834 130.672 52.208 42.252 93.394 91.826 122.414 147.348 30.766 58.866 46.366 121.582 46.366 186.406 0 10.448-0.45 20.836-1.258 31.168 72.57-59.934 117.258-141.622 117.258-231.676 0-104.488-60.158-197.722-154.24-258.764-1.142-7.496-1.76-15.16-1.76-22.966z" horiz-adv-x="1152" /> | ||
40 | <glyph unicode="" d="M933.79 349.75c-53.726 93.054-21.416 212.304 72.152 266.488l-100.626 174.292c-28.75-16.854-62.176-26.518-97.846-26.518-107.536 0-194.708 87.746-194.708 195.99h-201.258c0.266-33.41-8.074-67.282-25.958-98.252-53.724-93.056-173.156-124.702-266.862-70.758l-100.624-174.292c28.97-16.472 54.050-40.588 71.886-71.478 53.638-92.908 21.512-211.92-71.708-266.224l100.626-174.292c28.65 16.696 61.916 26.254 97.4 26.254 107.196 0 194.144-87.192 194.7-194.958h201.254c-0.086 33.074 8.272 66.57 25.966 97.218 53.636 92.906 172.776 124.594 266.414 71.012l100.626 174.29c-28.78 16.466-53.692 40.498-71.434 71.228zM512 240.668c-114.508 0-207.336 92.824-207.336 207.334 0 114.508 92.826 207.334 207.336 207.334 114.508 0 207.332-92.826 207.332-207.334-0.002-114.51-92.824-207.334-207.332-207.334z" /> | ||
41 | <glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512-0.002c-62.958 0-122.872 13.012-177.23 36.452l233.148 262.29c5.206 5.858 8.082 13.422 8.082 21.26v96c0 17.674-14.326 32-32 32-112.99 0-232.204 117.462-233.374 118.626-6 6.002-14.14 9.374-22.626 9.374h-128c-17.672 0-32-14.328-32-32v-192c0-12.122 6.848-23.202 17.69-28.622l110.31-55.156v-187.886c-116.052 80.956-192 215.432-192 367.664 0 68.714 15.49 133.806 43.138 192h116.862c8.488 0 16.626 3.372 22.628 9.372l128 128c6 6.002 9.372 14.14 9.372 22.628v77.412c40.562 12.074 83.518 18.588 128 18.588 70.406 0 137.004-16.26 196.282-45.2-4.144-3.502-8.176-7.164-12.046-11.036-36.266-36.264-56.236-84.478-56.236-135.764s19.97-99.5 56.236-135.764c36.434-36.432 85.218-56.264 135.634-56.26 3.166 0 6.342 0.080 9.518 0.236 13.814-51.802 38.752-186.656-8.404-372.334-0.444-1.744-0.696-3.488-0.842-5.224-81.324-83.080-194.7-134.656-320.142-134.656z" /> | ||
42 | <glyph unicode="" d="M889.68 793.68c-93.608 102.216-228.154 166.32-377.68 166.32-282.77 0-512-229.23-512-512h96c0 229.75 186.25 416 416 416 123.020 0 233.542-53.418 309.696-138.306l-149.696-149.694h352v352l-134.32-134.32zM928 448c0-229.75-186.25-416-416-416-123.020 0-233.542 53.418-309.694 138.306l149.694 149.694h-352v-352l134.32 134.32c93.608-102.216 228.154-166.32 377.68-166.32 282.77 0 512 229.23 512 512h-96z" /> | ||
43 | </font></defs></svg> \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.ttf deleted file mode 100644 index f53c9590..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.woff b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.woff deleted file mode 100644 index 2a12440c..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/icomoon.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/ptsans.woff b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/ptsans.woff deleted file mode 100644 index cf7c62e1..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/fonts/ptsans.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/blank.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/blank.png deleted file mode 100755 index 63e09844..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/blank.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/down.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/down.png deleted file mode 100644 index b9d536a7..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/down.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/list.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/list.png deleted file mode 100755 index bd5aff5a..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/list.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/table.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/table.png deleted file mode 100755 index 859c4cd8..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/table.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/top.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/top.png deleted file mode 100644 index 954a8c0a..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/baggy/top.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/bg-select.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/bg-select.png deleted file mode 100644 index 95120441..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/bg-select.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-other_themes.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-other_themes.png deleted file mode 100755 index 32543a44..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-other_themes.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-w.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-w.png deleted file mode 100755 index 65dc607b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-w.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-wallabag.svg b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-wallabag.svg deleted file mode 100644 index 40193e1c..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo-wallabag.svg +++ /dev/null | |||
@@ -1,300 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In --> | ||
3 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ | ||
4 | <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/"> | ||
5 | ]> | ||
6 | <svg version="1.1" | ||
7 | xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" | ||
8 | x="0px" y="0px" width="800px" height="800px" viewBox="0 0 800 800" overflow="visible" enable-background="new 0 0 800 800" | ||
9 | xml:space="preserve"> | ||
10 | <defs> | ||
11 | </defs> | ||
12 | <image overflow="visible" width="800" height="800" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAYAAADbcAZoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ | ||
13 | bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp | ||
14 | bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 | ||
15 | eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz | ||
16 | NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo | ||
17 | dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw | ||
18 | dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv | ||
19 | IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS | ||
20 | ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD | ||
21 | cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl | ||
22 | SUQ9InhtcC5paWQ6MkMyNzEzMDQ4QTgzMTFFM0JGNkJCRDhDMjI5OTRBNkIiIHhtcE1NOkRvY3Vt | ||
23 | ZW50SUQ9InhtcC5kaWQ6MkMyNzEzMDU4QTgzMTFFM0JGNkJCRDhDMjI5OTRBNkIiPiA8eG1wTU06 | ||
24 | RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQzI3MTMwMjhBODMxMUUzQkY2 | ||
25 | QkJEOEMyMjk5NEE2QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQzI3MTMwMzhBODMxMUUz | ||
26 | QkY2QkJEOEMyMjk5NEE2QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w | ||
27 | bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtTNJDcAADxbSURBVHja7N37ddPK2gfgybf2/9ungm0q | ||
28 | IFSAqYBQAaYCQgWECgIVJFRAqABTAaYCvCvY2RXk85yMDibkYsu6zEjPs5ZWuCSxNZKl96eZkQ6u | ||
29 | rq4CAABAF/5PEwAAAAIIAAAggAAAAAggAACAAAIAACCAAAAAAggAACCAAAAACCAAAIAAAgAAIIAA | ||
30 | AAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAAAggAAAAAggAACAAAIAACCAAAAAAggAACCAAAAA | ||
31 | CCAAAIAAAgAAIIAAAAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAACAAAIAAAggAACAAAIAACCA | ||
32 | AAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAgAACAAAggAAAAAIIAACAAAIA | ||
33 | AAggAACAAAIAACCAAAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAAAIIAAAg | ||
34 | gAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAIAAAgAACCAAAAACCAAAIIAAAAACCAAAgAAC | ||
35 | AAAIIAAAAAIIAAAggAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAIAAAgAACCAAAAACCAAA | ||
36 | IIAAAAACiCYAAAAEEAAAYHD+0ATAWB0cHMQvk/VynP5pkRbY13S9zNfLn+vl63q5uO2brq6utBQw | ||
37 | vvOvgx8w8gDyab0cbfxzDCCv1stKC1FTDLRvU7itvLgthDgHAwIIwPgCyJf1Mrvlv5cpjNx59Ro2 | ||
38 | HK6Xl+G612Nyy//HQPtIAAEQQAAB5K4AsukyhZDPwggbpuG69+x1+vNDHoUbPWvOwcAYmYQOjN3l | ||
39 | Ft8Tr2jPw/VwrX/Wy1m4vuLN+FRzhr6tlx/r5XTL8BF2+D4AAQRgwL7XKEDnqQD9lv7M8G0G0FMB | ||
40 | FEAAAahrscfPxiI09obEK+En4fax/5RrmsJG1et1pEkA9mcOCDDeA+D1HJCoqQNhHM71Yb28D9sN | ||
41 | 7SJP83A9oXzW8O99djPwOgcDY6QHBKC5ieWxByTefjX2iBxr1qJUQ+vitjtrIXwAIIAA/M/XForZ | ||
42 | 01TMKmTzDx4nG8Fj2uJr6RUDCIZgAWM+AP4cgjVNBWhbYg/Lm+DhhrmZp6DY1dydg5v/4BwMjJEe | ||
43 | EIDrYNBmOIiTl+MdswzLysMs/OzxmHS4jwEggAD8T9sPGKyGZcUHH041dy8mKXT0sQ0EEAABBOAX | ||
44 | nzt6nVm47g1xS9duxXaPvR7znl7/q00AIIAAbFqE7iYJxyvx8aF2p5q9Eyfhutejz+e0LG0GAAEE | ||
45 | 4LYQ0qU4J+Rb8ADDNoNeHHL1doT7FoAAAlCAzz28Znya+o/0lWbDR+z1mGfwXmLvh1vwAgggAL9Z | ||
46 | 9Fgsf8ukWB5S+Dgc+X4FIIAAZG4V+r1b0ZkQsrfDFOZy6lEyAR1AAAG406Ln1z9LC7urJvdP7VMA | ||
47 | AghAKb5n8B7mQkit8JHjM1bM/wAQQAAeLBhzIITsHj5ynMi/sHkABBCAUgpGIWQ7ZyHfu4iZ/wEg | ||
48 | gAA8aCWEFCM+zDHnp8ovbCIAAQSgpABShRBPTb+9XY4zfn/mfwAIIABbF465OQ5u0bvpsIBQtrCZ | ||
49 | AAQQgG38m+n7ikOxjmye/046P0tfc2b+B4AAArCVnIfN5DzhuiunhbTBwkcJQAAB2MYy4/dWPWxv | ||
50 | MtJtE3uA5oXsQ+Z/AAggAIMwTSFkjOtdyh3BlnZTAAEEYEhmYXx3xiph3kfF/A8AAQRgcOKdscYy | ||
51 | KX2eQlcp9IAA3OHg6upKKwDjPAAeHNz1X7HQ/VLIasR5Bk9Cfs8uaVLs9fgRypr3crDNNzkHA2Ok | ||
52 | BwSg/OJ86E9KPy0sfOj9ABBAAHZS2m1uZ+vlZKDbIq7bvLD3vPIRAhBAAHZR4i1u34ZhPh+kxIn2 | ||
53 | 332EAAQQgDEY2lCs40JDled/AAggADv5s9D3HYv1k4Fsg9gL9bbQ924OCIAAArBzIV+qWLRPB7AN | ||
54 | jsN4n/YOIIAAUJTSh2JNQ7m9H9HCLggggACMySyU/YDCtzYhgAACQFlKe3ZGZRrKu+3uppVdD0AA | ||
55 | ARijWMgfF/i+S+/9EEAABBCA0XodypqQHt/r3GYDEEAAKFNpt7IdwtwPt+AFEEAARm0eyugFmYZh | ||
56 | 9H78a5cDEEAAdvV1YOtTwm153fkKQAABYCBmaclVHCo2H0hbr+xuAAIIwK4uB7hOOfcwHA+onQUQ | ||
57 | AAEEYGdDnEg8C/n2gry2ywEIIABjdjnQ9cqx0J+HMh+YOKbwCtCog6urK60AjPMAeHBw338P9eD4 | ||
58 | KOQ1TOjbejkc0m61yzc7BwNjpAcE4Harga5XTnNBZgMLHwsfGwABBKCuoQ6lmYd8ngvycmBte+lj | ||
59 | AyCAANT1fcDrNs/gPQzp1rtj2GcABBCAli0GvG45TEaf22cAxskkdGC8B8CDB+cLD/kA+Wq9nPf4 | ||
60 | +j9CPkPBmvKfsOMwLOdgYIz0gADc7WLA69bn/IvDAYaPVTAHBEAAAdjT1wGv26zHEDDEBw8ufFwA | ||
61 | BBCAfV0MfP36CgJHA2zLzz4uANsxBwQY7wHwYKtnxg3tQXmb4pCh//QQPj4NsC13nv8ROQcDY6QH | ||
62 | BOB+Hwa8bpPQfW/EywG240Uw/wNAAAFQXG7l+cADTxcMvwIQQAAacxmGPRdknoJBF47sHwAIIAAP | ||
63 | ezfw9Tvu6HWeD7DtDL8C2JFJ6MB4D4DbTUKvnIVhPr07pAL6UcuFdOxl+WeAbRfbbVX3h52DgTHS | ||
64 | AwKwnSH3gkxSwGrT8QDbbbFP+AAQQAC4Tyw0zwe8fnF+xryl3x1vY/xWKAVAAAHYzZsw7PH+bQwz | ||
65 | i+FjiM/9iGF04SMBIIAAtCmGj6Ff9Y4h5DQ0c2esGGa+rJep/QCAiknowHgPgLtNQt8Ui+rZCJoo | ||
66 | 3uHp+3r565YQUT0dfnnj35cpvMwGGDwqsSfsfRO/yDkYEEAABJBtxAL7R+ju+RnkY7FenjX1y5yD | ||
67 | gTEyBAtgd3EIzivNMMrt/kIzAAggAH2Iw5PMAxiXZ8FDBwEEEIAenYRh35qXn2KP11IzAOzPHBBg | ||
68 | vAfA+nNAboq3mT3SooMOH60ETedgQAABEEDqiJPR452xDrWq8CGAANzPECyA/cV5Ac+C4Vi2KQAP | ||
69 | 0gMCjPcA2FwPyKY2niZOt+Jcj3i3q1XbL+QcDIyRHhCAZsUhO280Q7Hinc2edBE+AMZKDwgw3gNg | ||
70 | Oz0glVm4npzuYYVlWKTg2OmdrpyDgTHSAwLQXkH7KH0l7+30LC1uswsggAAUrZrI/CZ4gF1uzjeC | ||
71 | h5AI0CFDsIDxHgDbHYJ1UxyKdRpMUO9T7OH4mMJHFoHQORgQQAAEkLbN1svb9JV2xZBxsV6+pq/Z | ||
72 | 9UI5BwNjZAgWQLcW4XrYTye3eeW/4eM8GAIHIIAAjFy8Ih8nqb8SRFoTh72dpQWATBiCBYz3ANjP | ||
73 | EKy7xPkhx7ZKa+L8j9jzlFVPiHMwMEZ6QAD6Nwsmp7ftcL38SF8BEEAARisGjy/BAwu7MEltLewB | ||
74 | CCAAo2R+Qj8hJLb5iaYA6Ic5IMB4D4D9zgGJRfDcVujVebi+CUBvnIOBMfpDEwB0qhoGZC5C/6oA | ||
75 | 6En1AB3SAwKM9wDYfQ+I8JGn3u6Q5RwMjJE5IADCx9gdBjcCABBAAIQPhBAAAQQA4UMIAUAAARA+ | ||
76 | EEIABBAA4QMhBAABBED4QAgB6J7b8ALjPQC2cxte4WNY4i16n7T1y52DgTHSAwLQrE/Cx6DEbXmm | ||
77 | GQAEEIAcxUJ1phkGZy6EAAggALk5TYUqww0hx5oBYH/mgADjPQA2NwckFqeukI/Dq/Vy3tQvcw4G | ||
78 | BBAAAWRXR+F63gfjESelLwUQAAEEoOsA4lat43SZQshKAAHYnTkgAPXE0PFJ+LDtARBAALoQC9Cp | ||
79 | Zhgtt+cFEEAAOhPveDXTDKMX5/+caAaA3ZgDAoz3AFhvDsg8uPLNr16sl4s6P+gcDAggAALIfUw6 | ||
80 | 5za1J6U7BwNjZAgWwHZi6DgTPrhj33ArZgABBKBRMXwcagbuYFI6gAAC0JjjcD3hGO4zTwsA9zAH | ||
81 | BBjvAXC7OSDxyvY3rcWWdpoP4hwMjJEeEIC7VfM+YJd9xnwQAAEEoJb4vA/zPthV3GdONAPA7QzB | ||
82 | AsZ7ALx/CFac8+FKNvt4tl4W932DczAggAAIIFEcRvMjuOUu+1mF6/kglwIIwE+GYAH87pPwQQOm | ||
83 | wRwigN/oAQHGewC8vQck3nL3tIWXW4Wfd0Zarpd/d/jZv1IxWxW1U1uvKC/Wy8Vt/+EcDAggAOMO | ||
84 | ILGwj7fcrdv7UYWMrxt/jmHjsoW3H9/j4cbXKqTMbNnsxO3/6Lb9wDkYEEAAxh1AvuxYwMdwsUiB | ||
85 | Y9FS0KhjmkJJXJ4KJVmIPSAvBBAAAQQQQCrbDL1apaDxObPAsY3DFESqQGKOS/d+G4rlHAwIIADj | ||
86 | DCDTcPfQq1UqGj+G6x6PoagCyfOgh6Qrvw3Fcg4GBBCAcQaQeNeroxv/XYWOixE0xSSt/9P0Ve9I | ||
87 | e87XyysBBBBAAMYbQDYfOBivTH9IReJqxE0T2+S5MNKa/z2g0DkYEEAAxhVAqgcOhhQ83oey5nV0 | ||
88 | Yb4RRmhGDLePBBBAAAEYXwCJk87/FTy2Mklh5HXwHJImvFsvJ87BgAACMK4AMhE8apmtl5cpkFDf | ||
89 | o/U5eKUZgLH5P00AjJjwUc8iXE+k/s96eRPGPV+m7n73zv4HjJUeEGC8B8DfH0RIffG2vnF4lonr | ||
90 | 9ztP4eO/oc05GBBAAAQQ9hdDyMtg4nol9nRcbAaPinMwIIAACCA0p3q+SPWww7H1jMSwUd3W+dbh | ||
91 | Vs7BgAACIIDQns2HHU4Huo5Vb0d8iOXioW92DgYEEAABhG5MNwLJLJTdO7JKYeNzCh9bcw4GBBAA | ||
92 | AYR+HKbl6cafc3WZAsfX9HVZ9xc5BwMCCIAAQj5mKYj8tRFKuu4puUwBIy7fN/7cCOdgQAABEEAo | ||
93 | I5hsfn28EUymYbf5JYuNP39NX5cbwaPVZ3U4BwMCCIAAAp1xDgbGyJPQAQAAAQQAABBAAAAABBAA | ||
94 | AEAAAQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAAAQQAAAAAEEAAAQQAAAAAQQAABAAAEAABBAAAAA | ||
95 | AQQAABBAAAAABBAAAEAAAQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAADYyR+aAKC2yXo5XC+z9Pen | ||
96 | G/+3XC//rpdF+vPlANb3MC3TW9b17411LX2bztJ6/pm+Vr6mr0PapgCdO7i6utIKwDgPgAcHdX90 | ||
97 | vl6er5ejHX7mYr18SMVrSaZpfV+mPz9kldbzvLACPYaO1zW26cf0tRbnYEAAARBAHipST8OvV8V3 | ||
98 | FQPIiwKK8xg23qbwUcdlCiInma9n7PE42zF43BR7Q16FGr0/zsGAAAIggNzlOIWPJsTi/FnId7jS | ||
99 | cQofkwZ+V+3ivAMxSH5paD1DWs9zAQRAAAHYN4DEK+Tzhl8+xxDSRG9AKevadPioFUKcgwEBBEAA | ||
100 | uanJno/bCvMn4XreRA6+hf2Gl5USQmLo+NFC+Ng5hDgHAwIIgACy6TAV5W1apMK8b6cpbLVpmQJX | ||
101 | 32LPx6zF3791sHQOBsbIc0AA7i/K2zZruRje9j0cd/A6MdDNM1jXtts79qy89fEBEEAAdi2WuwoG | ||
102 | r3te1y5f//lI1nUe2hviBVA0Q7CA8R4A7x+CdRK6vYp90GNTdH0iGMu6PjgXxDkYGCM9IAC3e9rx | ||
103 | 6816Ws/pSF4zOhzJegIIIABka0wBpOshUY/tXgACCAAMNfAACCAAAAACCAAAIIAAAAACCAAAgAAC | ||
104 | AAAIIAAAAAIIAAAggAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAIAAAgAACCAAAAACCAAA | ||
105 | IIAAAAACCAAAgAACAAAIIAAAAAIIAAAggAAAAAggAACAAAIAAAggAAAAAggAACCAAAAACCAAAIAA | ||
106 | AgAACCAAAAACCAAAIIAAAAAIIAAAgAACAAAIIAAAAAIIAAAggAAAAAggAACAAAIAAAggAAAAAggA | ||
107 | ACCAAAAACCAAAIAAAgAACCAAAAACCAAAIIAAAAAIIAAAgAACAAAIIAAAAAIIAAAggAAAAAggAJCT | ||
108 | pSYAEEAAoCv/agIAAQQgVzNN0LqpJgAQQAAQBAQQAAEEYPRWHb/enz2t50wQAEAAAejf3x2/3uGI | ||
109 | 2ravsPV04CEWQAABYGvTkRTlfYatrttYAAEQQACyLR5jcTwZSfDpI4BMgqFfAAIIgADyi1kP4aOP | ||
110 | oryPMDDrYT09BwRAAAHY2mUPr9n1cKhZj+17NPC27WsfAhBAAArVx9Xrrovy5z2279OBt+3KRwhA | ||
111 | AAHIvYichu56JSY9FOU3A8F0gK8lgAAIIABFFZFvO3qd4wzad97R67zuYd2++vgACCAAu+pjGNYs | ||
112 | tN8LMumpKL8tGExbfo2j0M9cl5WPD4AAArCr7z297llo95a8bf/+XYLQWcG/XwABEEAAGtXXbVSn | ||
113 | 6+VLSyEhFuRHGbXxrKWQMGmxDbex8PEBEEAASgkg0WEqoKcNFuSx0J9n2M7z0GyvTNV2hyPcbwAE | ||
114 | EIDCLXoOId/Wy8mexfk8/Z55xu3cxHucpiDzrcfw0fc+A5C9g6urK60AjPMAeHCwzbfF4v9tJm/5 | ||
115 | IlzfXWn5QJF7mIrx+JyPo5DHfI9dXN5Y1/t6FGZpfZ+GfIaWvUjv/0HOwYAAAiCA3FbMf8u8WF+m | ||
116 | kHE48E22Ssth5qHqP2HLp6A7BwMCCIAAcpt/Qnm9CPRjsV6ebfvNzsHAGJkDAvCwC03Alj5rAoD7 | ||
117 | 6QEBxnsA3L4HZBau76oED9l6+FXkHAyMkR4QgIctggfL8bCLXcIHgAACwH0+aALsIwD7MwQLGO8B | ||
118 | cPshWFGchP4jmIzO7Vbr5dGuP+QcDIyRHhCA7cShNa5wc5d3mgBgO3pAgPEeAHfrAYn0gnCbVajR | ||
119 | +xE5BwNjpAcEYHuxF8SVbm56pQkAtqcHBBjvAXD3HpBKfDL6oRYkXN/56kXdH3YOBgQQAAFkG4cp | ||
120 | hDBusUfsUdjj1rvOwcAYGYIFsLtlMBTrMnjmxSttALA7PSDAeA+A9XtAKvHp6LORNt+T9TJdL59G | ||
121 | uv7v18ubfX+JczAwRnpAAOqLY/+XI1zvV2m9L5oowgu0GOl6AzRCDwgw3gPg/j0gUZwPEntCxnJr | ||
122 | 3hg+zm/829l6mY9k/WPwehYaGnrlHAwIIIy9kAKEkF3Dx5hCSKPhA/qi9qNvhmABNFOYPgnDHo51 | ||
123 | X/jY5v+FDwAEEIAGrVKBejGw9YoF94stw0UMIUOcG3GeAqbwASCAAGRZrA+lCF/WCFXvw3B6Ci5T | ||
124 | qPKkcwABBCBrsQiPV8wXA1iHOsPK4no/CmX3Bi3S+p/bnQEEEKBshyNZz6r3IF49XxVYeO/bi1P1 | ||
125 | Br0IZfWGrNJ7flbYdvOZBAQQgDschfHcsjY6D9e9AbkHkVV6j89Cs5PpL9L6v8s8iFTrX3rPza6m | ||
126 | 6TMJ0Bm34R3KhnQbXsoKIE/DeB/kNl8vL0M+T1BfrJePoZuhRpO0/q9T4ZuDi7T+FyPdH+OT7D+E | ||
127 | socLsiO1HwIIAghjE4vQf8L1lfYxFz3TjTDW9RXo5UbRvepp/Q9TEDvqIYzE9f6cvo75zlYxDMbn | ||
128 | tziBCCAggCCAMHjfUtHZ9HCfks1SUf44fW1qXP5lauOv6esiw6J7mta/WvdZw2ErLt831p+fD8+s | ||
129 | 5iohgIAAggDCoJ2ul+NwffXd8xXuNtkIIodhu7kzlxuhbjHidV/arx4MH7FN41DI95pEAAEBBAGE | ||
130 | oZulAqgqGvWEQPfhI4T6t1pGAAEBRAARQCjOPxtFUHXL1oVmgdbE+TZnG5+7Vbi+6xcCCHTKbXiB | ||
131 | vmyGjVgQxauyJ5oFWhGHPX4Kvw5lE/gBAQQYlc+3/NvbFESmmgcaEYdcxZs+HG/5GQRonSFYQ9mQ | ||
132 | hmBRnup2vHeJD6470UxQ+/N1nEL9beKwx/9opnFS+9E3PSBAX2IBdN/D32Lh9CNcP6sA2F78zHy7 | ||
133 | J3yEMN4HLwICCDByDw0BmYbrSbNxWNZMc8GDweNH+sxM9/zsAbTGEKyhbEhDsCjTQ8Owblqslw/B | ||
134 | 1Vu4GTzehu3nThl+NXJqP/qmBwToUyyEznf4/lm4vpNPNTRrogkZcXg/Dtv3eGwS4IFe6QEZyobU | ||
135 | A0K5Yqj4smeAib0iK03JCMS7Wr0O18/0qBvAPXxw5NR+CCAIIHB9FXe65+9Yhp/Dsy41KQMSg8Z8 | ||
136 | vbxMAWTfz8kTTSqAQJ8MwQJy8LGB3xELszgUJc4p+RTcPYthhI5PaZ8+bSB8hBTSAXqlB2QoG1IP | ||
137 | COUXW/+09Ltjj8jnoGeEMj4HcWjV8/S1aXH/f+RzgNoPAQQBBK7F3ot5y6+x2AgjK01OBmKvxiw0 | ||
138 | M7zqIefr5ZUmR+2HAIIAAtfiHX1OO3y91UYgiV9dFaYLVS/H0xQ8ph2+9iPBGwEEAQQBBH6KxdiX | ||
139 | Hl9/mYLIV4GEBsWAcbgROA57eh/nQe8HAggCCAII/KLNeSB1rDYCyTK4bSnbqYZUPQ7d93Dc51na | ||
140 | n0EAQQBBAIHN82Lm72+Rgsh3oYQUNg5T2KiCR6777TObCwEEAQQBBH73JeMi7r7ibnUjlBi+NSyT | ||
141 | G2FjWth+qvcDAYSs/KEJAPZyWyF6uRFG/g0/55ToMcnbYQobcZv+FX7O35gUvE4L4QPIjR6QoWxI | ||
142 | PSAMw8l6eTvwdVylpQony41wouekXZONQBG//pm+TkM+czWapveD36j96JseEIBuVcXu7I7/r4JI | ||
143 | DCl/p39b3Agv/G6zp6Jq28fp34YcMO5zIXwAOdIDMpQNqQeEYYiF4xfNsJXNMLIZVjZDzF1/LyGg | ||
144 | VareinAjVIQRB4ttee4Ht1L70Tc9IABl2rf43mZOytc93+PTB/6/9PkVOXsvfAC50gMylA2pB4Rh | ||
145 | iAXpN80Ae4nh8lEwp4g7qP3o2/9pAiAj7hIF+3sjfAA50wMylA2pB4ThcFCC+hbBQwd56CCr9kMA | ||
146 | QQABAQQa8iToSUQAIXOGYAG5UTxBPe98fgABBGB3xq5DveB+ohkAAQQA6MIrTQAIIABAFwy9AgQQ | ||
147 | AKATi2DoFSCAAAAdiPOlDL0CBBAAoBMxfKw0AyCAAABte79eLjQDIIAAAG1brJc3mgEQQACAtsW7 | ||
148 | Xb3QDIAAAgC0rZp07mGdgAACALQu9nx43gcggAAArYs9HwvNAAggAM2bagL4RZxwfq4ZgKE4uLq6 | ||
149 | 0gpD2JAHBxqBoXBQgp9i8PCwQZo9yKr96JkeEAAQPgAEEAAQPgAEEIA2zTQBCB+AAAIACB8AAggw | ||
150 | OFNNgPABIIAACCDQrvfCBzAWf2gCICN/aQJGKAaPc80AjIUeECAnU03AiFwKH8AYeRDhUDakBxEy | ||
151 | DP+sl4lmYCTh49l6WWoKuqb2QwBBAIGN86ImYASWKXxcagoEEMbIECwgFzNNwAicr5cnwgcggAD0 | ||
152 | 71ATMGDVfA93ugJGz12wgFy4AxZDtUzBw3wPgKAHBMiHHhCG6DyYbA7wC5PQh7IhTUKnfA5GDEk1 | ||
153 | 5OpCU5DdwVbtR88MwQJyMNMEDMhivbwIJpoD3MoQLCAHhl8xBFWvh1vsAtxDDwiQg6eagMJdpPAh | ||
154 | eAA8wByQoWxIc0AomyegU6pVCh4LTUEp1H70zRAsoG+HwgcFij0d79bLI+EDYDeGYAF9Oyq4AI23 | ||
155 | Vp2mhfE4Xy9vguFWALXoAQH69rzA9xyDR7zy/Wzj68KmHLy43Z8Ecz0ABBCgWNNQ5h2wPtwoQBcp | ||
156 | hLj16nCdBw8UBBBAgOLNCn3fqzv+Pd4J6YkidZDhQ68HgAACDMDzQt/35QPh5EkqWhlO+ACgIW7D | ||
157 | O5QN6Ta8lGe6Xn6U+pHb8vvO1svcphY+ICdqP/qmBwToy9EI1vFV0BNSqlW4vtMVAAIIMBAvC33f | ||
158 | ixohZGFzFxkezfkAEECAgTgMZd79KtQsSg3jKcu50AgggADD8rrg9/69xs+sgqFYJXmnCQAEEGA4 | ||
159 | JqHsidl1b7H72aYvwnm4+zbLAAggQIGOC3//dYtT8wnKICgCtMxteIeyId2Gl3LEW+9OS/641fy5 | ||
160 | aSj3tsNjEUPifzQDQ6f2o296QIAuzQsPH4s9fnZl89cOBV31Hl1oboD2/aEJgA69Lfz9Lwt6r6tU | ||
161 | UP+7Xv4M13cdm2YcAFdpiW38d/q63AgfJx3sP199RAEEEGA45qHs3o+SCtT4AL339/x/DCOTja9V | ||
162 | QAkthZQqXFQh7t8ULJYbXx/SRQBZ+ZgCtM8ckKFsSHNAyF/pcz+i/4T9hgN1ccB9KHzsahJ2f2bL | ||
163 | MrQzbKrt9nMgZRTUfvRNDwjQhZMBhI+2iuomrRoOHyGt8yKDdZv6GAEMg0noQNviFfTXA1iPRQHv | ||
164 | 8cOA96NDHyUAAQRgG2cphJTuYwHvcTng/ei5jxKAAALwkPl6ORrAeqwaKO67uIK/GPC+NOvgNfSy | ||
165 | AAggQMFiMXc6kHVp4vkQXfQCTQe6Lx11tG5HPrYAAghQplhsD2XoVdTE8KuZAFJbV3OIXg5onwUQ | ||
166 | QIBR+RKGM5xlFZqZW/G4g/c6xHkSs47CWxXgjn18AdrlOSBD2ZCeA0I+Ys/HfEDr09RzNbo42Maw | ||
167 | 9GhAbR97I76F7nt2noVhz6dh5NR+9E0PCCB83C0+A+O8gd/TVZvEQn1IV/Dfhn6GlX0KJqQDtEYP | ||
168 | yFA2pB4QhI82xPDxqoHfE4ekzToMTU/CdW9IyWLw+NFz+HwU8n/4JOxM7Uff9IAA+4rDZD4NMHxE | ||
169 | 7xr4HbMOw8fm9ih9MvVZBvt1HP6lJwSgYXpAhrIh9YDQX5E2pAnnm85DM70ffRWxceJ8nMtQ4hX8 | ||
170 | aei392PTZWrHpY87Q6H2o296QIC6DsOwrxA30ftx3GP7HKZwWGJPSE7P46hC9txHHkAAAfotEGNR | ||
171 | Nh3o+sW7Xq0aKFzfZhASS+yhmmT4fuKQsBMffQABBOhefLr5EOYY3CUOuWmq9yOHNqpCyNyuu7e3 | ||
172 | odxeJQABBCjONFwPuRr6g9rehf3nTcQC9XVG61RdwS8lOC4yfm+zcD0/ZeaQACCAAO05DuO4I1As | ||
173 | fJt46OBRpoX+USqej0ayHdoMdLEn5MShAUAAAZo1TYXWaRj+sJPY6/GqwXbLuXj+FPLvDXkT8n8a | ||
174 | +dvgVr0AAgjQmKrXYzaS9Y1Dr1Yj2r5Vb0jOQ+pehGaeRN+mao7NcQBgK54DMpQN6TkgNFtQnYVx | ||
175 | XdW9SMVuU2apKC3FIlz3OOT6rIu4P84LacdXIwuyFEjtR9/0gACVaqLy2IaULENzQ682C9H3BbXB | ||
176 | LG33XIfaxe1zXlA76g0BuIcekKFsSD0g7OckXN+1aWy3F237KdenBRajsU3eZFrwH6c2LcEi6A0h | ||
177 | U2o/BBAEEPo0D9cTaacjXf8nof1hR/NQ5iT+RchzWFZsz7OCwlycW/Q+gAACAogAguAx6uARdTms | ||
178 | J7ZzvOtUiUPb3odmno3SpGridymhLtcwhwACvTAHBMYXPOKdj86Ej06HGK3CdW/LuwLb6jjtM/OM | ||
179 | 3tMydNN71ZRZuJ4bcuIQBKAHZDgbUg8Id4tXieMtV8fe49FX+LitGC01AC5SiFpktG9/CmXdKnqV | ||
180 | 9sGFjyJ9UfshgCCA0JZY4M7DOCeX5xo+Ngvns5D/E8nvEtswDinKZVhWiZP9cxzahgACAggCCLXM | ||
181 | 1svLUMZzE7rS9t2u6pqHcp8yn9sE63koZ3L6ZhvGUHzhI4oAggCCAEJpJuFnb8dUc/yies5HrvMF | ||
182 | pqlwnhXcvrE3ZJHBeyltcnplEdyyFwEEAQQBhELEITzPg96Ou1ykwq6EYS4n4XqeTslt/SaDIrrE | ||
183 | eSEh7aMfgonqCCAIIAggZChe5X2ZwsdUc9xZzOX6ML2Htu1ZKPdJ9DkV0SXOC4ly6lFCAAEBBAFE | ||
184 | 6BA6thALt9KHs5RaPFdWIY87Pc1DuXNsTFJHAEEAQQChc7NwPbxK6NhOqb0e923/0p/XksOwrJJ7 | ||
185 | lUxSRwBBAEEAoVXV8zqepq9unbu96m5MlwPcJ+K8kJJ7Q3IYlhXbMfaEzAttw0UwSR0BBAGEDANI | ||
186 | PMEebpysKEMVOGah3HH/fTpP4WPohVncP0rvDVmF/odlzUPZtz02SR0BBAGErALIl/Dzri/ViWqI | ||
187 | V4RLNtkIGk9DubddFTz6239K7w2J+h6WVfpE/xyCHAIICCD8N4DctSGXafk7nbCWQkmnhU4VNg6D | ||
188 | Ho59Xabg8SGMeyjKLJTfG9L3QwyHEObOQ15Po0cAAQFkhAFkswdkm5P/ZjBZCiaNFIUxYPyVvs40 | ||
189 | SWNWKXSc20cHVUCH0P8tZ49SmCt1vtXQbryAAIIAQmEBJBa98eFb0z1/1SKd1L6nwm8lnPxS9B2m | ||
190 | No7L040/07w4VOdjcAegh4LvaSi/d63PW86W+uDCm8dtk9QRQBBA6DyAVCfSNu/0UgWReJL7O/zs | ||
191 | SalOgEMJGGGjGHl64++0a5lCx7nQu5OTUPZT1EPof27DcWrDkntD+hzWhgACAshIA0hlmk6kfdzK | ||
192 | dTOUVD0pNwPMpraKjc0wEW4JEX+Fnz0Xh8Etb/suPGMvx9jnduzrMF2AKD0sX6QgctlTG5Y8Qb06 | ||
193 | puoNQQBBAKHzALJZhMcQUj3MrtTidHVHoSA0lCuG0c+p2FxqjkaVfiU/hP4fwHcSyu5R0huCAIIA | ||
194 | Qm8B5LYw4iF39CUWk1/T15XmaNU0XPeGHBW+Huehvzs96Q1BAAEBhD0DyG0n11n4+TwKgYSmLVMB | ||
195 | VIUOuneUgsi04HVYhX7nhpyE8ntD3CkLAQQBhCwCiEBCm4FjEUwiz8VQbtn7LvT3FPAh9Ib0ObcG | ||
196 | AQQEEAFkK9MURB4Hz7Xgd9XNBqqw4VbN+RvCJPW4n70I/Q0pigHodSj3As0qtZ95VwKIRkAAIcsA | ||
197 | clcBcyiUjFIVMr6Hnw+upEzzFERKvt1snxPUp+G6N6Tk418ckmWCugACAghFBJC7Qsl0I5hUf6ZM | ||
198 | MVisbgSNlWYZnCEMy3qfCum+lP4UdUOyBBAQQCg2gGwTTP7a+LO5JXlYhJ/PaalChl6N8ZmlInpa | ||
199 | cGB+1mMRPUntd1Rw+73y2RdAQABhKAHkoaKn+vpn+P3p4zRTWGw+tb76u7kaDK2IvkwhpM8iOvYk | ||
200 | nRbcfn0OaUMAQQBBAMlC1VMyDT+vzD7dKJbGPMRrFX4OiYoF17/h16fPCxjUdRLKvd1sDreajcel | ||
201 | L6HcXl7zQgQQEEAYdQDZ1s0wcnOI1+NbioEchoHdFhKqMHHb92yGDmjTPFz3hpSqz1v1RtP18imU | ||
202 | e5EkBrhXPgYCCAggCCDdFg/Thn7XQnNSqFkqoku9kt93EV36kDYhRAABAQQBBOhc6cOJYhEdhxT1 | ||
203 | ORwxhpB5oe3nDlkCCAggCCCAELKjvu+QFZ2EcufVLFL7IYBA4/5PEwCQaQFfeoCKAaTU4UyzUPZ8 | ||
204 | IEAAAUAIGWUIOS84hMyFEEAAAaCPEFLypOQYQj71/B5KDyFzHwNAAAGgSxeFh5BZ6P9KfskhJD5k | ||
205 | cepjAAggAHRdQL8r+P3PQ7/PCCk5hEyCoVhAg9wFaygb0l2wgG6UfHvZ6EW47tHp0yyU+ayVOB9o | ||
206 | 4SNQPrUffdMDAsAu4hX888IDVN+F/yKUObn/pd0fEEAA6CuELAt97zF8fMrgfZR4h7GpXR8QQADo | ||
207 | y7OCQ8hsvRwJIb/x5HNAAAEgW5eFh5DTTN5HbL9HmbRjfA9xjsz5LWEk/v2D3R5ogknoQ9mQJqED | ||
208 | /YhDmuLD/g4LfO85zWfJpR03J+lPNt7Pwq4+HGo/BBAEEEAI6cdFKrhz0vddxlbhukcGAQQEEAQQ | ||
209 | QAhp4/CZ4Xs6WS9ve3x9t9sVQKBV5oAA0ITS54TkFkBehWYnha92+N7nNgEggAAghOzmTej/gYP7 | ||
210 | OE9tuWrwd77YMtQc2pUBAQQAIWQ3L1PBfd9woveZt2VswycNBalpCjNPguFVgAACgBDSuMO0LNJ7 | ||
211 | iYX3u/T3WNDHIU5vCmnLFw2916MUQp6l33dXb8hnuzDQJpPQh7IhTUIH8tP3xPQYOE4G1J6xHc/2 | ||
212 | aM8qjG1un3m4nvMxS+Hk48DajFuo/RBAEECAoevr1rI3C+6hhLrjUO8uWUNsDwQQCmQIFgBta/qB | ||
213 | f5dhu8nUswG2ZVzvk2AuByCAAMCDIeRVQ78r9gK82TKETAbannF+zbPUpiu7FyCAAMDvzlPR3MTz | ||
214 | LR5v+bsmI2jTRymIPDTp/6NdEMiBOSBD2ZDmgADlmK6XT2G/yemLFEAemuh+MMK2jXe7enojfH0M | ||
215 | zQ6Do2BqPwQQBBBgrE7D9YTq2oe+jT+frJfXN4ru+JyPN5oZBBAEEAQQgEq8Wn8W6g2Vunngi79j | ||
216 | Fq57Q+KzPpaaFwQQBBAEEIBwS3CIvSHzPQMIIIBQAJPQAehbnEgeJ1HHOR2LLX9mpdkABBAA2Mci | ||
217 | hZC4XDzwveZ2ABTKEKyhbEhDsIDhmYbrOR1P05+jr+H6bk4rzQP1qP0QQBBAAAABhNEwBAsAABBA | ||
218 | AAAAAQQAAEAAAQAABBAAAAABBAAAEEAAAAABBAAAQAABAAAEEAAAAAEEAAAQQAAAAAEEAABAAAEA | ||
219 | AAQQAAAAAQQAABBAAAAAAQQAAEAAAQAABBAAAAABBAAAEEAAAAABBAAAQAABAAAEEAAAAAEEAAAQ | ||
220 | QAAAAAEEAABAAAEAAAQQAAAAAQQAABBAAAAABBAAAEAAAQAABBAAAAABBAAAEEAAAAAEEAAAQAAB | ||
221 | AAAEEAAAAAEEAAAQQAAAAAQQAABAAAEAAAQQAAAAAQQAABBAAAAABBAAAEAAAQAABBAAAAABBAAA | ||
222 | EEAAAAAEEAAAQAABAAAEEAAAAAEEAAAQQAAAAAQQAABAAAEAABBAAAAAAQQAABBAAAAABBAAAEAA | ||
223 | AQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAAAQQAAAAAEEAAAQQAAAAAQQAABAAAEAABBAAAAAAQQA | ||
224 | ABBAAAAABBAAAEAAAQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAAAQQAAAAAEEAABAAAEAAAQQAABA | ||
225 | AAEAABBAAAAAAQQAAEAAAQAABBAAAGDA/tAEAP81WS+HG39fZPb+Zht/Xq6XS5ssO9O0hLR9lpoE | ||
226 | 4Hd6QICxi4X9t/Xyz3r5srFcrZezjYKyDzEQfUrvZfO9Ve/10ObLwsl6+ZGWahtV+9RJCrcAJAdX | ||
227 | V1daYQgb8uBAI8Du5ilk3CdeyX4Wur+avc17i16tl3ObsheTFBBnD3zfMu1Deq3IgtoPAQQBBPpx | ||
228 | lIrHbazWy5MOC8hpuL6Cvs2V88v03lY2aedO18vxlt97nsIiCCCMniFYwFi93TEQHHX83rYdthO/ | ||
229 | 77XN2bnpDuEjmod+h/MBCCAAPdt1/kSXxeO05XWh+23U9T4EIIAAAAAIIAAAgAACAAAIIAAAAAII | ||
230 | AAAggAAAAAggAACAAAIAAAggAAAAAggAAFCQPzQBmZmsl/l6ebxepunfvq6Xi/WybPi1Zml52uLr | ||
231 | dLk+bZuldYjLn+vl8Mb/f01fV2ndlnZnbpim/abad57e+P+4z/y7Xi439qHLEbTLYfp8TW60SVz3 | ||
232 | 7+nPi/TZWg10v5imNgjpeDnZ+P+4zn9vtMNQ94vpxnH2ZhvcdqxdjOgzwtBcXV1ZBrAMxPF6+Sfu | ||
233 | lncsX+45IO9aSP944HWmDbzOvKP1aTsMfrpnHR5aPqXfkeN67rouJx2+ty87vrcvGe9HR+vl7IHP | ||
234 | wn3Lt/Vy2tBnsulAvuu6zG4Um6c12uVH+rnDAYSu0weOxdph+8/I8S6fEXWTpfe6VSMIIJk43eFA | ||
235 | u08xO9/ydf7Z88Q272h92roKt0/BeFd7nmVWRAog7ZrvWVTdtZ6zwgPIZIfjXUntsUsg/dbwfvEt | ||
236 | 7W8lmdX4nG+zbHWcVTdZBBCLALL7ifyko9epW9RNdizezzLaFicNB4/bgshJJusqgLT3ef7R4j5U | ||
237 | 9axNCjtuXaWr1N9CO0Vnzr2p1ZX+Ly3vF18K6BGZ7Nmr3MjxSt1k6XsxCZ0cPN/x+1/uUTC0+f2b | ||
238 | V/gmO35/DsVBLIzetlzITNJr5D78jHpOQ3NDGB/6zPwo8Op/W0OG5unzm2vxfZLeX9vbq+pVyLU3 | ||
239 | pNpvuzjmvw159rDDfwkg5HJlbBfTzNdn1/fX9wniKHR/5XAmhAzKJPwch97la+ZcbPZx3MmtByBu | ||
240 | o7NUDHf9mrntF/H9dN1zV11Ymvp4IIAAYz8pbp4chZBhhI8+C9+zUF5PyFC3RU4BMacQchr6G2o7 | ||
241 | DXkMWQQBBPivWeh//slhyGsODGUWvAqsX7dJDnNCzjLYL3J4DzEEHff8HhxnEUCALExT0ZaDo5DH | ||
242 | PBjKLPA2i25+Fpxve3z904w+02c9b4dc9kvHWQQQoHe5XTE+tUmKc5xZQRPfy8xm+WX79NEes9D/ | ||
243 | Ff+bIWDeUyj+lNk+4TiLAAL0WpjkdrecaTCZuCRxe73N8H29tml+0fU2yrUnqo99dacHA3b4udUL | ||
244 | ggACdG6SaeEYPbd5iipsc5xzcRTc8WfTLHR7seE40/afhm57g3IN6I6zZOMPTQCjctxA4bhYL5/X | ||
245 | y/KWYuf5HgVP9fyUS5spa7G4mu/5O1br5WK9fL2xveO+8zjs/iydm/vheUHtuUyfp0XDn6dK7BV6 | ||
246 | 1cF6TML+PVCXadvd3C/iPvd0z/3i+S1t3JYmeuLO035xmd73YVr3w422qHucfRWgb57G6EnoGajz | ||
247 | dNw6Tgb2OnXs85Tzbe92FAunuk977nJ4gCeh13O2xz70z5bhZbLH63Q17n4W9ntS9bYP5tv3CeL/ | ||
248 | dHhxY5/3eLJFuJjUPL5W7d2FyZ7H2U9hu16kwz2Os4fqJosnoQNdme9x9TBejXsWfu/1uM0ife+q | ||
249 | xusc2kxZm+wREuO+8yhs1ztxma7Sng90H4rr9SRsd0V+mT5P53tssy7apO5V/8u0fifh4d7Py/R9 | ||
250 | bzLeL/bppYnr9WLLY+dyj+PsLEDPBBAYj7pjf8/D7l32lzWLhKc2U9bqFlerVCztOrzuTY2fmWbe | ||
251 | hotQbwhM3UAWQvs9i4c1270KH8sdf+59jZ/pqvCue5x9n5YujrOemYMAAnRaPO5qGeqPF74I5nMM | ||
252 | Td2A+KLmvnCZ9qMcC8263u3xs29CvSvej1tep9ke67Os+bMfMy2867TFsmaQCDU/Hy70IIAAndin | ||
253 | QNjHsqP3Sb770fkeRWb0dUDtF8PDYo+fj4HsQ42fa3v4UZ2CdhH2u1nAMsN2OKwZcvY9zi4CCCBA | ||
254 | huqceJcNnNiWmn4wYmE1rfFzH/Z83dWA2vCigd9Rp2iftrxedYLpxz1fM8djS1/HWRBAgGyLx119 | ||
255 | buB1/9X0ow6xKyG08c/DZc02bXP4UZ3ffd5AO+SmTtD76GOBAAIMVd0hErAP+1A77ZHT8KOZ/eJ/ | ||
256 | HmsLEEAAaE6dAvZvzdYK7ZqnOj1BeggRQACgweIKAAQQAABAAAEAAAQQAAAAAQQAABBAAAAABBAA | ||
257 | AEAAgU79qQk695cmAFow1QQggEAJ6jxIbabZOm9zsA81H+wvBRBhDAQQ+OlrjZ/J+aFoelp+biPF | ||
258 | 43D0VcA+1fSNhLKhPXH7+YCOkwIIAggM+AQ87ehnhlJ073tSO7abDkqdAvZxA/vg0YDacNbQ53LX | ||
259 | Y0xuvR9NFMw57herHvaJWQABBLININOaJ706V193PSEsOmivOr1ML/d4vXhV77XddPSOwn5XeN9m | ||
260 | vG51ivrHDbzuvKPw2Obxa7pn4XwS8rzq/3eNn9m3J+dlAAEEOjuB7XrQrXu1bNeT5DzTNr6sue51 | ||
261 | i4SzkPcwOborYk/3KLTnA2uPeBzap4d0WjOUfW25LeocX+qGy9h+rwe0T8z3CFOHmX9GQAAha6ua | ||
262 | B95ti+N9rsbHE8MuQ4nqvM7XDtq4bvH4qUbBdBaGNWyGn0Vmnc9qnSBxtEdwyb3grBvOJ+nzWMci | ||
263 | w3aYpbbY9bj/JeR7cWOf4+ykRlt8CiCAwF4BpM4VtG2K40kqZKZ7vL+3W4ads1Dv6uaqgzauW4BM | ||
264 | 0gl/m/WvioO5XXqw6u5H8bNxsuX+dlqzICulPeLn5NuOIX2aPlt1ji+XHQSQuhdR5jsEsuPMw0d1 | ||
265 | LF/V3Ce+7HCemu/4/SCAwB3qXDmapBP5WSqQJzcO6Mfp//ctiKsivLqyf9vr/NjjdRYdtfHFnutf | ||
266 | hYvpjfWfp4LxWzAhcuj26a17mz4nxzcK6Wn6XJ1t/P/Q22OaPjO3tcfNwvQ0fbYOO/7cd/Ua89QO | ||
267 | pzeOH5P099ON/x9qKK229Y+0X8xv2d6zjXONIa4U7+Dq6korDGFDHhyUvgrHoYwhF01brZdHHb3W | ||
268 | POw+5KGX3bmj19n14PcubHcVvwnb9jptFj3POnhfk1QA5V78POsw2P8IzV2Jjr0Vy9DsLayfhG5u | ||
269 | wdtkO7Sli8/wLH1+sw5J69rvWYAe6QEhFxfWu3XnYXgPI6NblyP+rN7lY8MBb9Zg+FiE7p7/8cGu | ||
270 | 8L82X2kGEEAowyp0d8UyJx8G/noMzztN8Iv3GQf7Nx2+1nlwgcNnBAQQHLSzdx66v1L2Prg6x/4X | ||
271 | C95rhv+JRferTI+ny47bQeHd37EdBBCoaRHG1QvSx8k6Fglv7Go0sO8qsH66SEVnLmLwOOnhdd93 | ||
272 | HHpy9koTgABCWQftrrvx+xg20GcBdxFcwWb/z8wLzfCLN5kU3/G40ucE4xfBUKxoEfQIgQBCMVah | ||
273 | 2ytHl+lkfd7ha8bXOsmgWDq3u7GHZXCV97ZjSZ8hZJVBAKgCkBByfZx3nAUBhEJcdFTYbBYMrzo6 | ||
274 | UZxnVLS1vc653zFJgVTG/rwoMIT0UXTG41hXt9zd5r20HUJKKey7OLc4liGAQIMnlzZPYMvw+9XK | ||
275 | eKJoc2jS+5DfFeP4ftoYJlAVYp8zLjYvMn5vu7bbx54/q7HwXbV4HNjVqsf2qCald9kT8S5tg5wK | ||
276 | 0TYDURV8VzXeU1/H2Tct/m7zbihPfBChpfxlwOJ98eMDCq8aXE7C/Q9Si09l/tHg65XwhPD43IEv | ||
277 | Da7v5nMMdmnLo473rX+2fF99PMDx2w7tnctn9aShfShul/nG797lGHCW2fHrZIf9bNflS2jumSFt | ||
278 | arINTjZ+73zH49KQjrM/Ns4ru/7OL+omS+91q0YQQAoxTUXIjz0KmtOw25N65zsUgbctnzouqJsw | ||
279 | S++77glxfsdJd5vi47SnguChbdxXQTvZorD4FvJ7Kvk+n9Xqczq5pS22+Szm2B6bx5NPoZlwdlbA | ||
280 | RY27wljdY/jZHcfvsy3b7DCz4+xZzVD245aLaAKIpbjlYCTF6+AdHByMaXUP0/L4gZPKar18D/s/ | ||
281 | DXiaThjx69MHXu/vjdcreVzu5hOZnzbQxtN7iqb4O+LwhD7ni8Ti8PmNk3p8Xx9D/3MQjtJ72yy+ | ||
282 | 4r4Vh2mdF/BZnaXP6l3h/3JjH3qorWPh9fqWkBF/R3zI5vsCPneTG+1S/f2u4FQdS76G4dyqfJv9 | ||
283 | IqR1XqZ1vm+7Hqf94rbfdZ6OL7nuF7O0/LXFZ+TijuPstx0D1mJd+z0L0GfdKoAIINBD8bVZ5K80 | ||
284 | CzWKtl8KKk3CLUFuLPvFroXcxbr2cxttevWHJhjI0UeQpAyXisXmjPjCg32I24xxMva0xs98t6vQ | ||
285 | N3fBAgAo06zGz7htLwIIAAC1vKzxM27bS+/MAQEo9QBu7heMWbxBxSe1HyXSAwIAUJZZqHeL8AtN | ||
286 | Rw5MQgcA6D5ATNNS3Wp5scXPxTt9xVsOz2u+7mdNTw50wwGUegA3BAtKcxJuf5ZNZRXuvjX5bM/X | ||
287 | jr/3UfyD2o++6QEBAGjfabh+aOJ9pqHerXW38dEmIBd6QABKPYDrAYFSxKFT33p8/VVIvR+R2o++ | ||
288 | mYQOANCuo55f/5VNgAACADAej3t87XdhuwnuIIAAAAxEX08fPw/XE99BAAEAGJHvPYUPQ6/Ikkno | ||
289 | AKUewE1Ch1LE2+7+CHfffrdpb9bL+7v+U+1H3/SAAAC06zKFgrYt1suT+8IH5MBzQAAA2neevp61 | ||
290 | FDw+brwGZM0QLIBSD+CGYEGJZuH6aejx6z5Dslbr5SIFj+UuP6j2QwABQACBcZqmZZb+/le4+0no | ||
291 | MWT8G657O+Kfa99ZS+2HAAIAAIyGSegAAIAAAgAACCAAAAACCAAAIIAAAAAIIAAAgAACAAAIIAAA | ||
292 | AAIIAAAggAAAAAggAACAAAIAAAggAAAAAggAACCAAAAACCAAAIAAAgAACCAAAAACCAAAIIAAAAAI | ||
293 | IAAAgAACAAAIIAAAAAIIAAAggAAAAAggAACAAAIAAAggAAAAAggAACCAAAAACCAAAIAAAgAAIIAA | ||
294 | AAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAAAggAAAAAggAACAAAIAACCAAAAAAggAACCAAAAA | ||
295 | CCAAAIAAAgAAIIAAAAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAAAggAAAAAggAACAAAIAACCA | ||
296 | AAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAgAACAAAggAAAAAIIAACAAAIA | ||
297 | AAggAACAAAIAACCAAAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAgAACAAAg | ||
298 | gAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAEBt/y/AAEmyIDWRykGwAAAAAElFTkSuQmCC"> | ||
299 | </image> | ||
300 | </svg> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo.png b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo.png deleted file mode 100755 index 5305c77d..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo.svg b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo.svg deleted file mode 100644 index 865da440..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/img/logo.svg +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="64" height="64"> | ||
3 | <circle cx="32" cy="32" r="29.5" style="fill:#000" /> | ||
4 | <path d="m 16,18 33,0 0,26 -16.5,6 -16.5,-6 z" fill="#fff" /> | ||
5 | <rect width="9" height="2.5" x="17.5" y="24.5" fill="#000" /> | ||
6 | <rect width="9" height="2.5" x="28" y="24.5" fill="#000" /> | ||
7 | <rect width="9" height="2.5" x="38.5" y="24.5" fill="#000" /> | ||
8 | </svg> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/autoClose.js b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/autoClose.js deleted file mode 100644 index e9145b7e..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/autoClose.js +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | $(document).ready(function() { | ||
2 | current_url = window.location.href | ||
3 | if (current_url.match("&closewin=true")) { | ||
4 | window.close(); | ||
5 | } | ||
6 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/autoCompleteTags.js b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/autoCompleteTags.js deleted file mode 100755 index 90bc982c..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/autoCompleteTags.js +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | jQuery(function($) { | ||
2 | |||
3 | function split( val ) { | ||
4 | return val.split( /,\s*/ ); | ||
5 | } | ||
6 | function extractLast( term ) { | ||
7 | return split( term ).pop(); | ||
8 | } | ||
9 | |||
10 | |||
11 | $("#value").bind("keydown", function(event) { | ||
12 | if (event.keyCode === $.ui.keyCode.TAB && $(this).data("ui-autocomplete").menu.active) { | ||
13 | event.preventDefault(); | ||
14 | } | ||
15 | }).autocomplete({ | ||
16 | source : function(request, response) { | ||
17 | $.getJSON("./?view=tags", { | ||
18 | term : extractLast(request.term), | ||
19 | //id: $(':hidden#entry_id').val() | ||
20 | }, response); | ||
21 | }, | ||
22 | search : function() { | ||
23 | // custom minLength | ||
24 | var term = extractLast(this.value); | ||
25 | if (term.length < 1) { | ||
26 | return false; | ||
27 | } | ||
28 | }, | ||
29 | focus : function() { | ||
30 | // prevent value inserted on focus | ||
31 | return false; | ||
32 | }, | ||
33 | select : function(event, ui) { | ||
34 | var terms = split(this.value); | ||
35 | // remove the current input | ||
36 | terms.pop(); | ||
37 | // add the selected item | ||
38 | terms.push(ui.item.value); | ||
39 | // add placeholder to get the comma-and-space at the end | ||
40 | terms.push(""); | ||
41 | this.value = terms.join(", "); | ||
42 | return false; | ||
43 | } | ||
44 | }); | ||
45 | |||
46 | |||
47 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/closeMessage.js b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/closeMessage.js deleted file mode 100644 index 527719d5..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/closeMessage.js +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | $(function(){ | ||
2 | //--------------------------------------------------------------------------- | ||
3 | // Show the close icon when the user hover over a message | ||
4 | //--------------------------------------------------------------------------- | ||
5 | // $('.messages').on('mouseenter', function(){ | ||
6 | // $(this).find('a.closeMessage').stop(true, true).show(); | ||
7 | // }).on('mouseleave', function(){ | ||
8 | // $(this).find('a.closeMessage').stop(true, true).hide(); | ||
9 | // }); | ||
10 | //--------------------------------------------------------------------------- | ||
11 | // Close the message box when the user clicks the close icon | ||
12 | //--------------------------------------------------------------------------- | ||
13 | $('a.closeMessage').on('click', function(){ | ||
14 | $(this).parents('div.messages').slideUp(300, function(){ $(this).remove(); }); | ||
15 | return false; | ||
16 | }); | ||
17 | }); \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/init.js b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/init.js deleted file mode 100755 index 9bdc6f21..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/init.js +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | $.fn.ready(function() { | ||
2 | |||
3 | var $listmode = $('#listmode'), | ||
4 | $listentries = $("#list-entries"); | ||
5 | |||
6 | /* ========================================================================== | ||
7 | Menu | ||
8 | ========================================================================== */ | ||
9 | |||
10 | $("#menu").click(function(){ | ||
11 | $("#links").toggleClass('menu--open'); | ||
12 | if ($('#content').hasClass('opacity03')) { | ||
13 | $('#content').removeClass('opacity03'); | ||
14 | } | ||
15 | }); | ||
16 | |||
17 | /* ========================================================================== | ||
18 | List mode or Table Mode | ||
19 | ========================================================================== */ | ||
20 | |||
21 | $listmode.click(function(){ | ||
22 | if ( $.cookie("listmode") == 1 ) { | ||
23 | // Cookie | ||
24 | $.removeCookie("listmode"); | ||
25 | |||
26 | $listentries.removeClass("listmode"); | ||
27 | $listmode.removeClass("tablemode"); | ||
28 | $listmode.addClass("listmode"); | ||
29 | } | ||
30 | else { | ||
31 | // Cookie | ||
32 | $.cookie("listmode", 1, {expires: 365}); | ||
33 | |||
34 | $listentries.addClass("listmode"); | ||
35 | $listmode.removeClass("listmode"); | ||
36 | $listmode.addClass("tablemode"); | ||
37 | } | ||
38 | |||
39 | }); | ||
40 | |||
41 | /* ========================================================================== | ||
42 | Cookie listmode | ||
43 | ========================================================================== */ | ||
44 | |||
45 | if ( $.cookie("listmode") == 1 ) { | ||
46 | $listentries.addClass("listmode"); | ||
47 | $listmode.removeClass("listmode"); | ||
48 | $listmode.addClass("tablemode"); | ||
49 | } | ||
50 | |||
51 | /* ========================================================================== | ||
52 | Add tag panel | ||
53 | ========================================================================== */ | ||
54 | |||
55 | |||
56 | $('#nav-btn-add-tag').on('click', function(){ | ||
57 | $(".nav-panel-add-tag").toggle(100); | ||
58 | $(".nav-panel-menu").addClass('hidden'); | ||
59 | $("#tag_label").focus(); | ||
60 | return false; | ||
61 | }); | ||
62 | |||
63 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/popupForm.js b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/popupForm.js deleted file mode 100644 index b933acd1..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/popupForm.js +++ /dev/null | |||
@@ -1,83 +0,0 @@ | |||
1 | $(document).ready(function() { | ||
2 | |||
3 | $("#search-form").hide(); | ||
4 | $("#bagit-form").hide(); | ||
5 | $("#filter-form").hide(); | ||
6 | |||
7 | //--------------------------------------------------------------------------- | ||
8 | // Toggle the "Search" popup in the sidebar | ||
9 | //--------------------------------------------------------------------------- | ||
10 | function toggleSearch() { | ||
11 | $("#search-form").toggle(); | ||
12 | $("#search").toggleClass("current"); | ||
13 | $("#search").toggleClass("active-current"); | ||
14 | $("#search-arrow").toggleClass("arrow-down"); | ||
15 | if ($("#search").hasClass("current")) { | ||
16 | $("#content").addClass("opacity03"); | ||
17 | } else { | ||
18 | $("#content").removeClass("opacity03"); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | //--------------------------------------------------------------------------- | ||
23 | // Toggle the "Filter" popup on entries list | ||
24 | //--------------------------------------------------------------------------- | ||
25 | function toggleFilter() { | ||
26 | $("#filter-form").toggle(); | ||
27 | } | ||
28 | |||
29 | //--------------------------------------------------------------------------- | ||
30 | // Toggle the "Save a Link" popup in the sidebar | ||
31 | //--------------------------------------------------------------------------- | ||
32 | function toggleBagit() { | ||
33 | $("#bagit-form").toggle(); | ||
34 | $("#bagit").toggleClass("current"); | ||
35 | $("#bagit").toggleClass("active-current"); | ||
36 | $("#bagit-arrow").toggleClass("arrow-down"); | ||
37 | if ($("#bagit").hasClass("current")) { | ||
38 | $("#content").addClass("opacity03"); | ||
39 | } else { | ||
40 | $("#content").removeClass("opacity03"); | ||
41 | } | ||
42 | } | ||
43 | |||
44 | //--------------------------------------------------------------------------- | ||
45 | // Close all #links popups in the sidebar | ||
46 | //--------------------------------------------------------------------------- | ||
47 | function closePopups() { | ||
48 | $("#links .messages").hide(); | ||
49 | $("#links > li > a").removeClass("active-current"); | ||
50 | $("#links > li > a").removeClass("current"); | ||
51 | $("[id$=-arrow]").removeClass("arrow-down"); | ||
52 | $("#content").removeClass("opacity03"); | ||
53 | } | ||
54 | |||
55 | $("#search").click(function(){ | ||
56 | closePopups(); | ||
57 | toggleSearch(); | ||
58 | $("#searchfield").focus(); | ||
59 | }); | ||
60 | |||
61 | $("#filter").click(function(){ | ||
62 | closePopups(); | ||
63 | toggleFilter(); | ||
64 | }); | ||
65 | |||
66 | $("#bagit").click(function(){ | ||
67 | closePopups(); | ||
68 | toggleBagit(); | ||
69 | $("#plainurl").focus(); | ||
70 | }); | ||
71 | |||
72 | $("#search-form-close").click(function(){ | ||
73 | toggleSearch(); | ||
74 | }); | ||
75 | |||
76 | $("#filter-form-close").click(function(){ | ||
77 | toggleFilter(); | ||
78 | }); | ||
79 | |||
80 | $("#bagit-form-close").click(function(){ | ||
81 | toggleBagit(); | ||
82 | }); | ||
83 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/restoreScroll.js b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/restoreScroll.js deleted file mode 100644 index 331c9e19..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/restoreScroll.js +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | function supportsLocalStorage() { | ||
2 | try { | ||
3 | return 'localStorage' in window && window['localStorage'] !== null; | ||
4 | } catch (e) { | ||
5 | return false; | ||
6 | } | ||
7 | } | ||
8 | |||
9 | function savePercent(id, percent) { | ||
10 | if (!supportsLocalStorage()) { return false; } | ||
11 | localStorage["poche.article." + id + ".percent"] = percent; | ||
12 | return true; | ||
13 | } | ||
14 | |||
15 | function retrievePercent(id) { | ||
16 | if (!supportsLocalStorage()) { return false; } | ||
17 | |||
18 | var bheight = $(document).height(); | ||
19 | var percent = localStorage["poche.article." + id + ".percent"]; | ||
20 | var scroll = bheight * percent; | ||
21 | |||
22 | $('html,body').animate({scrollTop: scroll}, 'fast'); | ||
23 | |||
24 | return true; | ||
25 | } \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/saveLink.js b/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/saveLink.js deleted file mode 100755 index 34e934cc..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/saveLink.js +++ /dev/null | |||
@@ -1,96 +0,0 @@ | |||
1 | $.fn.ready(function() { | ||
2 | |||
3 | var $bagit = $('#bagit'), | ||
4 | $bagitForm = $('#bagit-form'), | ||
5 | $bagitFormForm = $('#bagit-form-form'); | ||
6 | |||
7 | /* ========================================================================== | ||
8 | bag it link and close button | ||
9 | ========================================================================== */ | ||
10 | |||
11 | function toggleSaveLinkForm(url, event) { | ||
12 | $("#add-link-result").empty(); | ||
13 | |||
14 | $bagit.toggleClass("active-current"); | ||
15 | |||
16 | //only if bag-it link is not presented on page | ||
17 | if ( $bagit.length === 0 ) { | ||
18 | if ( event !== 'undefined' && event ) { | ||
19 | $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200}); | ||
20 | } | ||
21 | else { | ||
22 | $bagitForm.css( {position:"relative", top:"auto", left:"auto"}); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | if ($("#search-form").length != 0) { | ||
27 | $("#search").removeClass("current"); | ||
28 | $("#search-arrow").removeClass("arrow-down"); | ||
29 | $("#search-form").hide(); | ||
30 | } | ||
31 | $bagitForm.toggle(); | ||
32 | $('#content').toggleClass("opacity03"); | ||
33 | if (url !== 'undefined' && url) { | ||
34 | $('#plainurl').val(url); | ||
35 | } | ||
36 | $('#plainurl').focus(); | ||
37 | } | ||
38 | |||
39 | //--------------------------------------------------------------------------- | ||
40 | // These two functions are now taken care of in popupForm.js | ||
41 | //--------------------------------------------------------------------------- | ||
42 | |||
43 | // $bagit.click(function(){ | ||
44 | // $bagit.toggleClass("current"); | ||
45 | // $("#bagit-arrow").toggleClass("arrow-down"); | ||
46 | // toggleSaveLinkForm(); | ||
47 | // }); | ||
48 | |||
49 | // $("#bagit-form-close").click(function(){ | ||
50 | // $bagit.removeClass("current"); | ||
51 | // $("#bagit-arrow").removeClass("arrow-down"); | ||
52 | // toggleSaveLinkForm(); | ||
53 | // }); | ||
54 | |||
55 | |||
56 | //send "bag it link" form request via ajax | ||
57 | $bagitFormForm.submit( function(event) { | ||
58 | $("body").css("cursor", "wait"); | ||
59 | $("#add-link-result").empty(); | ||
60 | |||
61 | $.ajax({ | ||
62 | type: $bagitFormForm.attr('method'), | ||
63 | url: $bagitFormForm.attr('action'), | ||
64 | data: $bagitFormForm.serialize(), | ||
65 | success: function(data) { | ||
66 | $('#add-link-result').html("Done!"); | ||
67 | $('#plainurl').val(''); | ||
68 | $('#plainurl').blur(''); | ||
69 | $("body").css("cursor", "auto"); | ||
70 | //setTimeout( function() { toggleSaveLinkForm(); }, 1000); //close form after 1000 delay | ||
71 | }, | ||
72 | error: function(data) { | ||
73 | $('#add-link-result').html("Failed!"); | ||
74 | $("body").css("cursor", "auto"); | ||
75 | } | ||
76 | }); | ||
77 | |||
78 | event.preventDefault(); | ||
79 | }); | ||
80 | |||
81 | /* ========================================================================== | ||
82 | Process all links inside an article | ||
83 | ========================================================================== */ | ||
84 | |||
85 | $("article a[href^='http']").after(function() { | ||
86 | return " <a href=\"" + $(this).attr('href') + "\" class=\"add-to-wallabag-link-after\" alt=\"add to wallabag\" title=\"add to wallabag\"></a> "; | ||
87 | }); | ||
88 | |||
89 | $(".add-to-wallabag-link-after").click(function(event){ | ||
90 | toggleSaveLinkForm($(this).attr('href'), event); | ||
91 | event.preventDefault(); | ||
92 | }); | ||
93 | |||
94 | }); | ||
95 | |||
96 | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/main.css b/src/Wallabag/CoreBundle/Resources/public/themes/material/css/main.css deleted file mode 100755 index 9d9ebe12..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/main.css +++ /dev/null | |||
@@ -1,550 +0,0 @@ | |||
1 | /* ========================================================================== | ||
2 | Sommaire | ||
3 | |||
4 | 0 = Common | ||
5 | 1 = Nav | ||
6 | 2 = Side-nav | ||
7 | 3 = Filters slider | ||
8 | 4 = Cards | ||
9 | 5 = Article | ||
10 | 6 = Media queries | ||
11 | 7 = Font | ||
12 | 8 = Others | ||
13 | |||
14 | ========================================================================== */ | ||
15 | |||
16 | |||
17 | /* ========================================================================== | ||
18 | 0 = Common | ||
19 | ========================================================================== */ | ||
20 | |||
21 | @font-face { | ||
22 | font-family: 'icomoon'; | ||
23 | src:url('../font/icomoon/icomoon.eot?yw303w'); | ||
24 | src:url('../font/icomoon/icomoon.eot?yw303w#iefix') format('embedded-opentype'), | ||
25 | url('../font/icomoon/icomoon.ttf?yw303w') format('truetype'), | ||
26 | url('../font/icomoon/icomoon.woff?yw303w') format('woff'), | ||
27 | url('../font/icomoon/icomoon.svg?yw303w#icomoon') format('svg'); | ||
28 | font-weight: normal; | ||
29 | font-style: normal; | ||
30 | } | ||
31 | |||
32 | [class^="icon-"], [class*=" icon-"] { | ||
33 | font-family: 'icomoon'; | ||
34 | speak: none; | ||
35 | font-style: normal; | ||
36 | font-weight: normal; | ||
37 | font-variant: normal; | ||
38 | text-transform: none; | ||
39 | line-height: 1; | ||
40 | |||
41 | /* Better Font Rendering =========== */ | ||
42 | -webkit-font-smoothing: antialiased; | ||
43 | -moz-osx-font-smoothing: grayscale; | ||
44 | } | ||
45 | |||
46 | body { | ||
47 | display: flex; | ||
48 | min-height: 100vh; | ||
49 | flex-direction: column; | ||
50 | background: #f0f0f0; | ||
51 | } | ||
52 | |||
53 | body.login main { | ||
54 | padding: 0; | ||
55 | min-height: 100vh; | ||
56 | } | ||
57 | |||
58 | .border-bottom { | ||
59 | border-bottom: 1px solid #DDD; | ||
60 | } | ||
61 | |||
62 | nav, main, footer { | ||
63 | padding-left: 240px; | ||
64 | } | ||
65 | |||
66 | main, #content, .valign-wrapper { | ||
67 | height: 100%; | ||
68 | } | ||
69 | |||
70 | #main { | ||
71 | flex: 1 0 auto; | ||
72 | } | ||
73 | |||
74 | .results { | ||
75 | height: 1em; | ||
76 | line-height: 30px; | ||
77 | } | ||
78 | |||
79 | .results .nb-results, .results .pagination { | ||
80 | margin: 15px; | ||
81 | margin-bottom: 0; | ||
82 | } | ||
83 | |||
84 | .pagination { | ||
85 | float: right; | ||
86 | } | ||
87 | |||
88 | .pagination ul { | ||
89 | margin: 0 !important; | ||
90 | } | ||
91 | |||
92 | .pagination li { | ||
93 | padding: 0; | ||
94 | } | ||
95 | |||
96 | .pagination a { | ||
97 | padding: 0px 10px; | ||
98 | height: 30px; | ||
99 | display: block; | ||
100 | } | ||
101 | |||
102 | .pagination li.active span { | ||
103 | padding: 0px 10px; | ||
104 | height: 30px; | ||
105 | display: block; | ||
106 | color: #fff; | ||
107 | } | ||
108 | |||
109 | .pagination .disabled { | ||
110 | margin-right: 10px; | ||
111 | margin-left: 10px; | ||
112 | } | ||
113 | |||
114 | .page-footer .footer-copyright p { | ||
115 | display: inline; | ||
116 | } | ||
117 | |||
118 | .hidden { | ||
119 | display: none; | ||
120 | } | ||
121 | |||
122 | .picker__date-display { | ||
123 | display: none; | ||
124 | } | ||
125 | |||
126 | footer.page-footer { | ||
127 | margin-top: 10px; | ||
128 | padding-top: 10px; | ||
129 | } | ||
130 | |||
131 | footer .row { | ||
132 | margin-bottom: 10px; | ||
133 | } | ||
134 | |||
135 | /* ========================================================================== | ||
136 | 1 = Nav | ||
137 | ========================================================================== */ | ||
138 | |||
139 | nav input { | ||
140 | color: #aaa; | ||
141 | } | ||
142 | |||
143 | .nav-wrapper .button-collapse { | ||
144 | padding: 0px 15px; | ||
145 | } | ||
146 | |||
147 | .nav-input { | ||
148 | display: none; | ||
149 | } | ||
150 | |||
151 | .nav-panels { | ||
152 | overflow: hidden; | ||
153 | } | ||
154 | |||
155 | .nav-panel-buttom li { | ||
156 | max-height: 64px; | ||
157 | } | ||
158 | |||
159 | .nav-panels { | ||
160 | transition: background 0.2s ease; | ||
161 | } | ||
162 | |||
163 | .nav-panel-add .mdi-content-add, | ||
164 | .nav-panel-search .mdi-action-search, | ||
165 | .nav-panels .mdi-navigation-close { | ||
166 | color: #444 !important; | ||
167 | } | ||
168 | |||
169 | .nav-panels .action { | ||
170 | padding-left: 0.75rem; | ||
171 | font-size: 2.1rem; | ||
172 | white-space: nowrap; | ||
173 | } | ||
174 | |||
175 | .nav-panels .input-field input { | ||
176 | display: block; | ||
177 | line-height: inherit; | ||
178 | padding-left: 4rem !important; | ||
179 | width: calc(100% - 8rem); | ||
180 | } | ||
181 | |||
182 | .nav-panels .input-field input:focus { | ||
183 | background-color: #fff; | ||
184 | border: 0; | ||
185 | box-shadow: none; | ||
186 | color: #444; | ||
187 | } | ||
188 | |||
189 | .input-field.nav-panel-add label { | ||
190 | left: 1rem; | ||
191 | } | ||
192 | |||
193 | .input-field.nav-panel-add .mdi-navigation-close { | ||
194 | position: absolute; | ||
195 | top: 0; | ||
196 | right: 1rem; | ||
197 | color: transparent; | ||
198 | cursor: pointer; | ||
199 | font-size: 2rem; | ||
200 | transition: .3s color; | ||
201 | } | ||
202 | |||
203 | #button_filters { | ||
204 | display: none; | ||
205 | } | ||
206 | #button_export { | ||
207 | display: none; | ||
208 | } | ||
209 | |||
210 | .input-field.nav-panel-add, .input-field.nav-panel-add form { | ||
211 | height: 100%; | ||
212 | } | ||
213 | |||
214 | /* ========================================================================== | ||
215 | 2 = Side-nav | ||
216 | ========================================================================== */ | ||
217 | |||
218 | .side-nav.fixed a { | ||
219 | font-size: 13px; | ||
220 | line-height: 44px; | ||
221 | height: 44px; | ||
222 | } | ||
223 | |||
224 | .bold > a { | ||
225 | font-weight: bold; | ||
226 | } | ||
227 | |||
228 | .side-nav > li.logo { | ||
229 | line-height: 0; | ||
230 | text-align: center; | ||
231 | } | ||
232 | |||
233 | #main .logo a { | ||
234 | height: 100pt; | ||
235 | } | ||
236 | |||
237 | #main .logo img { | ||
238 | height: 100pt; | ||
239 | width: 100pt; | ||
240 | } | ||
241 | |||
242 | #main .logo:hover { | ||
243 | background: transparent; | ||
244 | } | ||
245 | |||
246 | .side-nav li { | ||
247 | padding: 0px; | ||
248 | } | ||
249 | |||
250 | .side-nav a { | ||
251 | margin: 0px 1rem; | ||
252 | } | ||
253 | |||
254 | /* ========================================================================== | ||
255 | * 3 = Filters slider | ||
256 | * ========================================================================== */ | ||
257 | |||
258 | #filters button { | ||
259 | padding: 0px; | ||
260 | width: 100%; | ||
261 | } | ||
262 | |||
263 | .side-nav.fixed.right-aligned { | ||
264 | right: -250px; | ||
265 | left: auto !important; | ||
266 | overflow-y: visible; | ||
267 | } | ||
268 | |||
269 | #filters div.with-checkbox { | ||
270 | height: 3rem; | ||
271 | margin-top: 0px; | ||
272 | } | ||
273 | |||
274 | /* ========================================================================== | ||
275 | 4 = Cards | ||
276 | ========================================================================== */ | ||
277 | |||
278 | main #content { | ||
279 | padding: 0px 0.5rem; | ||
280 | } | ||
281 | |||
282 | main ul.row { | ||
283 | padding: 0px 0.75rem; | ||
284 | } | ||
285 | |||
286 | .data .card .card-body { | ||
287 | height: 22em; | ||
288 | overflow: hidden; | ||
289 | } | ||
290 | |||
291 | .card .card-content .card-title { | ||
292 | line-height: 32px; | ||
293 | max-height: 64px; | ||
294 | display: block; | ||
295 | } | ||
296 | |||
297 | .card .card-content i.right, .card .card-reveal i.right { | ||
298 | margin-left: 0; | ||
299 | } | ||
300 | |||
301 | .card .card-content .estimatedTime { | ||
302 | margin-bottom: 10px; | ||
303 | } | ||
304 | |||
305 | .card .card-action .original { | ||
306 | line-height: 24px; | ||
307 | } | ||
308 | |||
309 | .card .card-action ul.links { | ||
310 | margin: 0; | ||
311 | font-size: 24px; | ||
312 | line-height: 24px; | ||
313 | } | ||
314 | |||
315 | .card .card-action a { | ||
316 | color: #ffffff; | ||
317 | margin: 0; | ||
318 | } | ||
319 | |||
320 | .card .card-action a:hover { | ||
321 | color: #ffffff; | ||
322 | } | ||
323 | |||
324 | .settings .div_tabs { | ||
325 | padding-bottom: 15px; | ||
326 | } | ||
327 | |||
328 | .card.sw { | ||
329 | max-width: 370px; | ||
330 | margin-left: auto; | ||
331 | margin-right: auto; | ||
332 | } | ||
333 | |||
334 | .mdi-card-close:before { | ||
335 | content: "\e8aa"; | ||
336 | } | ||
337 | |||
338 | .card .card-image { | ||
339 | height: 14em; | ||
340 | } | ||
341 | |||
342 | .card .card-image .preview { | ||
343 | height: 14em; | ||
344 | background-size: cover; | ||
345 | background-repeat: no-repeat; | ||
346 | background-position: 50%; | ||
347 | } | ||
348 | |||
349 | /* ========================================================================== | ||
350 | 5 = Article | ||
351 | ========================================================================== */ | ||
352 | |||
353 | #article { | ||
354 | font-size: 20px; | ||
355 | margin: 0px auto; | ||
356 | max-width: 40em; | ||
357 | } | ||
358 | |||
359 | #article img, | ||
360 | #article figure { | ||
361 | max-width: 100%; | ||
362 | height: auto; | ||
363 | } | ||
364 | |||
365 | .reader-mode { | ||
366 | width: 95px !important; | ||
367 | transition: width 0.2s ease; | ||
368 | } | ||
369 | |||
370 | .reader-mode:hover { | ||
371 | width: 240px !important; | ||
372 | } | ||
373 | |||
374 | .reader-mode .collapsible-body { | ||
375 | height: 0; | ||
376 | overflow: hidden; | ||
377 | } | ||
378 | |||
379 | .reader-mode:hover .collapsible-body { | ||
380 | height: auto; | ||
381 | } | ||
382 | |||
383 | .reader-mode span { | ||
384 | opacity: 0; | ||
385 | transition: opacity 0.2s ease; | ||
386 | } | ||
387 | |||
388 | .reader-mode:hover span { | ||
389 | opacity: 1; | ||
390 | } | ||
391 | |||
392 | .progress { | ||
393 | position:fixed; | ||
394 | top:0px; | ||
395 | width: 100%; | ||
396 | height: 3px; | ||
397 | margin: 0; | ||
398 | z-index: 9999; | ||
399 | } | ||
400 | |||
401 | #article aside .link { | ||
402 | color: #000; | ||
403 | font-size: 0.6em; | ||
404 | text-decoration: none; | ||
405 | } | ||
406 | |||
407 | #article aside #list { | ||
408 | float: right; | ||
409 | margin-right: 15px; | ||
410 | } | ||
411 | |||
412 | #article aside .chip { | ||
413 | background-color: #039be5; | ||
414 | color: #ffffff; | ||
415 | } | ||
416 | |||
417 | #article aside .chip i { | ||
418 | color: #ffffff; | ||
419 | } | ||
420 | |||
421 | /* ========================================================================== | ||
422 | 6 = Media queries | ||
423 | ========================================================================== */ | ||
424 | |||
425 | @media only screen and (max-width : 992px) { | ||
426 | header, main, footer { | ||
427 | padding-left: 0; | ||
428 | } | ||
429 | nav, main, footer { | ||
430 | padding-left: 0; | ||
431 | } | ||
432 | .pagination { | ||
433 | width: auto; | ||
434 | } | ||
435 | .reader-mode { | ||
436 | width: 240px !important; | ||
437 | } | ||
438 | .reader-mode span { | ||
439 | opacity: 1; | ||
440 | } | ||
441 | |||
442 | .tabs { | ||
443 | display: inline-block; | ||
444 | height: auto; | ||
445 | } | ||
446 | .tab { | ||
447 | min-width: 100%; | ||
448 | } | ||
449 | .indicator { | ||
450 | display: none; | ||
451 | } | ||
452 | .pagination li.prev, .pagination li.next { | ||
453 | width: auto; | ||
454 | } | ||
455 | } | ||
456 | |||
457 | @media only screen and (min-width : 400px) { | ||
458 | .nav-panel-buttom { | ||
459 | float: right; | ||
460 | } | ||
461 | } | ||
462 | |||
463 | @media only screen and (min-width : 993px) and (max-width : 1180px) { | ||
464 | .row .col.l1 { | ||
465 | width: 25%; | ||
466 | margin-left: 0; } | ||
467 | .row .col.l2 { | ||
468 | width: 33.33333%; | ||
469 | margin-left: 0; } | ||
470 | .row .col.l3 { | ||
471 | width: 41.66667%; | ||
472 | margin-left: 0; } | ||
473 | .row .col.l4 { | ||
474 | width: 50%; | ||
475 | margin-left: 0; } | ||
476 | .row .col.l5 { | ||
477 | width: 58.33333%; | ||
478 | margin-left: 0; } | ||
479 | .row .col.l6 { | ||
480 | width: 66.66667%; | ||
481 | margin-left: 0; } | ||
482 | .row .col.l7 { | ||
483 | width: 75%; | ||
484 | margin-left: 0; } | ||
485 | .row .col.l8 { | ||
486 | width: 83.33333%; | ||
487 | margin-left: 0; } | ||
488 | .row .col.l9 { | ||
489 | width: 91.66667%; | ||
490 | margin-left: 0; } | ||
491 | .row .col.l10 { | ||
492 | width: 100%; | ||
493 | margin-left: 0; } | ||
494 | } | ||
495 | |||
496 | @media only screen and (max-width : 350px) { | ||
497 | .nb-results { | ||
498 | display: none; | ||
499 | } | ||
500 | } | ||
501 | |||
502 | /* ========================================================================== | ||
503 | 7 = Font | ||
504 | ========================================================================== */ | ||
505 | |||
506 | .icon-google-plus2:before { | ||
507 | content: "\e800"; | ||
508 | } | ||
509 | .icon-facebook2:before { | ||
510 | content: "\e801"; | ||
511 | } | ||
512 | .icon-twitter:before { | ||
513 | content: "\e802"; | ||
514 | } | ||
515 | .icon-apple:before { | ||
516 | content: "\e803"; | ||
517 | } | ||
518 | .icon-android:before { | ||
519 | content: "\e804"; | ||
520 | } | ||
521 | .icon-chrome:before { | ||
522 | content: "\e805"; | ||
523 | } | ||
524 | .icon-firefox:before { | ||
525 | content: "\e806"; | ||
526 | } | ||
527 | |||
528 | footer [class^="icon-"], footer [class*=" icon-"] { | ||
529 | font-size: 2em; | ||
530 | transition: text-shadow 0.2s ease; | ||
531 | padding-right: 10px; | ||
532 | } | ||
533 | |||
534 | footer [class^="icon-"]:hover, footer [class*=" icon-"]:hover { | ||
535 | text-shadow: 0 0 10px rgba(0,0,0,0.3); | ||
536 | } | ||
537 | |||
538 | |||
539 | /* ========================================================================== | ||
540 | 8 = Others | ||
541 | ========================================================================== */ | ||
542 | |||
543 | /* force height on non-input field in the settings page */ | ||
544 | div.settings div.input-field div, div.settings div.input-field ul { | ||
545 | margin-top: 40px; | ||
546 | } | ||
547 | /* but avoid to kill all file input */ | ||
548 | div.settings div.file-field div { | ||
549 | margin-top: inherit; | ||
550 | } | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/materialize.css b/src/Wallabag/CoreBundle/Resources/public/themes/material/css/materialize.css deleted file mode 100644 index 544014c2..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/materialize.css +++ /dev/null | |||
@@ -1,8198 +0,0 @@ | |||
1 | /*! | ||
2 | * Materialize v0.97.1 (http://materializecss.com) | ||
3 | * Copyright 2014-2015 Materialize | ||
4 | * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) | ||
5 | */ | ||
6 | .materialize-red.lighten-5 { | ||
7 | background-color: #fdeaeb !important; } | ||
8 | |||
9 | .materialize-red-text.text-lighten-5 { | ||
10 | color: #fdeaeb !important; } | ||
11 | |||
12 | .materialize-red.lighten-4 { | ||
13 | background-color: #f8c1c3 !important; } | ||
14 | |||
15 | .materialize-red-text.text-lighten-4 { | ||
16 | color: #f8c1c3 !important; } | ||
17 | |||
18 | .materialize-red.lighten-3 { | ||
19 | background-color: #f3989b !important; } | ||
20 | |||
21 | .materialize-red-text.text-lighten-3 { | ||
22 | color: #f3989b !important; } | ||
23 | |||
24 | .materialize-red.lighten-2 { | ||
25 | background-color: #ee6e73 !important; } | ||
26 | |||
27 | .materialize-red-text.text-lighten-2 { | ||
28 | color: #ee6e73 !important; } | ||
29 | |||
30 | .materialize-red.lighten-1 { | ||
31 | background-color: #ea454b !important; } | ||
32 | |||
33 | .materialize-red-text.text-lighten-1 { | ||
34 | color: #ea454b !important; } | ||
35 | |||
36 | .materialize-red { | ||
37 | background-color: #e51c23 !important; } | ||
38 | |||
39 | .materialize-red-text { | ||
40 | color: #e51c23 !important; } | ||
41 | |||
42 | .materialize-red.darken-1 { | ||
43 | background-color: #d0181e !important; } | ||
44 | |||
45 | .materialize-red-text.text-darken-1 { | ||
46 | color: #d0181e !important; } | ||
47 | |||
48 | .materialize-red.darken-2 { | ||
49 | background-color: #b9151b !important; } | ||
50 | |||
51 | .materialize-red-text.text-darken-2 { | ||
52 | color: #b9151b !important; } | ||
53 | |||
54 | .materialize-red.darken-3 { | ||
55 | background-color: #a21318 !important; } | ||
56 | |||
57 | .materialize-red-text.text-darken-3 { | ||
58 | color: #a21318 !important; } | ||
59 | |||
60 | .materialize-red.darken-4 { | ||
61 | background-color: #8b1014 !important; } | ||
62 | |||
63 | .materialize-red-text.text-darken-4 { | ||
64 | color: #8b1014 !important; } | ||
65 | |||
66 | .red.lighten-5 { | ||
67 | background-color: #FFEBEE !important; } | ||
68 | |||
69 | .red-text.text-lighten-5 { | ||
70 | color: #FFEBEE !important; } | ||
71 | |||
72 | .red.lighten-4 { | ||
73 | background-color: #FFCDD2 !important; } | ||
74 | |||
75 | .red-text.text-lighten-4 { | ||
76 | color: #FFCDD2 !important; } | ||
77 | |||
78 | .red.lighten-3 { | ||
79 | background-color: #EF9A9A !important; } | ||
80 | |||
81 | .red-text.text-lighten-3 { | ||
82 | color: #EF9A9A !important; } | ||
83 | |||
84 | .red.lighten-2 { | ||
85 | background-color: #E57373 !important; } | ||
86 | |||
87 | .red-text.text-lighten-2 { | ||
88 | color: #E57373 !important; } | ||
89 | |||
90 | .red.lighten-1 { | ||
91 | background-color: #EF5350 !important; } | ||
92 | |||
93 | .red-text.text-lighten-1 { | ||
94 | color: #EF5350 !important; } | ||
95 | |||
96 | .red { | ||
97 | background-color: #F44336 !important; } | ||
98 | |||
99 | .red-text { | ||
100 | color: #F44336 !important; } | ||
101 | |||
102 | .red.darken-1 { | ||
103 | background-color: #E53935 !important; } | ||
104 | |||
105 | .red-text.text-darken-1 { | ||
106 | color: #E53935 !important; } | ||
107 | |||
108 | .red.darken-2 { | ||
109 | background-color: #D32F2F !important; } | ||
110 | |||
111 | .red-text.text-darken-2 { | ||
112 | color: #D32F2F !important; } | ||
113 | |||
114 | .red.darken-3 { | ||
115 | background-color: #C62828 !important; } | ||
116 | |||
117 | .red-text.text-darken-3 { | ||
118 | color: #C62828 !important; } | ||
119 | |||
120 | .red.darken-4 { | ||
121 | background-color: #B71C1C !important; } | ||
122 | |||
123 | .red-text.text-darken-4 { | ||
124 | color: #B71C1C !important; } | ||
125 | |||
126 | .red.accent-1 { | ||
127 | background-color: #FF8A80 !important; } | ||
128 | |||
129 | .red-text.text-accent-1 { | ||
130 | color: #FF8A80 !important; } | ||
131 | |||
132 | .red.accent-2 { | ||
133 | background-color: #FF5252 !important; } | ||
134 | |||
135 | .red-text.text-accent-2 { | ||
136 | color: #FF5252 !important; } | ||
137 | |||
138 | .red.accent-3 { | ||
139 | background-color: #FF1744 !important; } | ||
140 | |||
141 | .red-text.text-accent-3 { | ||
142 | color: #FF1744 !important; } | ||
143 | |||
144 | .red.accent-4 { | ||
145 | background-color: #D50000 !important; } | ||
146 | |||
147 | .red-text.text-accent-4 { | ||
148 | color: #D50000 !important; } | ||
149 | |||
150 | .pink.lighten-5 { | ||
151 | background-color: #fce4ec !important; } | ||
152 | |||
153 | .pink-text.text-lighten-5 { | ||
154 | color: #fce4ec !important; } | ||
155 | |||
156 | .pink.lighten-4 { | ||
157 | background-color: #f8bbd0 !important; } | ||
158 | |||
159 | .pink-text.text-lighten-4 { | ||
160 | color: #f8bbd0 !important; } | ||
161 | |||
162 | .pink.lighten-3 { | ||
163 | background-color: #f48fb1 !important; } | ||
164 | |||
165 | .pink-text.text-lighten-3 { | ||
166 | color: #f48fb1 !important; } | ||
167 | |||
168 | .pink.lighten-2 { | ||
169 | background-color: #f06292 !important; } | ||
170 | |||
171 | .pink-text.text-lighten-2 { | ||
172 | color: #f06292 !important; } | ||
173 | |||
174 | .pink.lighten-1 { | ||
175 | background-color: #ec407a !important; } | ||
176 | |||
177 | .pink-text.text-lighten-1 { | ||
178 | color: #ec407a !important; } | ||
179 | |||
180 | .pink { | ||
181 | background-color: #e91e63 !important; } | ||
182 | |||
183 | .pink-text { | ||
184 | color: #e91e63 !important; } | ||
185 | |||
186 | .pink.darken-1 { | ||
187 | background-color: #d81b60 !important; } | ||
188 | |||
189 | .pink-text.text-darken-1 { | ||
190 | color: #d81b60 !important; } | ||
191 | |||
192 | .pink.darken-2 { | ||
193 | background-color: #c2185b !important; } | ||
194 | |||
195 | .pink-text.text-darken-2 { | ||
196 | color: #c2185b !important; } | ||
197 | |||
198 | .pink.darken-3 { | ||
199 | background-color: #ad1457 !important; } | ||
200 | |||
201 | .pink-text.text-darken-3 { | ||
202 | color: #ad1457 !important; } | ||
203 | |||
204 | .pink.darken-4 { | ||
205 | background-color: #880e4f !important; } | ||
206 | |||
207 | .pink-text.text-darken-4 { | ||
208 | color: #880e4f !important; } | ||
209 | |||
210 | .pink.accent-1 { | ||
211 | background-color: #ff80ab !important; } | ||
212 | |||
213 | .pink-text.text-accent-1 { | ||
214 | color: #ff80ab !important; } | ||
215 | |||
216 | .pink.accent-2 { | ||
217 | background-color: #ff4081 !important; } | ||
218 | |||
219 | .pink-text.text-accent-2 { | ||
220 | color: #ff4081 !important; } | ||
221 | |||
222 | .pink.accent-3 { | ||
223 | background-color: #f50057 !important; } | ||
224 | |||
225 | .pink-text.text-accent-3 { | ||
226 | color: #f50057 !important; } | ||
227 | |||
228 | .pink.accent-4 { | ||
229 | background-color: #c51162 !important; } | ||
230 | |||
231 | .pink-text.text-accent-4 { | ||
232 | color: #c51162 !important; } | ||
233 | |||
234 | .purple.lighten-5 { | ||
235 | background-color: #f3e5f5 !important; } | ||
236 | |||
237 | .purple-text.text-lighten-5 { | ||
238 | color: #f3e5f5 !important; } | ||
239 | |||
240 | .purple.lighten-4 { | ||
241 | background-color: #e1bee7 !important; } | ||
242 | |||
243 | .purple-text.text-lighten-4 { | ||
244 | color: #e1bee7 !important; } | ||
245 | |||
246 | .purple.lighten-3 { | ||
247 | background-color: #ce93d8 !important; } | ||
248 | |||
249 | .purple-text.text-lighten-3 { | ||
250 | color: #ce93d8 !important; } | ||
251 | |||
252 | .purple.lighten-2 { | ||
253 | background-color: #ba68c8 !important; } | ||
254 | |||
255 | .purple-text.text-lighten-2 { | ||
256 | color: #ba68c8 !important; } | ||
257 | |||
258 | .purple.lighten-1 { | ||
259 | background-color: #ab47bc !important; } | ||
260 | |||
261 | .purple-text.text-lighten-1 { | ||
262 | color: #ab47bc !important; } | ||
263 | |||
264 | .purple { | ||
265 | background-color: #9c27b0 !important; } | ||
266 | |||
267 | .purple-text { | ||
268 | color: #9c27b0 !important; } | ||
269 | |||
270 | .purple.darken-1 { | ||
271 | background-color: #8e24aa !important; } | ||
272 | |||
273 | .purple-text.text-darken-1 { | ||
274 | color: #8e24aa !important; } | ||
275 | |||
276 | .purple.darken-2 { | ||
277 | background-color: #7b1fa2 !important; } | ||
278 | |||
279 | .purple-text.text-darken-2 { | ||
280 | color: #7b1fa2 !important; } | ||
281 | |||
282 | .purple.darken-3 { | ||
283 | background-color: #6a1b9a !important; } | ||
284 | |||
285 | .purple-text.text-darken-3 { | ||
286 | color: #6a1b9a !important; } | ||
287 | |||
288 | .purple.darken-4 { | ||
289 | background-color: #4a148c !important; } | ||
290 | |||
291 | .purple-text.text-darken-4 { | ||
292 | color: #4a148c !important; } | ||
293 | |||
294 | .purple.accent-1 { | ||
295 | background-color: #ea80fc !important; } | ||
296 | |||
297 | .purple-text.text-accent-1 { | ||
298 | color: #ea80fc !important; } | ||
299 | |||
300 | .purple.accent-2 { | ||
301 | background-color: #e040fb !important; } | ||
302 | |||
303 | .purple-text.text-accent-2 { | ||
304 | color: #e040fb !important; } | ||
305 | |||
306 | .purple.accent-3 { | ||
307 | background-color: #d500f9 !important; } | ||
308 | |||
309 | .purple-text.text-accent-3 { | ||
310 | color: #d500f9 !important; } | ||
311 | |||
312 | .purple.accent-4 { | ||
313 | background-color: #aa00ff !important; } | ||
314 | |||
315 | .purple-text.text-accent-4 { | ||
316 | color: #aa00ff !important; } | ||
317 | |||
318 | .deep-purple.lighten-5 { | ||
319 | background-color: #ede7f6 !important; } | ||
320 | |||
321 | .deep-purple-text.text-lighten-5 { | ||
322 | color: #ede7f6 !important; } | ||
323 | |||
324 | .deep-purple.lighten-4 { | ||
325 | background-color: #d1c4e9 !important; } | ||
326 | |||
327 | .deep-purple-text.text-lighten-4 { | ||
328 | color: #d1c4e9 !important; } | ||
329 | |||
330 | .deep-purple.lighten-3 { | ||
331 | background-color: #b39ddb !important; } | ||
332 | |||
333 | .deep-purple-text.text-lighten-3 { | ||
334 | color: #b39ddb !important; } | ||
335 | |||
336 | .deep-purple.lighten-2 { | ||
337 | background-color: #9575cd !important; } | ||
338 | |||
339 | .deep-purple-text.text-lighten-2 { | ||
340 | color: #9575cd !important; } | ||
341 | |||
342 | .deep-purple.lighten-1 { | ||
343 | background-color: #7e57c2 !important; } | ||
344 | |||
345 | .deep-purple-text.text-lighten-1 { | ||
346 | color: #7e57c2 !important; } | ||
347 | |||
348 | .deep-purple { | ||
349 | background-color: #673ab7 !important; } | ||
350 | |||
351 | .deep-purple-text { | ||
352 | color: #673ab7 !important; } | ||
353 | |||
354 | .deep-purple.darken-1 { | ||
355 | background-color: #5e35b1 !important; } | ||
356 | |||
357 | .deep-purple-text.text-darken-1 { | ||
358 | color: #5e35b1 !important; } | ||
359 | |||
360 | .deep-purple.darken-2 { | ||
361 | background-color: #512da8 !important; } | ||
362 | |||
363 | .deep-purple-text.text-darken-2 { | ||
364 | color: #512da8 !important; } | ||
365 | |||
366 | .deep-purple.darken-3 { | ||
367 | background-color: #4527a0 !important; } | ||
368 | |||
369 | .deep-purple-text.text-darken-3 { | ||
370 | color: #4527a0 !important; } | ||
371 | |||
372 | .deep-purple.darken-4 { | ||
373 | background-color: #311b92 !important; } | ||
374 | |||
375 | .deep-purple-text.text-darken-4 { | ||
376 | color: #311b92 !important; } | ||
377 | |||
378 | .deep-purple.accent-1 { | ||
379 | background-color: #b388ff !important; } | ||
380 | |||
381 | .deep-purple-text.text-accent-1 { | ||
382 | color: #b388ff !important; } | ||
383 | |||
384 | .deep-purple.accent-2 { | ||
385 | background-color: #7c4dff !important; } | ||
386 | |||
387 | .deep-purple-text.text-accent-2 { | ||
388 | color: #7c4dff !important; } | ||
389 | |||
390 | .deep-purple.accent-3 { | ||
391 | background-color: #651fff !important; } | ||
392 | |||
393 | .deep-purple-text.text-accent-3 { | ||
394 | color: #651fff !important; } | ||
395 | |||
396 | .deep-purple.accent-4 { | ||
397 | background-color: #6200ea !important; } | ||
398 | |||
399 | .deep-purple-text.text-accent-4 { | ||
400 | color: #6200ea !important; } | ||
401 | |||
402 | .indigo.lighten-5 { | ||
403 | background-color: #e8eaf6 !important; } | ||
404 | |||
405 | .indigo-text.text-lighten-5 { | ||
406 | color: #e8eaf6 !important; } | ||
407 | |||
408 | .indigo.lighten-4 { | ||
409 | background-color: #c5cae9 !important; } | ||
410 | |||
411 | .indigo-text.text-lighten-4 { | ||
412 | color: #c5cae9 !important; } | ||
413 | |||
414 | .indigo.lighten-3 { | ||
415 | background-color: #9fa8da !important; } | ||
416 | |||
417 | .indigo-text.text-lighten-3 { | ||
418 | color: #9fa8da !important; } | ||
419 | |||
420 | .indigo.lighten-2 { | ||
421 | background-color: #7986cb !important; } | ||
422 | |||
423 | .indigo-text.text-lighten-2 { | ||
424 | color: #7986cb !important; } | ||
425 | |||
426 | .indigo.lighten-1 { | ||
427 | background-color: #5c6bc0 !important; } | ||
428 | |||
429 | .indigo-text.text-lighten-1 { | ||
430 | color: #5c6bc0 !important; } | ||
431 | |||
432 | .indigo { | ||
433 | background-color: #3f51b5 !important; } | ||
434 | |||
435 | .indigo-text { | ||
436 | color: #3f51b5 !important; } | ||
437 | |||
438 | .indigo.darken-1 { | ||
439 | background-color: #3949ab !important; } | ||
440 | |||
441 | .indigo-text.text-darken-1 { | ||
442 | color: #3949ab !important; } | ||
443 | |||
444 | .indigo.darken-2 { | ||
445 | background-color: #303f9f !important; } | ||
446 | |||
447 | .indigo-text.text-darken-2 { | ||
448 | color: #303f9f !important; } | ||
449 | |||
450 | .indigo.darken-3 { | ||
451 | background-color: #283593 !important; } | ||
452 | |||
453 | .indigo-text.text-darken-3 { | ||
454 | color: #283593 !important; } | ||
455 | |||
456 | .indigo.darken-4 { | ||
457 | background-color: #1a237e !important; } | ||
458 | |||
459 | .indigo-text.text-darken-4 { | ||
460 | color: #1a237e !important; } | ||
461 | |||
462 | .indigo.accent-1 { | ||
463 | background-color: #8c9eff !important; } | ||
464 | |||
465 | .indigo-text.text-accent-1 { | ||
466 | color: #8c9eff !important; } | ||
467 | |||
468 | .indigo.accent-2 { | ||
469 | background-color: #536dfe !important; } | ||
470 | |||
471 | .indigo-text.text-accent-2 { | ||
472 | color: #536dfe !important; } | ||
473 | |||
474 | .indigo.accent-3 { | ||
475 | background-color: #3d5afe !important; } | ||
476 | |||
477 | .indigo-text.text-accent-3 { | ||
478 | color: #3d5afe !important; } | ||
479 | |||
480 | .indigo.accent-4 { | ||
481 | background-color: #304ffe !important; } | ||
482 | |||
483 | .indigo-text.text-accent-4 { | ||
484 | color: #304ffe !important; } | ||
485 | |||
486 | .blue.lighten-5 { | ||
487 | background-color: #E3F2FD !important; } | ||
488 | |||
489 | .blue-text.text-lighten-5 { | ||
490 | color: #E3F2FD !important; } | ||
491 | |||
492 | .blue.lighten-4 { | ||
493 | background-color: #BBDEFB !important; } | ||
494 | |||
495 | .blue-text.text-lighten-4 { | ||
496 | color: #BBDEFB !important; } | ||
497 | |||
498 | .blue.lighten-3 { | ||
499 | background-color: #90CAF9 !important; } | ||
500 | |||
501 | .blue-text.text-lighten-3 { | ||
502 | color: #90CAF9 !important; } | ||
503 | |||
504 | .blue.lighten-2 { | ||
505 | background-color: #64B5F6 !important; } | ||
506 | |||
507 | .blue-text.text-lighten-2 { | ||
508 | color: #64B5F6 !important; } | ||
509 | |||
510 | .blue.lighten-1 { | ||
511 | background-color: #42A5F5 !important; } | ||
512 | |||
513 | .blue-text.text-lighten-1 { | ||
514 | color: #42A5F5 !important; } | ||
515 | |||
516 | .blue { | ||
517 | background-color: #2196F3 !important; } | ||
518 | |||
519 | .blue-text { | ||
520 | color: #2196F3 !important; } | ||
521 | |||
522 | .blue.darken-1 { | ||
523 | background-color: #1E88E5 !important; } | ||
524 | |||
525 | .blue-text.text-darken-1 { | ||
526 | color: #1E88E5 !important; } | ||
527 | |||
528 | .blue.darken-2 { | ||
529 | background-color: #1976D2 !important; } | ||
530 | |||
531 | .blue-text.text-darken-2 { | ||
532 | color: #1976D2 !important; } | ||
533 | |||
534 | .blue.darken-3 { | ||
535 | background-color: #1565C0 !important; } | ||
536 | |||
537 | .blue-text.text-darken-3 { | ||
538 | color: #1565C0 !important; } | ||
539 | |||
540 | .blue.darken-4 { | ||
541 | background-color: #0D47A1 !important; } | ||
542 | |||
543 | .blue-text.text-darken-4 { | ||
544 | color: #0D47A1 !important; } | ||
545 | |||
546 | .blue.accent-1 { | ||
547 | background-color: #82B1FF !important; } | ||
548 | |||
549 | .blue-text.text-accent-1 { | ||
550 | color: #82B1FF !important; } | ||
551 | |||
552 | .blue.accent-2 { | ||
553 | background-color: #448AFF !important; } | ||
554 | |||
555 | .blue-text.text-accent-2 { | ||
556 | color: #448AFF !important; } | ||
557 | |||
558 | .blue.accent-3 { | ||
559 | background-color: #2979FF !important; } | ||
560 | |||
561 | .blue-text.text-accent-3 { | ||
562 | color: #2979FF !important; } | ||
563 | |||
564 | .blue.accent-4 { | ||
565 | background-color: #2962FF !important; } | ||
566 | |||
567 | .blue-text.text-accent-4 { | ||
568 | color: #2962FF !important; } | ||
569 | |||
570 | .light-blue.lighten-5 { | ||
571 | background-color: #e1f5fe !important; } | ||
572 | |||
573 | .light-blue-text.text-lighten-5 { | ||
574 | color: #e1f5fe !important; } | ||
575 | |||
576 | .light-blue.lighten-4 { | ||
577 | background-color: #b3e5fc !important; } | ||
578 | |||
579 | .light-blue-text.text-lighten-4 { | ||
580 | color: #b3e5fc !important; } | ||
581 | |||
582 | .light-blue.lighten-3 { | ||
583 | background-color: #81d4fa !important; } | ||
584 | |||
585 | .light-blue-text.text-lighten-3 { | ||
586 | color: #81d4fa !important; } | ||
587 | |||
588 | .light-blue.lighten-2 { | ||
589 | background-color: #4fc3f7 !important; } | ||
590 | |||
591 | .light-blue-text.text-lighten-2 { | ||
592 | color: #4fc3f7 !important; } | ||
593 | |||
594 | .light-blue.lighten-1 { | ||
595 | background-color: #29b6f6 !important; } | ||
596 | |||
597 | .light-blue-text.text-lighten-1 { | ||
598 | color: #29b6f6 !important; } | ||
599 | |||
600 | .light-blue { | ||
601 | background-color: #03a9f4 !important; } | ||
602 | |||
603 | .light-blue-text { | ||
604 | color: #03a9f4 !important; } | ||
605 | |||
606 | .light-blue.darken-1 { | ||
607 | background-color: #039be5 !important; } | ||
608 | |||
609 | .light-blue-text.text-darken-1 { | ||
610 | color: #039be5 !important; } | ||
611 | |||
612 | .light-blue.darken-2 { | ||
613 | background-color: #0288d1 !important; } | ||
614 | |||
615 | .light-blue-text.text-darken-2 { | ||
616 | color: #0288d1 !important; } | ||
617 | |||
618 | .light-blue.darken-3 { | ||
619 | background-color: #0277bd !important; } | ||
620 | |||
621 | .light-blue-text.text-darken-3 { | ||
622 | color: #0277bd !important; } | ||
623 | |||
624 | .light-blue.darken-4 { | ||
625 | background-color: #01579b !important; } | ||
626 | |||
627 | .light-blue-text.text-darken-4 { | ||
628 | color: #01579b !important; } | ||
629 | |||
630 | .light-blue.accent-1 { | ||
631 | background-color: #80d8ff !important; } | ||
632 | |||
633 | .light-blue-text.text-accent-1 { | ||
634 | color: #80d8ff !important; } | ||
635 | |||
636 | .light-blue.accent-2 { | ||
637 | background-color: #40c4ff !important; } | ||
638 | |||
639 | .light-blue-text.text-accent-2 { | ||
640 | color: #40c4ff !important; } | ||
641 | |||
642 | .light-blue.accent-3 { | ||
643 | background-color: #00b0ff !important; } | ||
644 | |||
645 | .light-blue-text.text-accent-3 { | ||
646 | color: #00b0ff !important; } | ||
647 | |||
648 | .light-blue.accent-4 { | ||
649 | background-color: #0091ea !important; } | ||
650 | |||
651 | .light-blue-text.text-accent-4 { | ||
652 | color: #0091ea !important; } | ||
653 | |||
654 | .cyan.lighten-5 { | ||
655 | background-color: #e0f7fa !important; } | ||
656 | |||
657 | .cyan-text.text-lighten-5 { | ||
658 | color: #e0f7fa !important; } | ||
659 | |||
660 | .cyan.lighten-4 { | ||
661 | background-color: #b2ebf2 !important; } | ||
662 | |||
663 | .cyan-text.text-lighten-4 { | ||
664 | color: #b2ebf2 !important; } | ||
665 | |||
666 | .cyan.lighten-3 { | ||
667 | background-color: #80deea !important; } | ||
668 | |||
669 | .cyan-text.text-lighten-3 { | ||
670 | color: #80deea !important; } | ||
671 | |||
672 | .cyan.lighten-2 { | ||
673 | background-color: #4dd0e1 !important; } | ||
674 | |||
675 | .cyan-text.text-lighten-2 { | ||
676 | color: #4dd0e1 !important; } | ||
677 | |||
678 | .cyan.lighten-1 { | ||
679 | background-color: #26c6da !important; } | ||
680 | |||
681 | .cyan-text.text-lighten-1 { | ||
682 | color: #26c6da !important; } | ||
683 | |||
684 | .cyan { | ||
685 | background-color: #00bcd4 !important; } | ||
686 | |||
687 | .cyan-text { | ||
688 | color: #00bcd4 !important; } | ||
689 | |||
690 | .cyan.darken-1 { | ||
691 | background-color: #00acc1 !important; } | ||
692 | |||
693 | .cyan-text.text-darken-1 { | ||
694 | color: #00acc1 !important; } | ||
695 | |||
696 | .cyan.darken-2 { | ||
697 | background-color: #0097a7 !important; } | ||
698 | |||
699 | .cyan-text.text-darken-2 { | ||
700 | color: #0097a7 !important; } | ||
701 | |||
702 | .cyan.darken-3 { | ||
703 | background-color: #00838f !important; } | ||
704 | |||
705 | .cyan-text.text-darken-3 { | ||
706 | color: #00838f !important; } | ||
707 | |||
708 | .cyan.darken-4 { | ||
709 | background-color: #006064 !important; } | ||
710 | |||
711 | .cyan-text.text-darken-4 { | ||
712 | color: #006064 !important; } | ||
713 | |||
714 | .cyan.accent-1 { | ||
715 | background-color: #84ffff !important; } | ||
716 | |||
717 | .cyan-text.text-accent-1 { | ||
718 | color: #84ffff !important; } | ||
719 | |||
720 | .cyan.accent-2 { | ||
721 | background-color: #18ffff !important; } | ||
722 | |||
723 | .cyan-text.text-accent-2 { | ||
724 | color: #18ffff !important; } | ||
725 | |||
726 | .cyan.accent-3 { | ||
727 | background-color: #00e5ff !important; } | ||
728 | |||
729 | .cyan-text.text-accent-3 { | ||
730 | color: #00e5ff !important; } | ||
731 | |||
732 | .cyan.accent-4 { | ||
733 | background-color: #00b8d4 !important; } | ||
734 | |||
735 | .cyan-text.text-accent-4 { | ||
736 | color: #00b8d4 !important; } | ||
737 | |||
738 | .teal.lighten-5 { | ||
739 | background-color: #e0f2f1 !important; } | ||
740 | |||
741 | .teal-text.text-lighten-5 { | ||
742 | color: #e0f2f1 !important; } | ||
743 | |||
744 | .teal.lighten-4 { | ||
745 | background-color: #b2dfdb !important; } | ||
746 | |||
747 | .teal-text.text-lighten-4 { | ||
748 | color: #b2dfdb !important; } | ||
749 | |||
750 | .teal.lighten-3 { | ||
751 | background-color: #80cbc4 !important; } | ||
752 | |||
753 | .teal-text.text-lighten-3 { | ||
754 | color: #80cbc4 !important; } | ||
755 | |||
756 | .teal.lighten-2 { | ||
757 | background-color: #4db6ac !important; } | ||
758 | |||
759 | .teal-text.text-lighten-2 { | ||
760 | color: #4db6ac !important; } | ||
761 | |||
762 | .teal.lighten-1 { | ||
763 | background-color: #26a69a !important; } | ||
764 | |||
765 | .teal-text.text-lighten-1 { | ||
766 | color: #26a69a !important; } | ||
767 | |||
768 | .teal { | ||
769 | background-color: #009688 !important; } | ||
770 | |||
771 | .teal-text { | ||
772 | color: #009688 !important; } | ||
773 | |||
774 | .teal.darken-1 { | ||
775 | background-color: #00897b !important; } | ||
776 | |||
777 | .teal-text.text-darken-1 { | ||
778 | color: #00897b !important; } | ||
779 | |||
780 | .teal.darken-2 { | ||
781 | background-color: #00796b !important; } | ||
782 | |||
783 | .teal-text.text-darken-2 { | ||
784 | color: #00796b !important; } | ||
785 | |||
786 | .teal.darken-3 { | ||
787 | background-color: #00695c !important; } | ||
788 | |||
789 | .teal-text.text-darken-3 { | ||
790 | color: #00695c !important; } | ||
791 | |||
792 | .teal.darken-4 { | ||
793 | background-color: #004d40 !important; } | ||
794 | |||
795 | .teal-text.text-darken-4 { | ||
796 | color: #004d40 !important; } | ||
797 | |||
798 | .teal.accent-1 { | ||
799 | background-color: #a7ffeb !important; } | ||
800 | |||
801 | .teal-text.text-accent-1 { | ||
802 | color: #a7ffeb !important; } | ||
803 | |||
804 | .teal.accent-2 { | ||
805 | background-color: #64ffda !important; } | ||
806 | |||
807 | .teal-text.text-accent-2 { | ||
808 | color: #64ffda !important; } | ||
809 | |||
810 | .teal.accent-3 { | ||
811 | background-color: #1de9b6 !important; } | ||
812 | |||
813 | .teal-text.text-accent-3 { | ||
814 | color: #1de9b6 !important; } | ||
815 | |||
816 | .teal.accent-4 { | ||
817 | background-color: #00bfa5 !important; } | ||
818 | |||
819 | .teal-text.text-accent-4 { | ||
820 | color: #00bfa5 !important; } | ||
821 | |||
822 | .green.lighten-5 { | ||
823 | background-color: #E8F5E9 !important; } | ||
824 | |||
825 | .green-text.text-lighten-5 { | ||
826 | color: #E8F5E9 !important; } | ||
827 | |||
828 | .green.lighten-4 { | ||
829 | background-color: #C8E6C9 !important; } | ||
830 | |||
831 | .green-text.text-lighten-4 { | ||
832 | color: #C8E6C9 !important; } | ||
833 | |||
834 | .green.lighten-3 { | ||
835 | background-color: #A5D6A7 !important; } | ||
836 | |||
837 | .green-text.text-lighten-3 { | ||
838 | color: #A5D6A7 !important; } | ||
839 | |||
840 | .green.lighten-2 { | ||
841 | background-color: #81C784 !important; } | ||
842 | |||
843 | .green-text.text-lighten-2 { | ||
844 | color: #81C784 !important; } | ||
845 | |||
846 | .green.lighten-1 { | ||
847 | background-color: #66BB6A !important; } | ||
848 | |||
849 | .green-text.text-lighten-1 { | ||
850 | color: #66BB6A !important; } | ||
851 | |||
852 | .green { | ||
853 | background-color: #4CAF50 !important; } | ||
854 | |||
855 | .green-text { | ||
856 | color: #4CAF50 !important; } | ||
857 | |||
858 | .green.darken-1 { | ||
859 | background-color: #43A047 !important; } | ||
860 | |||
861 | .green-text.text-darken-1 { | ||
862 | color: #43A047 !important; } | ||
863 | |||
864 | .green.darken-2 { | ||
865 | background-color: #388E3C !important; } | ||
866 | |||
867 | .green-text.text-darken-2 { | ||
868 | color: #388E3C !important; } | ||
869 | |||
870 | .green.darken-3 { | ||
871 | background-color: #2E7D32 !important; } | ||
872 | |||
873 | .green-text.text-darken-3 { | ||
874 | color: #2E7D32 !important; } | ||
875 | |||
876 | .green.darken-4 { | ||
877 | background-color: #1B5E20 !important; } | ||
878 | |||
879 | .green-text.text-darken-4 { | ||
880 | color: #1B5E20 !important; } | ||
881 | |||
882 | .green.accent-1 { | ||
883 | background-color: #B9F6CA !important; } | ||
884 | |||
885 | .green-text.text-accent-1 { | ||
886 | color: #B9F6CA !important; } | ||
887 | |||
888 | .green.accent-2 { | ||
889 | background-color: #69F0AE !important; } | ||
890 | |||
891 | .green-text.text-accent-2 { | ||
892 | color: #69F0AE !important; } | ||
893 | |||
894 | .green.accent-3 { | ||
895 | background-color: #00E676 !important; } | ||
896 | |||
897 | .green-text.text-accent-3 { | ||
898 | color: #00E676 !important; } | ||
899 | |||
900 | .green.accent-4 { | ||
901 | background-color: #00C853 !important; } | ||
902 | |||
903 | .green-text.text-accent-4 { | ||
904 | color: #00C853 !important; } | ||
905 | |||
906 | .light-green.lighten-5 { | ||
907 | background-color: #f1f8e9 !important; } | ||
908 | |||
909 | .light-green-text.text-lighten-5 { | ||
910 | color: #f1f8e9 !important; } | ||
911 | |||
912 | .light-green.lighten-4 { | ||
913 | background-color: #dcedc8 !important; } | ||
914 | |||
915 | .light-green-text.text-lighten-4 { | ||
916 | color: #dcedc8 !important; } | ||
917 | |||
918 | .light-green.lighten-3 { | ||
919 | background-color: #c5e1a5 !important; } | ||
920 | |||
921 | .light-green-text.text-lighten-3 { | ||
922 | color: #c5e1a5 !important; } | ||
923 | |||
924 | .light-green.lighten-2 { | ||
925 | background-color: #aed581 !important; } | ||
926 | |||
927 | .light-green-text.text-lighten-2 { | ||
928 | color: #aed581 !important; } | ||
929 | |||
930 | .light-green.lighten-1 { | ||
931 | background-color: #9ccc65 !important; } | ||
932 | |||
933 | .light-green-text.text-lighten-1 { | ||
934 | color: #9ccc65 !important; } | ||
935 | |||
936 | .light-green { | ||
937 | background-color: #8bc34a !important; } | ||
938 | |||
939 | .light-green-text { | ||
940 | color: #8bc34a !important; } | ||
941 | |||
942 | .light-green.darken-1 { | ||
943 | background-color: #7cb342 !important; } | ||
944 | |||
945 | .light-green-text.text-darken-1 { | ||
946 | color: #7cb342 !important; } | ||
947 | |||
948 | .light-green.darken-2 { | ||
949 | background-color: #689f38 !important; } | ||
950 | |||
951 | .light-green-text.text-darken-2 { | ||
952 | color: #689f38 !important; } | ||
953 | |||
954 | .light-green.darken-3 { | ||
955 | background-color: #558b2f !important; } | ||
956 | |||
957 | .light-green-text.text-darken-3 { | ||
958 | color: #558b2f !important; } | ||
959 | |||
960 | .light-green.darken-4 { | ||
961 | background-color: #33691e !important; } | ||
962 | |||
963 | .light-green-text.text-darken-4 { | ||
964 | color: #33691e !important; } | ||
965 | |||
966 | .light-green.accent-1 { | ||
967 | background-color: #ccff90 !important; } | ||
968 | |||
969 | .light-green-text.text-accent-1 { | ||
970 | color: #ccff90 !important; } | ||
971 | |||
972 | .light-green.accent-2 { | ||
973 | background-color: #b2ff59 !important; } | ||
974 | |||
975 | .light-green-text.text-accent-2 { | ||
976 | color: #b2ff59 !important; } | ||
977 | |||
978 | .light-green.accent-3 { | ||
979 | background-color: #76ff03 !important; } | ||
980 | |||
981 | .light-green-text.text-accent-3 { | ||
982 | color: #76ff03 !important; } | ||
983 | |||
984 | .light-green.accent-4 { | ||
985 | background-color: #64dd17 !important; } | ||
986 | |||
987 | .light-green-text.text-accent-4 { | ||
988 | color: #64dd17 !important; } | ||
989 | |||
990 | .lime.lighten-5 { | ||
991 | background-color: #f9fbe7 !important; } | ||
992 | |||
993 | .lime-text.text-lighten-5 { | ||
994 | color: #f9fbe7 !important; } | ||
995 | |||
996 | .lime.lighten-4 { | ||
997 | background-color: #f0f4c3 !important; } | ||
998 | |||
999 | .lime-text.text-lighten-4 { | ||
1000 | color: #f0f4c3 !important; } | ||
1001 | |||
1002 | .lime.lighten-3 { | ||
1003 | background-color: #e6ee9c !important; } | ||
1004 | |||
1005 | .lime-text.text-lighten-3 { | ||
1006 | color: #e6ee9c !important; } | ||
1007 | |||
1008 | .lime.lighten-2 { | ||
1009 | background-color: #dce775 !important; } | ||
1010 | |||
1011 | .lime-text.text-lighten-2 { | ||
1012 | color: #dce775 !important; } | ||
1013 | |||
1014 | .lime.lighten-1 { | ||
1015 | background-color: #d4e157 !important; } | ||
1016 | |||
1017 | .lime-text.text-lighten-1 { | ||
1018 | color: #d4e157 !important; } | ||
1019 | |||
1020 | .lime { | ||
1021 | background-color: #cddc39 !important; } | ||
1022 | |||
1023 | .lime-text { | ||
1024 | color: #cddc39 !important; } | ||
1025 | |||
1026 | .lime.darken-1 { | ||
1027 | background-color: #c0ca33 !important; } | ||
1028 | |||
1029 | .lime-text.text-darken-1 { | ||
1030 | color: #c0ca33 !important; } | ||
1031 | |||
1032 | .lime.darken-2 { | ||
1033 | background-color: #afb42b !important; } | ||
1034 | |||
1035 | .lime-text.text-darken-2 { | ||
1036 | color: #afb42b !important; } | ||
1037 | |||
1038 | .lime.darken-3 { | ||
1039 | background-color: #9e9d24 !important; } | ||
1040 | |||
1041 | .lime-text.text-darken-3 { | ||
1042 | color: #9e9d24 !important; } | ||
1043 | |||
1044 | .lime.darken-4 { | ||
1045 | background-color: #827717 !important; } | ||
1046 | |||
1047 | .lime-text.text-darken-4 { | ||
1048 | color: #827717 !important; } | ||
1049 | |||
1050 | .lime.accent-1 { | ||
1051 | background-color: #f4ff81 !important; } | ||
1052 | |||
1053 | .lime-text.text-accent-1 { | ||
1054 | color: #f4ff81 !important; } | ||
1055 | |||
1056 | .lime.accent-2 { | ||
1057 | background-color: #eeff41 !important; } | ||
1058 | |||
1059 | .lime-text.text-accent-2 { | ||
1060 | color: #eeff41 !important; } | ||
1061 | |||
1062 | .lime.accent-3 { | ||
1063 | background-color: #c6ff00 !important; } | ||
1064 | |||
1065 | .lime-text.text-accent-3 { | ||
1066 | color: #c6ff00 !important; } | ||
1067 | |||
1068 | .lime.accent-4 { | ||
1069 | background-color: #aeea00 !important; } | ||
1070 | |||
1071 | .lime-text.text-accent-4 { | ||
1072 | color: #aeea00 !important; } | ||
1073 | |||
1074 | .yellow.lighten-5 { | ||
1075 | background-color: #fffde7 !important; } | ||
1076 | |||
1077 | .yellow-text.text-lighten-5 { | ||
1078 | color: #fffde7 !important; } | ||
1079 | |||
1080 | .yellow.lighten-4 { | ||
1081 | background-color: #fff9c4 !important; } | ||
1082 | |||
1083 | .yellow-text.text-lighten-4 { | ||
1084 | color: #fff9c4 !important; } | ||
1085 | |||
1086 | .yellow.lighten-3 { | ||
1087 | background-color: #fff59d !important; } | ||
1088 | |||
1089 | .yellow-text.text-lighten-3 { | ||
1090 | color: #fff59d !important; } | ||
1091 | |||
1092 | .yellow.lighten-2 { | ||
1093 | background-color: #fff176 !important; } | ||
1094 | |||
1095 | .yellow-text.text-lighten-2 { | ||
1096 | color: #fff176 !important; } | ||
1097 | |||
1098 | .yellow.lighten-1 { | ||
1099 | background-color: #ffee58 !important; } | ||
1100 | |||
1101 | .yellow-text.text-lighten-1 { | ||
1102 | color: #ffee58 !important; } | ||
1103 | |||
1104 | .yellow { | ||
1105 | background-color: #ffeb3b !important; } | ||
1106 | |||
1107 | .yellow-text { | ||
1108 | color: #ffeb3b !important; } | ||
1109 | |||
1110 | .yellow.darken-1 { | ||
1111 | background-color: #fdd835 !important; } | ||
1112 | |||
1113 | .yellow-text.text-darken-1 { | ||
1114 | color: #fdd835 !important; } | ||
1115 | |||
1116 | .yellow.darken-2 { | ||
1117 | background-color: #fbc02d !important; } | ||
1118 | |||
1119 | .yellow-text.text-darken-2 { | ||
1120 | color: #fbc02d !important; } | ||
1121 | |||
1122 | .yellow.darken-3 { | ||
1123 | background-color: #f9a825 !important; } | ||
1124 | |||
1125 | .yellow-text.text-darken-3 { | ||
1126 | color: #f9a825 !important; } | ||
1127 | |||
1128 | .yellow.darken-4 { | ||
1129 | background-color: #f57f17 !important; } | ||
1130 | |||
1131 | .yellow-text.text-darken-4 { | ||
1132 | color: #f57f17 !important; } | ||
1133 | |||
1134 | .yellow.accent-1 { | ||
1135 | background-color: #ffff8d !important; } | ||
1136 | |||
1137 | .yellow-text.text-accent-1 { | ||
1138 | color: #ffff8d !important; } | ||
1139 | |||
1140 | .yellow.accent-2 { | ||
1141 | background-color: #ffff00 !important; } | ||
1142 | |||
1143 | .yellow-text.text-accent-2 { | ||
1144 | color: #ffff00 !important; } | ||
1145 | |||
1146 | .yellow.accent-3 { | ||
1147 | background-color: #ffea00 !important; } | ||
1148 | |||
1149 | .yellow-text.text-accent-3 { | ||
1150 | color: #ffea00 !important; } | ||
1151 | |||
1152 | .yellow.accent-4 { | ||
1153 | background-color: #ffd600 !important; } | ||
1154 | |||
1155 | .yellow-text.text-accent-4 { | ||
1156 | color: #ffd600 !important; } | ||
1157 | |||
1158 | .amber.lighten-5 { | ||
1159 | background-color: #fff8e1 !important; } | ||
1160 | |||
1161 | .amber-text.text-lighten-5 { | ||
1162 | color: #fff8e1 !important; } | ||
1163 | |||
1164 | .amber.lighten-4 { | ||
1165 | background-color: #ffecb3 !important; } | ||
1166 | |||
1167 | .amber-text.text-lighten-4 { | ||
1168 | color: #ffecb3 !important; } | ||
1169 | |||
1170 | .amber.lighten-3 { | ||
1171 | background-color: #ffe082 !important; } | ||
1172 | |||
1173 | .amber-text.text-lighten-3 { | ||
1174 | color: #ffe082 !important; } | ||
1175 | |||
1176 | .amber.lighten-2 { | ||
1177 | background-color: #ffd54f !important; } | ||
1178 | |||
1179 | .amber-text.text-lighten-2 { | ||
1180 | color: #ffd54f !important; } | ||
1181 | |||
1182 | .amber.lighten-1 { | ||
1183 | background-color: #ffca28 !important; } | ||
1184 | |||
1185 | .amber-text.text-lighten-1 { | ||
1186 | color: #ffca28 !important; } | ||
1187 | |||
1188 | .amber { | ||
1189 | background-color: #ffc107 !important; } | ||
1190 | |||
1191 | .amber-text { | ||
1192 | color: #ffc107 !important; } | ||
1193 | |||
1194 | .amber.darken-1 { | ||
1195 | background-color: #ffb300 !important; } | ||
1196 | |||
1197 | .amber-text.text-darken-1 { | ||
1198 | color: #ffb300 !important; } | ||
1199 | |||
1200 | .amber.darken-2 { | ||
1201 | background-color: #ffa000 !important; } | ||
1202 | |||
1203 | .amber-text.text-darken-2 { | ||
1204 | color: #ffa000 !important; } | ||
1205 | |||
1206 | .amber.darken-3 { | ||
1207 | background-color: #ff8f00 !important; } | ||
1208 | |||
1209 | .amber-text.text-darken-3 { | ||
1210 | color: #ff8f00 !important; } | ||
1211 | |||
1212 | .amber.darken-4 { | ||
1213 | background-color: #ff6f00 !important; } | ||
1214 | |||
1215 | .amber-text.text-darken-4 { | ||
1216 | color: #ff6f00 !important; } | ||
1217 | |||
1218 | .amber.accent-1 { | ||
1219 | background-color: #ffe57f !important; } | ||
1220 | |||
1221 | .amber-text.text-accent-1 { | ||
1222 | color: #ffe57f !important; } | ||
1223 | |||
1224 | .amber.accent-2 { | ||
1225 | background-color: #ffd740 !important; } | ||
1226 | |||
1227 | .amber-text.text-accent-2 { | ||
1228 | color: #ffd740 !important; } | ||
1229 | |||
1230 | .amber.accent-3 { | ||
1231 | background-color: #ffc400 !important; } | ||
1232 | |||
1233 | .amber-text.text-accent-3 { | ||
1234 | color: #ffc400 !important; } | ||
1235 | |||
1236 | .amber.accent-4 { | ||
1237 | background-color: #ffab00 !important; } | ||
1238 | |||
1239 | .amber-text.text-accent-4 { | ||
1240 | color: #ffab00 !important; } | ||
1241 | |||
1242 | .orange.lighten-5 { | ||
1243 | background-color: #fff3e0 !important; } | ||
1244 | |||
1245 | .orange-text.text-lighten-5 { | ||
1246 | color: #fff3e0 !important; } | ||
1247 | |||
1248 | .orange.lighten-4 { | ||
1249 | background-color: #ffe0b2 !important; } | ||
1250 | |||
1251 | .orange-text.text-lighten-4 { | ||
1252 | color: #ffe0b2 !important; } | ||
1253 | |||
1254 | .orange.lighten-3 { | ||
1255 | background-color: #ffcc80 !important; } | ||
1256 | |||
1257 | .orange-text.text-lighten-3 { | ||
1258 | color: #ffcc80 !important; } | ||
1259 | |||
1260 | .orange.lighten-2 { | ||
1261 | background-color: #ffb74d !important; } | ||
1262 | |||
1263 | .orange-text.text-lighten-2 { | ||
1264 | color: #ffb74d !important; } | ||
1265 | |||
1266 | .orange.lighten-1 { | ||
1267 | background-color: #ffa726 !important; } | ||
1268 | |||
1269 | .orange-text.text-lighten-1 { | ||
1270 | color: #ffa726 !important; } | ||
1271 | |||
1272 | .orange { | ||
1273 | background-color: #ff9800 !important; } | ||
1274 | |||
1275 | .orange-text { | ||
1276 | color: #ff9800 !important; } | ||
1277 | |||
1278 | .orange.darken-1 { | ||
1279 | background-color: #fb8c00 !important; } | ||
1280 | |||
1281 | .orange-text.text-darken-1 { | ||
1282 | color: #fb8c00 !important; } | ||
1283 | |||
1284 | .orange.darken-2 { | ||
1285 | background-color: #f57c00 !important; } | ||
1286 | |||
1287 | .orange-text.text-darken-2 { | ||
1288 | color: #f57c00 !important; } | ||
1289 | |||
1290 | .orange.darken-3 { | ||
1291 | background-color: #ef6c00 !important; } | ||
1292 | |||
1293 | .orange-text.text-darken-3 { | ||
1294 | color: #ef6c00 !important; } | ||
1295 | |||
1296 | .orange.darken-4 { | ||
1297 | background-color: #e65100 !important; } | ||
1298 | |||
1299 | .orange-text.text-darken-4 { | ||
1300 | color: #e65100 !important; } | ||
1301 | |||
1302 | .orange.accent-1 { | ||
1303 | background-color: #ffd180 !important; } | ||
1304 | |||
1305 | .orange-text.text-accent-1 { | ||
1306 | color: #ffd180 !important; } | ||
1307 | |||
1308 | .orange.accent-2 { | ||
1309 | background-color: #ffab40 !important; } | ||
1310 | |||
1311 | .orange-text.text-accent-2 { | ||
1312 | color: #ffab40 !important; } | ||
1313 | |||
1314 | .orange.accent-3 { | ||
1315 | background-color: #ff9100 !important; } | ||
1316 | |||
1317 | .orange-text.text-accent-3 { | ||
1318 | color: #ff9100 !important; } | ||
1319 | |||
1320 | .orange.accent-4 { | ||
1321 | background-color: #ff6d00 !important; } | ||
1322 | |||
1323 | .orange-text.text-accent-4 { | ||
1324 | color: #ff6d00 !important; } | ||
1325 | |||
1326 | .deep-orange.lighten-5 { | ||
1327 | background-color: #fbe9e7 !important; } | ||
1328 | |||
1329 | .deep-orange-text.text-lighten-5 { | ||
1330 | color: #fbe9e7 !important; } | ||
1331 | |||
1332 | .deep-orange.lighten-4 { | ||
1333 | background-color: #ffccbc !important; } | ||
1334 | |||
1335 | .deep-orange-text.text-lighten-4 { | ||
1336 | color: #ffccbc !important; } | ||
1337 | |||
1338 | .deep-orange.lighten-3 { | ||
1339 | background-color: #ffab91 !important; } | ||
1340 | |||
1341 | .deep-orange-text.text-lighten-3 { | ||
1342 | color: #ffab91 !important; } | ||
1343 | |||
1344 | .deep-orange.lighten-2 { | ||
1345 | background-color: #ff8a65 !important; } | ||
1346 | |||
1347 | .deep-orange-text.text-lighten-2 { | ||
1348 | color: #ff8a65 !important; } | ||
1349 | |||
1350 | .deep-orange.lighten-1 { | ||
1351 | background-color: #ff7043 !important; } | ||
1352 | |||
1353 | .deep-orange-text.text-lighten-1 { | ||
1354 | color: #ff7043 !important; } | ||
1355 | |||
1356 | .deep-orange { | ||
1357 | background-color: #ff5722 !important; } | ||
1358 | |||
1359 | .deep-orange-text { | ||
1360 | color: #ff5722 !important; } | ||
1361 | |||
1362 | .deep-orange.darken-1 { | ||
1363 | background-color: #f4511e !important; } | ||
1364 | |||
1365 | .deep-orange-text.text-darken-1 { | ||
1366 | color: #f4511e !important; } | ||
1367 | |||
1368 | .deep-orange.darken-2 { | ||
1369 | background-color: #e64a19 !important; } | ||
1370 | |||
1371 | .deep-orange-text.text-darken-2 { | ||
1372 | color: #e64a19 !important; } | ||
1373 | |||
1374 | .deep-orange.darken-3 { | ||
1375 | background-color: #d84315 !important; } | ||
1376 | |||
1377 | .deep-orange-text.text-darken-3 { | ||
1378 | color: #d84315 !important; } | ||
1379 | |||
1380 | .deep-orange.darken-4 { | ||
1381 | background-color: #bf360c !important; } | ||
1382 | |||
1383 | .deep-orange-text.text-darken-4 { | ||
1384 | color: #bf360c !important; } | ||
1385 | |||
1386 | .deep-orange.accent-1 { | ||
1387 | background-color: #ff9e80 !important; } | ||
1388 | |||
1389 | .deep-orange-text.text-accent-1 { | ||
1390 | color: #ff9e80 !important; } | ||
1391 | |||
1392 | .deep-orange.accent-2 { | ||
1393 | background-color: #ff6e40 !important; } | ||
1394 | |||
1395 | .deep-orange-text.text-accent-2 { | ||
1396 | color: #ff6e40 !important; } | ||
1397 | |||
1398 | .deep-orange.accent-3 { | ||
1399 | background-color: #ff3d00 !important; } | ||
1400 | |||
1401 | .deep-orange-text.text-accent-3 { | ||
1402 | color: #ff3d00 !important; } | ||
1403 | |||
1404 | .deep-orange.accent-4 { | ||
1405 | background-color: #dd2c00 !important; } | ||
1406 | |||
1407 | .deep-orange-text.text-accent-4 { | ||
1408 | color: #dd2c00 !important; } | ||
1409 | |||
1410 | .brown.lighten-5 { | ||
1411 | background-color: #efebe9 !important; } | ||
1412 | |||
1413 | .brown-text.text-lighten-5 { | ||
1414 | color: #efebe9 !important; } | ||
1415 | |||
1416 | .brown.lighten-4 { | ||
1417 | background-color: #d7ccc8 !important; } | ||
1418 | |||
1419 | .brown-text.text-lighten-4 { | ||
1420 | color: #d7ccc8 !important; } | ||
1421 | |||
1422 | .brown.lighten-3 { | ||
1423 | background-color: #bcaaa4 !important; } | ||
1424 | |||
1425 | .brown-text.text-lighten-3 { | ||
1426 | color: #bcaaa4 !important; } | ||
1427 | |||
1428 | .brown.lighten-2 { | ||
1429 | background-color: #a1887f !important; } | ||
1430 | |||
1431 | .brown-text.text-lighten-2 { | ||
1432 | color: #a1887f !important; } | ||
1433 | |||
1434 | .brown.lighten-1 { | ||
1435 | background-color: #8d6e63 !important; } | ||
1436 | |||
1437 | .brown-text.text-lighten-1 { | ||
1438 | color: #8d6e63 !important; } | ||
1439 | |||
1440 | .brown { | ||
1441 | background-color: #795548 !important; } | ||
1442 | |||
1443 | .brown-text { | ||
1444 | color: #795548 !important; } | ||
1445 | |||
1446 | .brown.darken-1 { | ||
1447 | background-color: #6d4c41 !important; } | ||
1448 | |||
1449 | .brown-text.text-darken-1 { | ||
1450 | color: #6d4c41 !important; } | ||
1451 | |||
1452 | .brown.darken-2 { | ||
1453 | background-color: #5d4037 !important; } | ||
1454 | |||
1455 | .brown-text.text-darken-2 { | ||
1456 | color: #5d4037 !important; } | ||
1457 | |||
1458 | .brown.darken-3 { | ||
1459 | background-color: #4e342e !important; } | ||
1460 | |||
1461 | .brown-text.text-darken-3 { | ||
1462 | color: #4e342e !important; } | ||
1463 | |||
1464 | .brown.darken-4 { | ||
1465 | background-color: #3e2723 !important; } | ||
1466 | |||
1467 | .brown-text.text-darken-4 { | ||
1468 | color: #3e2723 !important; } | ||
1469 | |||
1470 | .blue-grey.lighten-5 { | ||
1471 | background-color: #eceff1 !important; } | ||
1472 | |||
1473 | .blue-grey-text.text-lighten-5 { | ||
1474 | color: #eceff1 !important; } | ||
1475 | |||
1476 | .blue-grey.lighten-4 { | ||
1477 | background-color: #cfd8dc !important; } | ||
1478 | |||
1479 | .blue-grey-text.text-lighten-4 { | ||
1480 | color: #cfd8dc !important; } | ||
1481 | |||
1482 | .blue-grey.lighten-3 { | ||
1483 | background-color: #b0bec5 !important; } | ||
1484 | |||
1485 | .blue-grey-text.text-lighten-3 { | ||
1486 | color: #b0bec5 !important; } | ||
1487 | |||
1488 | .blue-grey.lighten-2 { | ||
1489 | background-color: #90a4ae !important; } | ||
1490 | |||
1491 | .blue-grey-text.text-lighten-2 { | ||
1492 | color: #90a4ae !important; } | ||
1493 | |||
1494 | .blue-grey.lighten-1 { | ||
1495 | background-color: #78909c !important; } | ||
1496 | |||
1497 | .blue-grey-text.text-lighten-1 { | ||
1498 | color: #78909c !important; } | ||
1499 | |||
1500 | .blue-grey { | ||
1501 | background-color: #607d8b !important; } | ||
1502 | |||
1503 | .blue-grey-text { | ||
1504 | color: #607d8b !important; } | ||
1505 | |||
1506 | .blue-grey.darken-1 { | ||
1507 | background-color: #546e7a !important; } | ||
1508 | |||
1509 | .blue-grey-text.text-darken-1 { | ||
1510 | color: #546e7a !important; } | ||
1511 | |||
1512 | .blue-grey.darken-2 { | ||
1513 | background-color: #455a64 !important; } | ||
1514 | |||
1515 | .blue-grey-text.text-darken-2 { | ||
1516 | color: #455a64 !important; } | ||
1517 | |||
1518 | .blue-grey.darken-3 { | ||
1519 | background-color: #37474f !important; } | ||
1520 | |||
1521 | .blue-grey-text.text-darken-3 { | ||
1522 | color: #37474f !important; } | ||
1523 | |||
1524 | .blue-grey.darken-4 { | ||
1525 | background-color: #263238 !important; } | ||
1526 | |||
1527 | .blue-grey-text.text-darken-4 { | ||
1528 | color: #263238 !important; } | ||
1529 | |||
1530 | .grey.lighten-5 { | ||
1531 | background-color: #fafafa !important; } | ||
1532 | |||
1533 | .grey-text.text-lighten-5 { | ||
1534 | color: #fafafa !important; } | ||
1535 | |||
1536 | .grey.lighten-4 { | ||
1537 | background-color: #f5f5f5 !important; } | ||
1538 | |||
1539 | .grey-text.text-lighten-4 { | ||
1540 | color: #f5f5f5 !important; } | ||
1541 | |||
1542 | .grey.lighten-3 { | ||
1543 | background-color: #eeeeee !important; } | ||
1544 | |||
1545 | .grey-text.text-lighten-3 { | ||
1546 | color: #eeeeee !important; } | ||
1547 | |||
1548 | .grey.lighten-2 { | ||
1549 | background-color: #e0e0e0 !important; } | ||
1550 | |||
1551 | .grey-text.text-lighten-2 { | ||
1552 | color: #e0e0e0 !important; } | ||
1553 | |||
1554 | .grey.lighten-1 { | ||
1555 | background-color: #bdbdbd !important; } | ||
1556 | |||
1557 | .grey-text.text-lighten-1 { | ||
1558 | color: #bdbdbd !important; } | ||
1559 | |||
1560 | .grey { | ||
1561 | background-color: #9e9e9e !important; } | ||
1562 | |||
1563 | .grey-text { | ||
1564 | color: #9e9e9e !important; } | ||
1565 | |||
1566 | .grey.darken-1 { | ||
1567 | background-color: #757575 !important; } | ||
1568 | |||
1569 | .grey-text.text-darken-1 { | ||
1570 | color: #757575 !important; } | ||
1571 | |||
1572 | .grey.darken-2 { | ||
1573 | background-color: #616161 !important; } | ||
1574 | |||
1575 | .grey-text.text-darken-2 { | ||
1576 | color: #616161 !important; } | ||
1577 | |||
1578 | .grey.darken-3 { | ||
1579 | background-color: #424242 !important; } | ||
1580 | |||
1581 | .grey-text.text-darken-3 { | ||
1582 | color: #424242 !important; } | ||
1583 | |||
1584 | .grey.darken-4 { | ||
1585 | background-color: #212121 !important; } | ||
1586 | |||
1587 | .grey-text.text-darken-4 { | ||
1588 | color: #212121 !important; } | ||
1589 | |||
1590 | .shades.black { | ||
1591 | background-color: #000000 !important; } | ||
1592 | |||
1593 | .shades-text.text-black { | ||
1594 | color: #000000 !important; } | ||
1595 | |||
1596 | .shades.white { | ||
1597 | background-color: #FFFFFF !important; } | ||
1598 | |||
1599 | .shades-text.text-white { | ||
1600 | color: #FFFFFF !important; } | ||
1601 | |||
1602 | .shades.transparent { | ||
1603 | background-color: transparent !important; } | ||
1604 | |||
1605 | .shades-text.text-transparent { | ||
1606 | color: transparent !important; } | ||
1607 | |||
1608 | .black { | ||
1609 | background-color: #000000 !important; } | ||
1610 | |||
1611 | .black-text { | ||
1612 | color: #000000 !important; } | ||
1613 | |||
1614 | .white { | ||
1615 | background-color: #FFFFFF !important; } | ||
1616 | |||
1617 | .white-text { | ||
1618 | color: #FFFFFF !important; } | ||
1619 | |||
1620 | .transparent { | ||
1621 | background-color: transparent !important; } | ||
1622 | |||
1623 | .transparent-text { | ||
1624 | color: transparent !important; } | ||
1625 | |||
1626 | /*** Colors ***/ | ||
1627 | /*** Badges ***/ | ||
1628 | /*** Buttons ***/ | ||
1629 | /*** Cards ***/ | ||
1630 | /*** Collapsible ***/ | ||
1631 | /*** Dropdown ***/ | ||
1632 | /*** Fonts ***/ | ||
1633 | /*** Forms ***/ | ||
1634 | /*** Global ***/ | ||
1635 | /*** Navbar ***/ | ||
1636 | /*** SideNav ***/ | ||
1637 | /*** Photo Slider ***/ | ||
1638 | /*** Spinners | Loaders ***/ | ||
1639 | /*** Tabs ***/ | ||
1640 | /*** Tables ***/ | ||
1641 | /*** Toasts ***/ | ||
1642 | /*** Typography ***/ | ||
1643 | /*** Collections ***/ | ||
1644 | /* Progress Bar */ | ||
1645 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ | ||
1646 | /** | ||
1647 | * 1. Set default font family to sans-serif. | ||
1648 | * 2. Prevent iOS text size adjust after orientation change, without disabling | ||
1649 | * user zoom. | ||
1650 | */ | ||
1651 | html { | ||
1652 | font-family: sans-serif; | ||
1653 | /* 1 */ | ||
1654 | -ms-text-size-adjust: 100%; | ||
1655 | /* 2 */ | ||
1656 | -webkit-text-size-adjust: 100%; | ||
1657 | /* 2 */ } | ||
1658 | |||
1659 | /** | ||
1660 | * Remove default margin. | ||
1661 | */ | ||
1662 | body { | ||
1663 | margin: 0; } | ||
1664 | |||
1665 | /* HTML5 display definitions | ||
1666 | ========================================================================== */ | ||
1667 | /** | ||
1668 | * Correct `block` display not defined for any HTML5 element in IE 8/9. | ||
1669 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 | ||
1670 | * and Firefox. | ||
1671 | * Correct `block` display not defined for `main` in IE 11. | ||
1672 | */ | ||
1673 | article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { | ||
1674 | display: block; } | ||
1675 | |||
1676 | /** | ||
1677 | * 1. Correct `inline-block` display not defined in IE 8/9. | ||
1678 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. | ||
1679 | */ | ||
1680 | audio, canvas, progress, video { | ||
1681 | display: inline-block; | ||
1682 | /* 1 */ | ||
1683 | vertical-align: baseline; | ||
1684 | /* 2 */ } | ||
1685 | |||
1686 | /** | ||
1687 | * Prevent modern browsers from displaying `audio` without controls. | ||
1688 | * Remove excess height in iOS 5 devices. | ||
1689 | */ | ||
1690 | audio:not([controls]) { | ||
1691 | display: none; | ||
1692 | height: 0; } | ||
1693 | |||
1694 | /** | ||
1695 | * Address `[hidden]` styling not present in IE 8/9/10. | ||
1696 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. | ||
1697 | */ | ||
1698 | [hidden], template { | ||
1699 | display: none; } | ||
1700 | |||
1701 | /* Links | ||
1702 | ========================================================================== */ | ||
1703 | /** | ||
1704 | * Remove the gray background color from active links in IE 10. | ||
1705 | */ | ||
1706 | a { | ||
1707 | background-color: transparent; } | ||
1708 | |||
1709 | /** | ||
1710 | * Improve readability when focused and also mouse hovered in all browsers. | ||
1711 | */ | ||
1712 | a:active, a:hover { | ||
1713 | outline: 0; } | ||
1714 | |||
1715 | /* Text-level semantics | ||
1716 | ========================================================================== */ | ||
1717 | /** | ||
1718 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. | ||
1719 | */ | ||
1720 | abbr[title] { | ||
1721 | border-bottom: 1px dotted; } | ||
1722 | |||
1723 | /** | ||
1724 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. | ||
1725 | */ | ||
1726 | b, strong { | ||
1727 | font-weight: bold; } | ||
1728 | |||
1729 | /** | ||
1730 | * Address styling not present in Safari and Chrome. | ||
1731 | */ | ||
1732 | dfn { | ||
1733 | font-style: italic; } | ||
1734 | |||
1735 | /** | ||
1736 | * Address variable `h1` font-size and margin within `section` and `article` | ||
1737 | * contexts in Firefox 4+, Safari, and Chrome. | ||
1738 | */ | ||
1739 | h1 { | ||
1740 | font-size: 2em; | ||
1741 | margin: 0.67em 0; } | ||
1742 | |||
1743 | /** | ||
1744 | * Address styling not present in IE 8/9. | ||
1745 | */ | ||
1746 | mark { | ||
1747 | background: #ff0; | ||
1748 | color: #000; } | ||
1749 | |||
1750 | /** | ||
1751 | * Address inconsistent and variable font size in all browsers. | ||
1752 | */ | ||
1753 | small { | ||
1754 | font-size: 80%; } | ||
1755 | |||
1756 | /** | ||
1757 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. | ||
1758 | */ | ||
1759 | sub, sup { | ||
1760 | font-size: 75%; | ||
1761 | line-height: 0; | ||
1762 | position: relative; | ||
1763 | vertical-align: baseline; } | ||
1764 | |||
1765 | sup { | ||
1766 | top: -0.5em; } | ||
1767 | |||
1768 | sub { | ||
1769 | bottom: -0.25em; } | ||
1770 | |||
1771 | /* Embedded content | ||
1772 | ========================================================================== */ | ||
1773 | /** | ||
1774 | * Remove border when inside `a` element in IE 8/9/10. | ||
1775 | */ | ||
1776 | img { | ||
1777 | border: 0; } | ||
1778 | |||
1779 | /** | ||
1780 | * Correct overflow not hidden in IE 9/10/11. | ||
1781 | */ | ||
1782 | svg:not(:root) { | ||
1783 | overflow: hidden; } | ||
1784 | |||
1785 | /* Grouping content | ||
1786 | ========================================================================== */ | ||
1787 | /** | ||
1788 | * Address margin not present in IE 8/9 and Safari. | ||
1789 | */ | ||
1790 | figure { | ||
1791 | margin: 1em 40px; } | ||
1792 | |||
1793 | /** | ||
1794 | * Address differences between Firefox and other browsers. | ||
1795 | */ | ||
1796 | hr { | ||
1797 | -moz-box-sizing: content-box; | ||
1798 | box-sizing: content-box; | ||
1799 | height: 0; } | ||
1800 | |||
1801 | /** | ||
1802 | * Contain overflow in all browsers. | ||
1803 | */ | ||
1804 | pre { | ||
1805 | overflow: auto; } | ||
1806 | |||
1807 | /** | ||
1808 | * Address odd `em`-unit font size rendering in all browsers. | ||
1809 | */ | ||
1810 | code, kbd, pre, samp { | ||
1811 | font-family: monospace, monospace; | ||
1812 | font-size: 1em; } | ||
1813 | |||
1814 | /* Forms | ||
1815 | ========================================================================== */ | ||
1816 | /** | ||
1817 | * Known limitation: by default, Chrome and Safari on OS X allow very limited | ||
1818 | * styling of `select`, unless a `border` property is set. | ||
1819 | */ | ||
1820 | /** | ||
1821 | * 1. Correct color not being inherited. | ||
1822 | * Known issue: affects color of disabled elements. | ||
1823 | * 2. Correct font properties not being inherited. | ||
1824 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. | ||
1825 | */ | ||
1826 | button, input, optgroup, select, textarea { | ||
1827 | color: inherit; | ||
1828 | /* 1 */ | ||
1829 | font: inherit; | ||
1830 | /* 2 */ | ||
1831 | margin: 0; | ||
1832 | /* 3 */ } | ||
1833 | |||
1834 | /** | ||
1835 | * Address `overflow` set to `hidden` in IE 8/9/10/11. | ||
1836 | */ | ||
1837 | button { | ||
1838 | overflow: visible; } | ||
1839 | |||
1840 | /** | ||
1841 | * Address inconsistent `text-transform` inheritance for `button` and `select`. | ||
1842 | * All other form control elements do not inherit `text-transform` values. | ||
1843 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. | ||
1844 | * Correct `select` style inheritance in Firefox. | ||
1845 | */ | ||
1846 | button, select { | ||
1847 | text-transform: none; } | ||
1848 | |||
1849 | /** | ||
1850 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` | ||
1851 | * and `video` controls. | ||
1852 | * 2. Correct inability to style clickable `input` types in iOS. | ||
1853 | * 3. Improve usability and consistency of cursor style between image-type | ||
1854 | * `input` and others. | ||
1855 | */ | ||
1856 | /* 1 */ | ||
1857 | html input[type="button"], button, input[type="reset"], input[type="submit"] { | ||
1858 | -webkit-appearance: button; | ||
1859 | /* 2 */ | ||
1860 | cursor: pointer; | ||
1861 | /* 3 */ } | ||
1862 | |||
1863 | /** | ||
1864 | * Re-set default cursor for disabled elements. | ||
1865 | */ | ||
1866 | button[disabled], html input[disabled] { | ||
1867 | cursor: default; } | ||
1868 | |||
1869 | /** | ||
1870 | * Remove inner padding and border in Firefox 4+. | ||
1871 | */ | ||
1872 | button::-moz-focus-inner, input::-moz-focus-inner { | ||
1873 | border: 0; | ||
1874 | padding: 0; } | ||
1875 | |||
1876 | /** | ||
1877 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in | ||
1878 | * the UA stylesheet. | ||
1879 | */ | ||
1880 | input { | ||
1881 | line-height: normal; } | ||
1882 | |||
1883 | /** | ||
1884 | * It's recommended that you don't attempt to style these elements. | ||
1885 | * Firefox's implementation doesn't respect box-sizing, padding, or width. | ||
1886 | * | ||
1887 | * 1. Address box sizing set to `content-box` in IE 8/9/10. | ||
1888 | * 2. Remove excess padding in IE 8/9/10. | ||
1889 | */ | ||
1890 | input[type="checkbox"], input[type="radio"] { | ||
1891 | box-sizing: border-box; | ||
1892 | /* 1 */ | ||
1893 | padding: 0; | ||
1894 | /* 2 */ } | ||
1895 | |||
1896 | /** | ||
1897 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain | ||
1898 | * `font-size` values of the `input`, it causes the cursor style of the | ||
1899 | * decrement button to change from `default` to `text`. | ||
1900 | */ | ||
1901 | input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { | ||
1902 | height: auto; } | ||
1903 | |||
1904 | /** | ||
1905 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. | ||
1906 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome | ||
1907 | * (include `-moz` to future-proof). | ||
1908 | */ | ||
1909 | input[type="search"] { | ||
1910 | -webkit-appearance: textfield; | ||
1911 | /* 1 */ | ||
1912 | -moz-box-sizing: content-box; | ||
1913 | -webkit-box-sizing: content-box; | ||
1914 | /* 2 */ | ||
1915 | box-sizing: content-box; } | ||
1916 | |||
1917 | /** | ||
1918 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. | ||
1919 | * Safari (but not Chrome) clips the cancel button when the search input has | ||
1920 | * padding (and `textfield` appearance). | ||
1921 | */ | ||
1922 | input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { | ||
1923 | -webkit-appearance: none; } | ||
1924 | |||
1925 | /** | ||
1926 | * Define consistent border, margin, and padding. | ||
1927 | */ | ||
1928 | fieldset { | ||
1929 | border: 1px solid #c0c0c0; | ||
1930 | margin: 0 2px; | ||
1931 | padding: 0.35em 0.625em 0.75em; } | ||
1932 | |||
1933 | /** | ||
1934 | * 1. Correct `color` not being inherited in IE 8/9/10/11. | ||
1935 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. | ||
1936 | */ | ||
1937 | legend { | ||
1938 | border: 0; | ||
1939 | /* 1 */ | ||
1940 | padding: 0; | ||
1941 | /* 2 */ } | ||
1942 | |||
1943 | /** | ||
1944 | * Remove default vertical scrollbar in IE 8/9/10/11. | ||
1945 | */ | ||
1946 | textarea { | ||
1947 | overflow: auto; } | ||
1948 | |||
1949 | /** | ||
1950 | * Don't inherit the `font-weight` (applied by a rule above). | ||
1951 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. | ||
1952 | */ | ||
1953 | optgroup { | ||
1954 | font-weight: bold; } | ||
1955 | |||
1956 | /* Tables | ||
1957 | ========================================================================== */ | ||
1958 | /** | ||
1959 | * Remove most spacing between table cells. | ||
1960 | */ | ||
1961 | table { | ||
1962 | border-collapse: collapse; | ||
1963 | border-spacing: 0; } | ||
1964 | |||
1965 | td, th { | ||
1966 | padding: 0; } | ||
1967 | |||
1968 | html { | ||
1969 | box-sizing: border-box; } | ||
1970 | |||
1971 | *, *:before, *:after { | ||
1972 | box-sizing: inherit; } | ||
1973 | |||
1974 | ul { | ||
1975 | list-style-type: none; } | ||
1976 | |||
1977 | a { | ||
1978 | color: #039be5; | ||
1979 | text-decoration: none; | ||
1980 | -webkit-tap-highlight-color: transparent; } | ||
1981 | |||
1982 | .valign-wrapper { | ||
1983 | display: -webkit-box; | ||
1984 | display: -moz-box; | ||
1985 | display: -ms-flexbox; | ||
1986 | display: -webkit-flex; | ||
1987 | display: flex; | ||
1988 | -webkit-flex-align: center; | ||
1989 | -ms-flex-align: center; | ||
1990 | -webkit-align-items: center; | ||
1991 | align-items: center; } | ||
1992 | .valign-wrapper .valign { | ||
1993 | display: block; } | ||
1994 | |||
1995 | ul { | ||
1996 | padding: 0; } | ||
1997 | ul li { | ||
1998 | list-style-type: none; } | ||
1999 | |||
2000 | .clearfix { | ||
2001 | clear: both; } | ||
2002 | |||
2003 | .z-depth-0 { | ||
2004 | box-shadow: none !important; } | ||
2005 | |||
2006 | .z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav { | ||
2007 | box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); } | ||
2008 | |||
2009 | .z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover { | ||
2010 | box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); } | ||
2011 | |||
2012 | .z-depth-2 { | ||
2013 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } | ||
2014 | |||
2015 | .z-depth-3 { | ||
2016 | box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24), 0 17px 50px 0 rgba(0, 0, 0, 0.19); } | ||
2017 | |||
2018 | .z-depth-4, .modal { | ||
2019 | box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22), 0 25px 55px 0 rgba(0, 0, 0, 0.21); } | ||
2020 | |||
2021 | .z-depth-5 { | ||
2022 | box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22); } | ||
2023 | |||
2024 | .hoverable:hover { | ||
2025 | transition: box-shadow .25s; | ||
2026 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } | ||
2027 | |||
2028 | .divider { | ||
2029 | height: 1px; | ||
2030 | overflow: hidden; | ||
2031 | background-color: #e0e0e0; } | ||
2032 | |||
2033 | blockquote { | ||
2034 | margin: 20px 0; | ||
2035 | padding-left: 1.5rem; | ||
2036 | border-left: 5px solid #ee6e73; } | ||
2037 | |||
2038 | i { | ||
2039 | line-height: inherit; } | ||
2040 | i.left { | ||
2041 | float: left; | ||
2042 | margin-right: 15px; } | ||
2043 | i.right { | ||
2044 | float: right; | ||
2045 | margin-left: 15px; } | ||
2046 | i.tiny { | ||
2047 | font-size: 1rem; } | ||
2048 | i.small { | ||
2049 | font-size: 2rem; } | ||
2050 | i.medium { | ||
2051 | font-size: 4rem; } | ||
2052 | i.large { | ||
2053 | font-size: 6rem; } | ||
2054 | |||
2055 | img.responsive-img, video.responsive-video { | ||
2056 | max-width: 100%; | ||
2057 | height: auto; } | ||
2058 | |||
2059 | .pagination li { | ||
2060 | display: inline-block; | ||
2061 | font-size: 1.2rem; | ||
2062 | padding: 0 10px; | ||
2063 | line-height: 30px; | ||
2064 | border-radius: 2px; | ||
2065 | text-align: center; } | ||
2066 | .pagination li a { | ||
2067 | color: #444; } | ||
2068 | .pagination li.active a { | ||
2069 | color: #fff; } | ||
2070 | .pagination li.active { | ||
2071 | background-color: #ee6e73; } | ||
2072 | .pagination li.disabled a { | ||
2073 | cursor: default; | ||
2074 | color: #999; } | ||
2075 | .pagination li i { | ||
2076 | font-size: 2rem; } | ||
2077 | .pagination li.pages ul li { | ||
2078 | display: inline-block; | ||
2079 | float: none; } | ||
2080 | |||
2081 | @media only screen and (max-width : 992px) { | ||
2082 | .pagination { | ||
2083 | width: 100%; } | ||
2084 | .pagination li.prev, .pagination li.next { | ||
2085 | width: 10%; } | ||
2086 | .pagination li.pages { | ||
2087 | width: 80%; | ||
2088 | overflow: hidden; | ||
2089 | white-space: nowrap; } } | ||
2090 | |||
2091 | .parallax-container { | ||
2092 | position: relative; | ||
2093 | overflow: hidden; | ||
2094 | height: 500px; } | ||
2095 | |||
2096 | .parallax { | ||
2097 | position: absolute; | ||
2098 | top: 0; | ||
2099 | left: 0; | ||
2100 | right: 0; | ||
2101 | bottom: 0; | ||
2102 | z-index: -1; } | ||
2103 | .parallax img { | ||
2104 | display: none; | ||
2105 | position: absolute; | ||
2106 | left: 50%; | ||
2107 | bottom: 0; | ||
2108 | min-width: 100%; | ||
2109 | min-height: 100%; | ||
2110 | -webkit-transform: translate3d(0, 0, 0); | ||
2111 | transform: translate3d(0, 0, 0); | ||
2112 | transform: translateX(-50%); } | ||
2113 | |||
2114 | .pin-top, .pin-bottom { | ||
2115 | position: relative; } | ||
2116 | |||
2117 | .pinned { | ||
2118 | position: fixed !important; } | ||
2119 | |||
2120 | /********************* | ||
2121 | Transition Classes | ||
2122 | **********************/ | ||
2123 | ul.staggered-list li { | ||
2124 | opacity: 0; } | ||
2125 | |||
2126 | .fade-in { | ||
2127 | opacity: 0; | ||
2128 | transform-origin: 0 50%; } | ||
2129 | |||
2130 | /********************* | ||
2131 | Media Query Classes | ||
2132 | **********************/ | ||
2133 | @media only screen and (max-width : 600px) { | ||
2134 | .hide-on-small-only, .hide-on-small-and-down { | ||
2135 | display: none !important; } } | ||
2136 | |||
2137 | @media only screen and (max-width : 992px) { | ||
2138 | .hide-on-med-and-down { | ||
2139 | display: none !important; } } | ||
2140 | |||
2141 | @media only screen and (min-width : 601px) { | ||
2142 | .hide-on-med-and-up { | ||
2143 | display: none !important; } } | ||
2144 | |||
2145 | @media only screen and (min-width: 600px) and (max-width: 992px) { | ||
2146 | .hide-on-med-only { | ||
2147 | display: none !important; } } | ||
2148 | |||
2149 | @media only screen and (min-width : 993px) { | ||
2150 | .hide-on-large-only { | ||
2151 | display: none !important; } } | ||
2152 | |||
2153 | @media only screen and (min-width : 993px) { | ||
2154 | .show-on-large { | ||
2155 | display: initial !important; } } | ||
2156 | |||
2157 | @media only screen and (min-width: 600px) and (max-width: 992px) { | ||
2158 | .show-on-medium { | ||
2159 | display: initial !important; } } | ||
2160 | |||
2161 | @media only screen and (max-width : 600px) { | ||
2162 | .show-on-small { | ||
2163 | display: initial !important; } } | ||
2164 | |||
2165 | @media only screen and (min-width : 601px) { | ||
2166 | .show-on-medium-and-up { | ||
2167 | display: initial !important; } } | ||
2168 | |||
2169 | @media only screen and (max-width : 992px) { | ||
2170 | .show-on-medium-and-down { | ||
2171 | display: initial !important; } } | ||
2172 | |||
2173 | @media only screen and (max-width : 600px) { | ||
2174 | .center-on-small-only { | ||
2175 | text-align: center; } } | ||
2176 | |||
2177 | footer.page-footer { | ||
2178 | margin-top: 20px; | ||
2179 | padding-top: 20px; | ||
2180 | background-color: #ee6e73; } | ||
2181 | footer.page-footer .footer-copyright { | ||
2182 | overflow: hidden; | ||
2183 | height: 50px; | ||
2184 | line-height: 50px; | ||
2185 | color: rgba(255, 255, 255, 0.8); | ||
2186 | background-color: rgba(51, 51, 51, 0.08); } | ||
2187 | |||
2188 | table, th, td { | ||
2189 | border: none; } | ||
2190 | |||
2191 | table { | ||
2192 | width: 100%; | ||
2193 | display: table; } | ||
2194 | table.bordered > thead > tr, table.bordered > tbody > tr { | ||
2195 | border-bottom: 1px solid #d0d0d0; } | ||
2196 | table.striped > tbody > tr:nth-child(odd) { | ||
2197 | background-color: #f2f2f2; } | ||
2198 | table.striped > tbody > tr > td { | ||
2199 | border-radius: 0px; } | ||
2200 | table.highlight > tbody > tr { | ||
2201 | -webkit-transition: background-color .25s ease; | ||
2202 | -moz-transition: background-color .25s ease; | ||
2203 | -o-transition: background-color .25s ease; | ||
2204 | -ms-transition: background-color .25s ease; | ||
2205 | transition: background-color .25s ease; } | ||
2206 | table.highlight > tbody > tr:hover { | ||
2207 | background-color: #f2f2f2; } | ||
2208 | table.centered thead tr th, table.centered tbody tr td { | ||
2209 | text-align: center; } | ||
2210 | |||
2211 | thead { | ||
2212 | border-bottom: 1px solid #d0d0d0; } | ||
2213 | |||
2214 | td, th { | ||
2215 | padding: 15px 5px; | ||
2216 | display: table-cell; | ||
2217 | text-align: left; | ||
2218 | vertical-align: middle; | ||
2219 | border-radius: 2px; } | ||
2220 | |||
2221 | @media only screen and (max-width : 992px) { | ||
2222 | table.responsive-table { | ||
2223 | width: 100%; | ||
2224 | border-collapse: collapse; | ||
2225 | border-spacing: 0; | ||
2226 | display: block; | ||
2227 | position: relative; | ||
2228 | /* sort out borders */ } | ||
2229 | table.responsive-table th, table.responsive-table td { | ||
2230 | margin: 0; | ||
2231 | vertical-align: top; } | ||
2232 | table.responsive-table th { | ||
2233 | text-align: left; } | ||
2234 | table.responsive-table thead { | ||
2235 | display: block; | ||
2236 | float: left; } | ||
2237 | table.responsive-table thead tr { | ||
2238 | display: block; | ||
2239 | padding: 0 10px 0 0; } | ||
2240 | table.responsive-table thead tr th::before { | ||
2241 | content: "\00a0"; } | ||
2242 | table.responsive-table tbody { | ||
2243 | display: block; | ||
2244 | width: auto; | ||
2245 | position: relative; | ||
2246 | overflow-x: auto; | ||
2247 | white-space: nowrap; } | ||
2248 | table.responsive-table tbody tr { | ||
2249 | display: inline-block; | ||
2250 | vertical-align: top; } | ||
2251 | table.responsive-table th { | ||
2252 | display: block; | ||
2253 | text-align: right; } | ||
2254 | table.responsive-table td { | ||
2255 | display: block; | ||
2256 | min-height: 1.25em; | ||
2257 | text-align: left; } | ||
2258 | table.responsive-table tr { | ||
2259 | padding: 0 10px; } | ||
2260 | table.responsive-table thead { | ||
2261 | border: 0; | ||
2262 | border-right: 1px solid #d0d0d0; } | ||
2263 | table.responsive-table.bordered th { | ||
2264 | border-bottom: 0; | ||
2265 | border-left: 0; } | ||
2266 | table.responsive-table.bordered td { | ||
2267 | border-left: 0; | ||
2268 | border-right: 0; | ||
2269 | border-bottom: 0; } | ||
2270 | table.responsive-table.bordered tr { | ||
2271 | border: 0; } | ||
2272 | table.responsive-table.bordered tbody tr { | ||
2273 | border-right: 1px solid #d0d0d0; } } | ||
2274 | |||
2275 | .collection { | ||
2276 | margin: 0.5rem 0 1rem 0; | ||
2277 | border: 1px solid #e0e0e0; | ||
2278 | border-radius: 2px; | ||
2279 | overflow: hidden; | ||
2280 | position: relative; } | ||
2281 | .collection .collection-item { | ||
2282 | background-color: #fff; | ||
2283 | line-height: 1.5rem; | ||
2284 | padding: 10px 20px; | ||
2285 | margin: 0; | ||
2286 | border-bottom: 1px solid #e0e0e0; } | ||
2287 | .collection .collection-item.avatar { | ||
2288 | min-height: 84px; | ||
2289 | padding-left: 72px; | ||
2290 | position: relative; } | ||
2291 | .collection .collection-item.avatar .circle { | ||
2292 | position: absolute; | ||
2293 | width: 42px; | ||
2294 | height: 42px; | ||
2295 | overflow: hidden; | ||
2296 | left: 15px; | ||
2297 | display: inline-block; | ||
2298 | vertical-align: middle; } | ||
2299 | .collection .collection-item.avatar i.circle { | ||
2300 | font-size: 18px; | ||
2301 | line-height: 42px; | ||
2302 | color: #fff; | ||
2303 | background-color: #999; | ||
2304 | text-align: center; } | ||
2305 | .collection .collection-item.avatar .title { | ||
2306 | font-size: 16px; } | ||
2307 | .collection .collection-item.avatar p { | ||
2308 | margin: 0; } | ||
2309 | .collection .collection-item.avatar .secondary-content { | ||
2310 | position: absolute; | ||
2311 | top: 16px; | ||
2312 | right: 16px; } | ||
2313 | .collection .collection-item:last-child { | ||
2314 | border-bottom: none; } | ||
2315 | .collection .collection-item.active { | ||
2316 | background-color: #26a69a; | ||
2317 | color: #eafaf9; } | ||
2318 | .collection .collection-item.active .secondary-content { | ||
2319 | color: #fff; } | ||
2320 | .collection a.collection-item { | ||
2321 | display: block; | ||
2322 | -webkit-transition: 0.25s; | ||
2323 | -moz-transition: 0.25s; | ||
2324 | -o-transition: 0.25s; | ||
2325 | -ms-transition: 0.25s; | ||
2326 | transition: 0.25s; | ||
2327 | color: #26a69a; } | ||
2328 | .collection a.collection-item:not(.active):hover { | ||
2329 | background-color: #ddd; } | ||
2330 | .collection.with-header .collection-header { | ||
2331 | background-color: #fff; | ||
2332 | border-bottom: 1px solid #e0e0e0; | ||
2333 | padding: 10px 20px; } | ||
2334 | .collection.with-header .collection-item { | ||
2335 | padding-left: 30px; } | ||
2336 | .collection.with-header .collection-item.avatar { | ||
2337 | padding-left: 72px; } | ||
2338 | |||
2339 | .secondary-content { | ||
2340 | float: right; | ||
2341 | color: #26a69a; } | ||
2342 | |||
2343 | .collapsible .collection { | ||
2344 | margin: 0; | ||
2345 | border: none; } | ||
2346 | |||
2347 | span.badge { | ||
2348 | min-width: 3rem; | ||
2349 | padding: 0 6px; | ||
2350 | text-align: center; | ||
2351 | font-size: 1rem; | ||
2352 | line-height: inherit; | ||
2353 | color: #757575; | ||
2354 | position: absolute; | ||
2355 | right: 15px; | ||
2356 | -webkit-box-sizing: border-box; | ||
2357 | -moz-box-sizing: border-box; | ||
2358 | box-sizing: border-box; } | ||
2359 | span.badge.new { | ||
2360 | font-weight: 300; | ||
2361 | font-size: 0.8rem; | ||
2362 | color: #fff; | ||
2363 | background-color: #26a69a; | ||
2364 | border-radius: 2px; } | ||
2365 | span.badge.new:after { | ||
2366 | content: " new"; } | ||
2367 | |||
2368 | nav ul a span.badge { | ||
2369 | position: static; | ||
2370 | margin-left: 4px; | ||
2371 | line-height: 0; } | ||
2372 | |||
2373 | .video-container { | ||
2374 | position: relative; | ||
2375 | padding-bottom: 56.25%; | ||
2376 | padding-top: 30px; | ||
2377 | height: 0; | ||
2378 | overflow: hidden; } | ||
2379 | .video-container.no-controls { | ||
2380 | padding-top: 0; } | ||
2381 | .video-container iframe, .video-container object, .video-container embed { | ||
2382 | position: absolute; | ||
2383 | top: 0; | ||
2384 | left: 0; | ||
2385 | width: 100%; | ||
2386 | height: 100%; } | ||
2387 | |||
2388 | .progress { | ||
2389 | position: relative; | ||
2390 | height: 4px; | ||
2391 | display: block; | ||
2392 | width: 100%; | ||
2393 | background-color: #acece6; | ||
2394 | border-radius: 2px; | ||
2395 | margin: 0.5rem 0 1rem 0; | ||
2396 | overflow: hidden; } | ||
2397 | .progress .determinate { | ||
2398 | position: absolute; | ||
2399 | background-color: inherit; | ||
2400 | top: 0; | ||
2401 | left: 0; | ||
2402 | bottom: 0; | ||
2403 | background-color: #26a69a; | ||
2404 | -webkit-transition: width .3s linear; | ||
2405 | -moz-transition: width .3s linear; | ||
2406 | -o-transition: width .3s linear; | ||
2407 | -ms-transition: width .3s linear; | ||
2408 | transition: width .3s linear; } | ||
2409 | .progress .indeterminate { | ||
2410 | background-color: #26a69a; } | ||
2411 | .progress .indeterminate:before { | ||
2412 | content: ''; | ||
2413 | position: absolute; | ||
2414 | background-color: inherit; | ||
2415 | top: 0; | ||
2416 | left: 0; | ||
2417 | bottom: 0; | ||
2418 | will-change: left, right; | ||
2419 | -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; | ||
2420 | -moz-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; | ||
2421 | -ms-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; | ||
2422 | -o-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; | ||
2423 | animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; } | ||
2424 | .progress .indeterminate:after { | ||
2425 | content: ''; | ||
2426 | position: absolute; | ||
2427 | background-color: inherit; | ||
2428 | top: 0; | ||
2429 | left: 0; | ||
2430 | bottom: 0; | ||
2431 | will-change: left, right; | ||
2432 | -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; | ||
2433 | -moz-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; | ||
2434 | -ms-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; | ||
2435 | -o-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; | ||
2436 | animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; | ||
2437 | -webkit-animation-delay: 1.15s; | ||
2438 | -moz-animation-delay: 1.15s; | ||
2439 | -ms-animation-delay: 1.15s; | ||
2440 | -o-animation-delay: 1.15s; | ||
2441 | animation-delay: 1.15s; } | ||
2442 | |||
2443 | @-webkit-keyframes indeterminate { | ||
2444 | 0% { | ||
2445 | left: -35%; | ||
2446 | right: 100%; } | ||
2447 | |||
2448 | 60% { | ||
2449 | left: 100%; | ||
2450 | right: -90%; } | ||
2451 | |||
2452 | 100% { | ||
2453 | left: 100%; | ||
2454 | right: -90%; } } | ||
2455 | |||
2456 | @-moz-keyframes indeterminate { | ||
2457 | 0% { | ||
2458 | left: -35%; | ||
2459 | right: 100%; } | ||
2460 | |||
2461 | 60% { | ||
2462 | left: 100%; | ||
2463 | right: -90%; } | ||
2464 | |||
2465 | 100% { | ||
2466 | left: 100%; | ||
2467 | right: -90%; } } | ||
2468 | |||
2469 | @keyframes indeterminate { | ||
2470 | 0% { | ||
2471 | left: -35%; | ||
2472 | right: 100%; } | ||
2473 | |||
2474 | 60% { | ||
2475 | left: 100%; | ||
2476 | right: -90%; } | ||
2477 | |||
2478 | 100% { | ||
2479 | left: 100%; | ||
2480 | right: -90%; } } | ||
2481 | |||
2482 | @-webkit-keyframes indeterminate-short { | ||
2483 | 0% { | ||
2484 | left: -200%; | ||
2485 | right: 100%; } | ||
2486 | |||
2487 | 60% { | ||
2488 | left: 107%; | ||
2489 | right: -8%; } | ||
2490 | |||
2491 | 100% { | ||
2492 | left: 107%; | ||
2493 | right: -8%; } } | ||
2494 | |||
2495 | @-moz-keyframes indeterminate-short { | ||
2496 | 0% { | ||
2497 | left: -200%; | ||
2498 | right: 100%; } | ||
2499 | |||
2500 | 60% { | ||
2501 | left: 107%; | ||
2502 | right: -8%; } | ||
2503 | |||
2504 | 100% { | ||
2505 | left: 107%; | ||
2506 | right: -8%; } } | ||
2507 | |||
2508 | @keyframes indeterminate-short { | ||
2509 | 0% { | ||
2510 | left: -200%; | ||
2511 | right: 100%; } | ||
2512 | |||
2513 | 60% { | ||
2514 | left: 107%; | ||
2515 | right: -8%; } | ||
2516 | |||
2517 | 100% { | ||
2518 | left: 107%; | ||
2519 | right: -8%; } } | ||
2520 | |||
2521 | /******************* | ||
2522 | Utility Classes | ||
2523 | *******************/ | ||
2524 | .hide { | ||
2525 | display: none !important; } | ||
2526 | |||
2527 | .left-align { | ||
2528 | text-align: left; } | ||
2529 | |||
2530 | .right-align { | ||
2531 | text-align: right; } | ||
2532 | |||
2533 | .center, .center-align { | ||
2534 | text-align: center; } | ||
2535 | |||
2536 | .left { | ||
2537 | float: left !important; } | ||
2538 | |||
2539 | .right { | ||
2540 | float: right !important; } | ||
2541 | |||
2542 | .no-select, input[type=range], input[type=range] + .thumb { | ||
2543 | -webkit-touch-callout: none; | ||
2544 | -webkit-user-select: none; | ||
2545 | -khtml-user-select: none; | ||
2546 | -moz-user-select: none; | ||
2547 | -ms-user-select: none; | ||
2548 | user-select: none; } | ||
2549 | |||
2550 | .circle { | ||
2551 | border-radius: 50%; } | ||
2552 | |||
2553 | .center-block { | ||
2554 | display: block; | ||
2555 | margin-left: auto; | ||
2556 | margin-right: auto; } | ||
2557 | |||
2558 | .truncate { | ||
2559 | display: block; | ||
2560 | white-space: nowrap; | ||
2561 | overflow: hidden; | ||
2562 | text-overflow: ellipsis; } | ||
2563 | |||
2564 | .no-padding { | ||
2565 | padding: 0 !important; } | ||
2566 | |||
2567 | @font-face { | ||
2568 | font-family: "Material-Design-Icons"; | ||
2569 | src: url("../font/material-design-icons/Material-Design-Icons.eot?#iefix") format("embedded-opentype"), url("../font/material-design-icons/Material-Design-Icons.woff2") format("woff2"), url("../font/material-design-icons/Material-Design-Icons.woff") format("woff"), url("../font/material-design-icons/Material-Design-Icons.ttf") format("truetype"), url("../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons") format("svg"); | ||
2570 | font-weight: normal; | ||
2571 | font-style: normal; } | ||
2572 | |||
2573 | [class^="mdi-"], [class*="mdi-"] { | ||
2574 | speak: none; | ||
2575 | display: inline-block; | ||
2576 | font-family: "Material-Design-Icons"; | ||
2577 | font-style: normal; | ||
2578 | font-weight: normal; | ||
2579 | font-variant: normal; | ||
2580 | text-rendering: auto; | ||
2581 | /* Better Font Rendering =========== */ | ||
2582 | -webkit-font-smoothing: antialiased; | ||
2583 | -moz-osx-font-smoothing: grayscale; | ||
2584 | transform: translate(0, 0); } | ||
2585 | [class^="mdi-"]:before, [class*="mdi-"]:before { | ||
2586 | display: inline-block; | ||
2587 | speak: none; | ||
2588 | text-decoration: inherit; } | ||
2589 | [class^="mdi-"].pull-left, [class*="mdi-"].pull-left { | ||
2590 | margin-right: .3em; } | ||
2591 | [class^="mdi-"].pull-right, [class*="mdi-"].pull-right { | ||
2592 | margin-left: .3em; } | ||
2593 | [class^="mdi-"].mdi-lg:before, [class^="mdi-"].mdi-lg:after, [class*="mdi-"].mdi-lg:before, [class*="mdi-"].mdi-lg:after { | ||
2594 | font-size: 1.33333333em; | ||
2595 | line-height: 0.75em; | ||
2596 | vertical-align: -15%; } | ||
2597 | [class^="mdi-"].mdi-2x:before, [class^="mdi-"].mdi-2x:after, [class*="mdi-"].mdi-2x:before, [class*="mdi-"].mdi-2x:after { | ||
2598 | font-size: 2em; } | ||
2599 | [class^="mdi-"].mdi-3x:before, [class^="mdi-"].mdi-3x:after, [class*="mdi-"].mdi-3x:before, [class*="mdi-"].mdi-3x:after { | ||
2600 | font-size: 3em; } | ||
2601 | [class^="mdi-"].mdi-4x:before, [class^="mdi-"].mdi-4x:after, [class*="mdi-"].mdi-4x:before, [class*="mdi-"].mdi-4x:after { | ||
2602 | font-size: 4em; } | ||
2603 | [class^="mdi-"].mdi-5x:before, [class^="mdi-"].mdi-5x:after, [class*="mdi-"].mdi-5x:before, [class*="mdi-"].mdi-5x:after { | ||
2604 | font-size: 5em; } | ||
2605 | |||
2606 | [class^="mdi-device-signal-cellular-"]:after, [class^="mdi-device-battery-"]:after, [class^="mdi-device-battery-charging-"]:after, [class^="mdi-device-signal-cellular-connected-no-internet-"]:after, [class^="mdi-device-signal-wifi-"]:after, [class^="mdi-device-signal-wifi-statusbar-not-connected"]:after, .mdi-device-network-wifi:after { | ||
2607 | opacity: .3; | ||
2608 | position: absolute; | ||
2609 | left: 0; | ||
2610 | top: 0; | ||
2611 | z-index: 1; | ||
2612 | display: inline-block; | ||
2613 | speak: none; | ||
2614 | text-decoration: inherit; } | ||
2615 | |||
2616 | [class^="mdi-device-signal-cellular-"]:after { | ||
2617 | content: "\e758"; } | ||
2618 | |||
2619 | [class^="mdi-device-battery-"]:after { | ||
2620 | content: "\e735"; } | ||
2621 | |||
2622 | [class^="mdi-device-battery-charging-"]:after { | ||
2623 | content: "\e733"; } | ||
2624 | |||
2625 | [class^="mdi-device-signal-cellular-connected-no-internet-"]:after { | ||
2626 | content: "\e75d"; } | ||
2627 | |||
2628 | [class^="mdi-device-signal-wifi-"]:after, .mdi-device-network-wifi:after { | ||
2629 | content: "\e765"; } | ||
2630 | |||
2631 | [class^="mdi-device-signal-wifi-statusbasr-not-connected"]:after { | ||
2632 | content: "\e8f7"; } | ||
2633 | |||
2634 | .mdi-device-signal-cellular-off:after, .mdi-device-signal-cellular-null:after, .mdi-device-signal-cellular-no-sim:after, .mdi-device-signal-wifi-off:after, .mdi-device-signal-wifi-4-bar:after, .mdi-device-signal-cellular-4-bar:after, .mdi-device-battery-alert:after, .mdi-device-signal-cellular-connected-no-internet-4-bar:after, .mdi-device-battery-std:after, .mdi-device-battery-full .mdi-device-battery-unknown:after { | ||
2635 | content: ""; } | ||
2636 | |||
2637 | .mdi-fw { | ||
2638 | width: 1.28571429em; | ||
2639 | text-align: center; } | ||
2640 | |||
2641 | .mdi-ul { | ||
2642 | padding-left: 0; | ||
2643 | margin-left: 2.14285714em; | ||
2644 | list-style-type: none; } | ||
2645 | |||
2646 | .mdi-ul > li { | ||
2647 | position: relative; } | ||
2648 | |||
2649 | .mdi-li { | ||
2650 | position: absolute; | ||
2651 | left: -2.14285714em; | ||
2652 | width: 2.14285714em; | ||
2653 | top: 0.14285714em; | ||
2654 | text-align: center; } | ||
2655 | |||
2656 | .mdi-li.mdi-lg { | ||
2657 | left: -1.85714286em; } | ||
2658 | |||
2659 | .mdi-border { | ||
2660 | padding: .2em .25em .15em; | ||
2661 | border: solid 0.08em #eeeeee; | ||
2662 | border-radius: .1em; } | ||
2663 | |||
2664 | .mdi-spin { | ||
2665 | -webkit-animation: mdi-spin 2s infinite linear; | ||
2666 | animation: mdi-spin 2s infinite linear; | ||
2667 | -webkit-transform-origin: 50% 50%; | ||
2668 | -moz-transform-origin: 50% 50%; | ||
2669 | -o-transform-origin: 50% 50%; | ||
2670 | transform-origin: 50% 50%; } | ||
2671 | |||
2672 | .mdi-pulse { | ||
2673 | -webkit-animation: mdi-spin 1s steps(8) infinite; | ||
2674 | animation: mdi-spin 1s steps(8) infinite; | ||
2675 | -webkit-transform-origin: 50% 50%; | ||
2676 | -moz-transform-origin: 50% 50%; | ||
2677 | -o-transform-origin: 50% 50%; | ||
2678 | transform-origin: 50% 50%; } | ||
2679 | |||
2680 | @-webkit-keyframes mdi-spin { | ||
2681 | 0% { | ||
2682 | -webkit-transform: rotate(0deg); | ||
2683 | transform: rotate(0deg); } | ||
2684 | |||
2685 | 100% { | ||
2686 | -webkit-transform: rotate(359deg); | ||
2687 | transform: rotate(359deg); } } | ||
2688 | |||
2689 | @keyframes mdi-spin { | ||
2690 | 0% { | ||
2691 | -webkit-transform: rotate(0deg); | ||
2692 | transform: rotate(0deg); } | ||
2693 | |||
2694 | 100% { | ||
2695 | -webkit-transform: rotate(359deg); | ||
2696 | transform: rotate(359deg); } } | ||
2697 | |||
2698 | .mdi-rotate-90 { | ||
2699 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); | ||
2700 | -webkit-transform: rotate(90deg); | ||
2701 | -ms-transform: rotate(90deg); | ||
2702 | transform: rotate(90deg); } | ||
2703 | |||
2704 | .mdi-rotate-180 { | ||
2705 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); | ||
2706 | -webkit-transform: rotate(180deg); | ||
2707 | -ms-transform: rotate(180deg); | ||
2708 | transform: rotate(180deg); } | ||
2709 | |||
2710 | .mdi-rotate-270 { | ||
2711 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); | ||
2712 | -webkit-transform: rotate(270deg); | ||
2713 | -ms-transform: rotate(270deg); | ||
2714 | transform: rotate(270deg); } | ||
2715 | |||
2716 | .mdi-flip-horizontal { | ||
2717 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); | ||
2718 | -webkit-transform: scale(-1, 1); | ||
2719 | -ms-transform: scale(-1, 1); | ||
2720 | transform: scale(-1, 1); } | ||
2721 | |||
2722 | .mdi-flip-vertical { | ||
2723 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); | ||
2724 | -webkit-transform: scale(1, -1); | ||
2725 | -ms-transform: scale(1, -1); | ||
2726 | transform: scale(1, -1); } | ||
2727 | |||
2728 | :root .mdi-rotate-90, :root .mdi-rotate-180, :root .mdi-rotate-270, :root .mdi-flip-horizontal, :root .mdi-flip-vertical { | ||
2729 | filter: none; } | ||
2730 | |||
2731 | .mdi-stack { | ||
2732 | position: relative; | ||
2733 | display: inline-block; | ||
2734 | width: 2em; | ||
2735 | height: 2em; | ||
2736 | line-height: 2em; | ||
2737 | vertical-align: middle; } | ||
2738 | |||
2739 | .mdi-stack-1x, .mdi-stack-2x { | ||
2740 | position: absolute; | ||
2741 | left: 0; | ||
2742 | width: 100%; | ||
2743 | text-align: center; } | ||
2744 | |||
2745 | .mdi-stack-1x { | ||
2746 | line-height: inherit; } | ||
2747 | |||
2748 | .mdi-stack-2x { | ||
2749 | font-size: 2em; } | ||
2750 | |||
2751 | .mdi-inverse { | ||
2752 | color: #ffffff; } | ||
2753 | |||
2754 | /* Start Icons */ | ||
2755 | .mdi-action-3d-rotation:before { | ||
2756 | content: "\e600"; } | ||
2757 | |||
2758 | .mdi-action-accessibility:before { | ||
2759 | content: "\e601"; } | ||
2760 | |||
2761 | .mdi-action-account-balance-wallet:before { | ||
2762 | content: "\e602"; } | ||
2763 | |||
2764 | .mdi-action-account-balance:before { | ||
2765 | content: "\e603"; } | ||
2766 | |||
2767 | .mdi-action-account-box:before { | ||
2768 | content: "\e604"; } | ||
2769 | |||
2770 | .mdi-action-account-child:before { | ||
2771 | content: "\e605"; } | ||
2772 | |||
2773 | .mdi-action-account-circle:before { | ||
2774 | content: "\e606"; } | ||
2775 | |||
2776 | .mdi-action-add-shopping-cart:before { | ||
2777 | content: "\e607"; } | ||
2778 | |||
2779 | .mdi-action-alarm-add:before { | ||
2780 | content: "\e608"; } | ||
2781 | |||
2782 | .mdi-action-alarm-off:before { | ||
2783 | content: "\e609"; } | ||
2784 | |||
2785 | .mdi-action-alarm-on:before { | ||
2786 | content: "\e60a"; } | ||
2787 | |||
2788 | .mdi-action-alarm:before { | ||
2789 | content: "\e60b"; } | ||
2790 | |||
2791 | .mdi-action-android:before { | ||
2792 | content: "\e60c"; } | ||
2793 | |||
2794 | .mdi-action-announcement:before { | ||
2795 | content: "\e60d"; } | ||
2796 | |||
2797 | .mdi-action-aspect-ratio:before { | ||
2798 | content: "\e60e"; } | ||
2799 | |||
2800 | .mdi-action-assessment:before { | ||
2801 | content: "\e60f"; } | ||
2802 | |||
2803 | .mdi-action-assignment-ind:before { | ||
2804 | content: "\e610"; } | ||
2805 | |||
2806 | .mdi-action-assignment-late:before { | ||
2807 | content: "\e611"; } | ||
2808 | |||
2809 | .mdi-action-assignment-return:before { | ||
2810 | content: "\e612"; } | ||
2811 | |||
2812 | .mdi-action-assignment-returned:before { | ||
2813 | content: "\e613"; } | ||
2814 | |||
2815 | .mdi-action-assignment-turned-in:before { | ||
2816 | content: "\e614"; } | ||
2817 | |||
2818 | .mdi-action-assignment:before { | ||
2819 | content: "\e615"; } | ||
2820 | |||
2821 | .mdi-action-autorenew:before { | ||
2822 | content: "\e616"; } | ||
2823 | |||
2824 | .mdi-action-backup:before { | ||
2825 | content: "\e617"; } | ||
2826 | |||
2827 | .mdi-action-book:before { | ||
2828 | content: "\e618"; } | ||
2829 | |||
2830 | .mdi-action-bookmark-outline:before { | ||
2831 | content: "\e619"; } | ||
2832 | |||
2833 | .mdi-action-bookmark:before { | ||
2834 | content: "\e61a"; } | ||
2835 | |||
2836 | .mdi-action-bug-report:before { | ||
2837 | content: "\e61b"; } | ||
2838 | |||
2839 | .mdi-action-cached:before { | ||
2840 | content: "\e61c"; } | ||
2841 | |||
2842 | .mdi-action-check-circle:before { | ||
2843 | content: "\e61d"; } | ||
2844 | |||
2845 | .mdi-action-class:before { | ||
2846 | content: "\e61e"; } | ||
2847 | |||
2848 | .mdi-action-credit-card:before { | ||
2849 | content: "\e61f"; } | ||
2850 | |||
2851 | .mdi-action-dashboard:before { | ||
2852 | content: "\e620"; } | ||
2853 | |||
2854 | .mdi-action-delete:before { | ||
2855 | content: "\e621"; } | ||
2856 | |||
2857 | .mdi-action-description:before { | ||
2858 | content: "\e622"; } | ||
2859 | |||
2860 | .mdi-action-dns:before { | ||
2861 | content: "\e623"; } | ||
2862 | |||
2863 | .mdi-action-done-all:before { | ||
2864 | content: "\e624"; } | ||
2865 | |||
2866 | .mdi-action-done:before { | ||
2867 | content: "\e625"; } | ||
2868 | |||
2869 | .mdi-action-event:before { | ||
2870 | content: "\e626"; } | ||
2871 | |||
2872 | .mdi-action-exit-to-app:before { | ||
2873 | content: "\e627"; } | ||
2874 | |||
2875 | .mdi-action-explore:before { | ||
2876 | content: "\e628"; } | ||
2877 | |||
2878 | .mdi-action-extension:before { | ||
2879 | content: "\e629"; } | ||
2880 | |||
2881 | .mdi-action-face-unlock:before { | ||
2882 | content: "\e62a"; } | ||
2883 | |||
2884 | .mdi-action-favorite-outline:before { | ||
2885 | content: "\e62b"; } | ||
2886 | |||
2887 | .mdi-action-favorite:before { | ||
2888 | content: "\e62c"; } | ||
2889 | |||
2890 | .mdi-action-find-in-page:before { | ||
2891 | content: "\e62d"; } | ||
2892 | |||
2893 | .mdi-action-find-replace:before { | ||
2894 | content: "\e62e"; } | ||
2895 | |||
2896 | .mdi-action-flip-to-back:before { | ||
2897 | content: "\e62f"; } | ||
2898 | |||
2899 | .mdi-action-flip-to-front:before { | ||
2900 | content: "\e630"; } | ||
2901 | |||
2902 | .mdi-action-get-app:before { | ||
2903 | content: "\e631"; } | ||
2904 | |||
2905 | .mdi-action-grade:before { | ||
2906 | content: "\e632"; } | ||
2907 | |||
2908 | .mdi-action-group-work:before { | ||
2909 | content: "\e633"; } | ||
2910 | |||
2911 | .mdi-action-help:before { | ||
2912 | content: "\e634"; } | ||
2913 | |||
2914 | .mdi-action-highlight-remove:before { | ||
2915 | content: "\e635"; } | ||
2916 | |||
2917 | .mdi-action-history:before { | ||
2918 | content: "\e636"; } | ||
2919 | |||
2920 | .mdi-action-home:before { | ||
2921 | content: "\e637"; } | ||
2922 | |||
2923 | .mdi-action-https:before { | ||
2924 | content: "\e638"; } | ||
2925 | |||
2926 | .mdi-action-info-outline:before { | ||
2927 | content: "\e639"; } | ||
2928 | |||
2929 | .mdi-action-info:before { | ||
2930 | content: "\e63a"; } | ||
2931 | |||
2932 | .mdi-action-input:before { | ||
2933 | content: "\e63b"; } | ||
2934 | |||
2935 | .mdi-action-invert-colors:before { | ||
2936 | content: "\e63c"; } | ||
2937 | |||
2938 | .mdi-action-label-outline:before { | ||
2939 | content: "\e63d"; } | ||
2940 | |||
2941 | .mdi-action-label:before { | ||
2942 | content: "\e63e"; } | ||
2943 | |||
2944 | .mdi-action-language:before { | ||
2945 | content: "\e63f"; } | ||
2946 | |||
2947 | .mdi-action-launch:before { | ||
2948 | content: "\e640"; } | ||
2949 | |||
2950 | .mdi-action-list:before { | ||
2951 | content: "\e641"; } | ||
2952 | |||
2953 | .mdi-action-lock-open:before { | ||
2954 | content: "\e642"; } | ||
2955 | |||
2956 | .mdi-action-lock-outline:before { | ||
2957 | content: "\e643"; } | ||
2958 | |||
2959 | .mdi-action-lock:before { | ||
2960 | content: "\e644"; } | ||
2961 | |||
2962 | .mdi-action-loyalty:before { | ||
2963 | content: "\e645"; } | ||
2964 | |||
2965 | .mdi-action-markunread-mailbox:before { | ||
2966 | content: "\e646"; } | ||
2967 | |||
2968 | .mdi-action-note-add:before { | ||
2969 | content: "\e647"; } | ||
2970 | |||
2971 | .mdi-action-open-in-browser:before { | ||
2972 | content: "\e648"; } | ||
2973 | |||
2974 | .mdi-action-open-in-new:before { | ||
2975 | content: "\e649"; } | ||
2976 | |||
2977 | .mdi-action-open-with:before { | ||
2978 | content: "\e64a"; } | ||
2979 | |||
2980 | .mdi-action-pageview:before { | ||
2981 | content: "\e64b"; } | ||
2982 | |||
2983 | .mdi-action-payment:before { | ||
2984 | content: "\e64c"; } | ||
2985 | |||
2986 | .mdi-action-perm-camera-mic:before { | ||
2987 | content: "\e64d"; } | ||
2988 | |||
2989 | .mdi-action-perm-contact-cal:before { | ||
2990 | content: "\e64e"; } | ||
2991 | |||
2992 | .mdi-action-perm-data-setting:before { | ||
2993 | content: "\e64f"; } | ||
2994 | |||
2995 | .mdi-action-perm-device-info:before { | ||
2996 | content: "\e650"; } | ||
2997 | |||
2998 | .mdi-action-perm-identity:before { | ||
2999 | content: "\e651"; } | ||
3000 | |||
3001 | .mdi-action-perm-media:before { | ||
3002 | content: "\e652"; } | ||
3003 | |||
3004 | .mdi-action-perm-phone-msg:before { | ||
3005 | content: "\e653"; } | ||
3006 | |||
3007 | .mdi-action-perm-scan-wifi:before { | ||
3008 | content: "\e654"; } | ||
3009 | |||
3010 | .mdi-action-picture-in-picture:before { | ||
3011 | content: "\e655"; } | ||
3012 | |||
3013 | .mdi-action-polymer:before { | ||
3014 | content: "\e656"; } | ||
3015 | |||
3016 | .mdi-action-print:before { | ||
3017 | content: "\e657"; } | ||
3018 | |||
3019 | .mdi-action-query-builder:before { | ||
3020 | content: "\e658"; } | ||
3021 | |||
3022 | .mdi-action-question-answer:before { | ||
3023 | content: "\e659"; } | ||
3024 | |||
3025 | .mdi-action-receipt:before { | ||
3026 | content: "\e65a"; } | ||
3027 | |||
3028 | .mdi-action-redeem:before { | ||
3029 | content: "\e65b"; } | ||
3030 | |||
3031 | .mdi-action-reorder:before { | ||
3032 | content: "\e65c"; } | ||
3033 | |||
3034 | .mdi-action-report-problem:before { | ||
3035 | content: "\e65d"; } | ||
3036 | |||
3037 | .mdi-action-restore:before { | ||
3038 | content: "\e65e"; } | ||
3039 | |||
3040 | .mdi-action-room:before { | ||
3041 | content: "\e65f"; } | ||
3042 | |||
3043 | .mdi-action-schedule:before { | ||
3044 | content: "\e660"; } | ||
3045 | |||
3046 | .mdi-action-search:before { | ||
3047 | content: "\e661"; } | ||
3048 | |||
3049 | .mdi-action-settings-applications:before { | ||
3050 | content: "\e662"; } | ||
3051 | |||
3052 | .mdi-action-settings-backup-restore:before { | ||
3053 | content: "\e663"; } | ||
3054 | |||
3055 | .mdi-action-settings-bluetooth:before { | ||
3056 | content: "\e664"; } | ||
3057 | |||
3058 | .mdi-action-settings-cell:before { | ||
3059 | content: "\e665"; } | ||
3060 | |||
3061 | .mdi-action-settings-display:before { | ||
3062 | content: "\e666"; } | ||
3063 | |||
3064 | .mdi-action-settings-ethernet:before { | ||
3065 | content: "\e667"; } | ||
3066 | |||
3067 | .mdi-action-settings-input-antenna:before { | ||
3068 | content: "\e668"; } | ||
3069 | |||
3070 | .mdi-action-settings-input-component:before { | ||
3071 | content: "\e669"; } | ||
3072 | |||
3073 | .mdi-action-settings-input-composite:before { | ||
3074 | content: "\e66a"; } | ||
3075 | |||
3076 | .mdi-action-settings-input-hdmi:before { | ||
3077 | content: "\e66b"; } | ||
3078 | |||
3079 | .mdi-action-settings-input-svideo:before { | ||
3080 | content: "\e66c"; } | ||
3081 | |||
3082 | .mdi-action-settings-overscan:before { | ||
3083 | content: "\e66d"; } | ||
3084 | |||
3085 | .mdi-action-settings-phone:before { | ||
3086 | content: "\e66e"; } | ||
3087 | |||
3088 | .mdi-action-settings-power:before { | ||
3089 | content: "\e66f"; } | ||
3090 | |||
3091 | .mdi-action-settings-remote:before { | ||
3092 | content: "\e670"; } | ||
3093 | |||
3094 | .mdi-action-settings-voice:before { | ||
3095 | content: "\e671"; } | ||
3096 | |||
3097 | .mdi-action-settings:before { | ||
3098 | content: "\e672"; } | ||
3099 | |||
3100 | .mdi-action-shop-two:before { | ||
3101 | content: "\e673"; } | ||
3102 | |||
3103 | .mdi-action-shop:before { | ||
3104 | content: "\e674"; } | ||
3105 | |||
3106 | .mdi-action-shopping-basket:before { | ||
3107 | content: "\e675"; } | ||
3108 | |||
3109 | .mdi-action-shopping-cart:before { | ||
3110 | content: "\e676"; } | ||
3111 | |||
3112 | .mdi-action-speaker-notes:before { | ||
3113 | content: "\e677"; } | ||
3114 | |||
3115 | .mdi-action-spellcheck:before { | ||
3116 | content: "\e678"; } | ||
3117 | |||
3118 | .mdi-action-star-rate:before { | ||
3119 | content: "\e679"; } | ||
3120 | |||
3121 | .mdi-action-stars:before { | ||
3122 | content: "\e67a"; } | ||
3123 | |||
3124 | .mdi-action-store:before { | ||
3125 | content: "\e67b"; } | ||
3126 | |||
3127 | .mdi-action-subject:before { | ||
3128 | content: "\e67c"; } | ||
3129 | |||
3130 | .mdi-action-supervisor-account:before { | ||
3131 | content: "\e67d"; } | ||
3132 | |||
3133 | .mdi-action-swap-horiz:before { | ||
3134 | content: "\e67e"; } | ||
3135 | |||
3136 | .mdi-action-swap-vert-circle:before { | ||
3137 | content: "\e67f"; } | ||
3138 | |||
3139 | .mdi-action-swap-vert:before { | ||
3140 | content: "\e680"; } | ||
3141 | |||
3142 | .mdi-action-system-update-tv:before { | ||
3143 | content: "\e681"; } | ||
3144 | |||
3145 | .mdi-action-tab-unselected:before { | ||
3146 | content: "\e682"; } | ||
3147 | |||
3148 | .mdi-action-tab:before { | ||
3149 | content: "\e683"; } | ||
3150 | |||
3151 | .mdi-action-theaters:before { | ||
3152 | content: "\e684"; } | ||
3153 | |||
3154 | .mdi-action-thumb-down:before { | ||
3155 | content: "\e685"; } | ||
3156 | |||
3157 | .mdi-action-thumb-up:before { | ||
3158 | content: "\e686"; } | ||
3159 | |||
3160 | .mdi-action-thumbs-up-down:before { | ||
3161 | content: "\e687"; } | ||
3162 | |||
3163 | .mdi-action-toc:before { | ||
3164 | content: "\e688"; } | ||
3165 | |||
3166 | .mdi-action-today:before { | ||
3167 | content: "\e689"; } | ||
3168 | |||
3169 | .mdi-action-track-changes:before { | ||
3170 | content: "\e68a"; } | ||
3171 | |||
3172 | .mdi-action-translate:before { | ||
3173 | content: "\e68b"; } | ||
3174 | |||
3175 | .mdi-action-trending-down:before { | ||
3176 | content: "\e68c"; } | ||
3177 | |||
3178 | .mdi-action-trending-neutral:before { | ||
3179 | content: "\e68d"; } | ||
3180 | |||
3181 | .mdi-action-trending-up:before { | ||
3182 | content: "\e68e"; } | ||
3183 | |||
3184 | .mdi-action-turned-in-not:before { | ||
3185 | content: "\e68f"; } | ||
3186 | |||
3187 | .mdi-action-turned-in:before { | ||
3188 | content: "\e690"; } | ||
3189 | |||
3190 | .mdi-action-verified-user:before { | ||
3191 | content: "\e691"; } | ||
3192 | |||
3193 | .mdi-action-view-agenda:before { | ||
3194 | content: "\e692"; } | ||
3195 | |||
3196 | .mdi-action-view-array:before { | ||
3197 | content: "\e693"; } | ||
3198 | |||
3199 | .mdi-action-view-carousel:before { | ||
3200 | content: "\e694"; } | ||
3201 | |||
3202 | .mdi-action-view-column:before { | ||
3203 | content: "\e695"; } | ||
3204 | |||
3205 | .mdi-action-view-day:before { | ||
3206 | content: "\e696"; } | ||
3207 | |||
3208 | .mdi-action-view-headline:before { | ||
3209 | content: "\e697"; } | ||
3210 | |||
3211 | .mdi-action-view-list:before { | ||
3212 | content: "\e698"; } | ||
3213 | |||
3214 | .mdi-action-view-module:before { | ||
3215 | content: "\e699"; } | ||
3216 | |||
3217 | .mdi-action-view-quilt:before { | ||
3218 | content: "\e69a"; } | ||
3219 | |||
3220 | .mdi-action-view-stream:before { | ||
3221 | content: "\e69b"; } | ||
3222 | |||
3223 | .mdi-action-view-week:before { | ||
3224 | content: "\e69c"; } | ||
3225 | |||
3226 | .mdi-action-visibility-off:before { | ||
3227 | content: "\e69d"; } | ||
3228 | |||
3229 | .mdi-action-visibility:before { | ||
3230 | content: "\e69e"; } | ||
3231 | |||
3232 | .mdi-action-wallet-giftcard:before { | ||
3233 | content: "\e69f"; } | ||
3234 | |||
3235 | .mdi-action-wallet-membership:before { | ||
3236 | content: "\e6a0"; } | ||
3237 | |||
3238 | .mdi-action-wallet-travel:before { | ||
3239 | content: "\e6a1"; } | ||
3240 | |||
3241 | .mdi-action-work:before { | ||
3242 | content: "\e6a2"; } | ||
3243 | |||
3244 | .mdi-alert-error:before { | ||
3245 | content: "\e6a3"; } | ||
3246 | |||
3247 | .mdi-alert-warning:before { | ||
3248 | content: "\e6a4"; } | ||
3249 | |||
3250 | .mdi-av-album:before { | ||
3251 | content: "\e6a5"; } | ||
3252 | |||
3253 | .mdi-av-closed-caption:before { | ||
3254 | content: "\e6a6"; } | ||
3255 | |||
3256 | .mdi-av-equalizer:before { | ||
3257 | content: "\e6a7"; } | ||
3258 | |||
3259 | .mdi-av-explicit:before { | ||
3260 | content: "\e6a8"; } | ||
3261 | |||
3262 | .mdi-av-fast-forward:before { | ||
3263 | content: "\e6a9"; } | ||
3264 | |||
3265 | .mdi-av-fast-rewind:before { | ||
3266 | content: "\e6aa"; } | ||
3267 | |||
3268 | .mdi-av-games:before { | ||
3269 | content: "\e6ab"; } | ||
3270 | |||
3271 | .mdi-av-hearing:before { | ||
3272 | content: "\e6ac"; } | ||
3273 | |||
3274 | .mdi-av-high-quality:before { | ||
3275 | content: "\e6ad"; } | ||
3276 | |||
3277 | .mdi-av-loop:before { | ||
3278 | content: "\e6ae"; } | ||
3279 | |||
3280 | .mdi-av-mic-none:before { | ||
3281 | content: "\e6af"; } | ||
3282 | |||
3283 | .mdi-av-mic-off:before { | ||
3284 | content: "\e6b0"; } | ||
3285 | |||
3286 | .mdi-av-mic:before { | ||
3287 | content: "\e6b1"; } | ||
3288 | |||
3289 | .mdi-av-movie:before { | ||
3290 | content: "\e6b2"; } | ||
3291 | |||
3292 | .mdi-av-my-library-add:before { | ||
3293 | content: "\e6b3"; } | ||
3294 | |||
3295 | .mdi-av-my-library-books:before { | ||
3296 | content: "\e6b4"; } | ||
3297 | |||
3298 | .mdi-av-my-library-music:before { | ||
3299 | content: "\e6b5"; } | ||
3300 | |||
3301 | .mdi-av-new-releases:before { | ||
3302 | content: "\e6b6"; } | ||
3303 | |||
3304 | .mdi-av-not-interested:before { | ||
3305 | content: "\e6b7"; } | ||
3306 | |||
3307 | .mdi-av-pause-circle-fill:before { | ||
3308 | content: "\e6b8"; } | ||
3309 | |||
3310 | .mdi-av-pause-circle-outline:before { | ||
3311 | content: "\e6b9"; } | ||
3312 | |||
3313 | .mdi-av-pause:before { | ||
3314 | content: "\e6ba"; } | ||
3315 | |||
3316 | .mdi-av-play-arrow:before { | ||
3317 | content: "\e6bb"; } | ||
3318 | |||
3319 | .mdi-av-play-circle-fill:before { | ||
3320 | content: "\e6bc"; } | ||
3321 | |||
3322 | .mdi-av-play-circle-outline:before { | ||
3323 | content: "\e6bd"; } | ||
3324 | |||
3325 | .mdi-av-play-shopping-bag:before { | ||
3326 | content: "\e6be"; } | ||
3327 | |||
3328 | .mdi-av-playlist-add:before { | ||
3329 | content: "\e6bf"; } | ||
3330 | |||
3331 | .mdi-av-queue-music:before { | ||
3332 | content: "\e6c0"; } | ||
3333 | |||
3334 | .mdi-av-queue:before { | ||
3335 | content: "\e6c1"; } | ||
3336 | |||
3337 | .mdi-av-radio:before { | ||
3338 | content: "\e6c2"; } | ||
3339 | |||
3340 | .mdi-av-recent-actors:before { | ||
3341 | content: "\e6c3"; } | ||
3342 | |||
3343 | .mdi-av-repeat-one:before { | ||
3344 | content: "\e6c4"; } | ||
3345 | |||
3346 | .mdi-av-repeat:before { | ||
3347 | content: "\e6c5"; } | ||
3348 | |||
3349 | .mdi-av-replay:before { | ||
3350 | content: "\e6c6"; } | ||
3351 | |||
3352 | .mdi-av-shuffle:before { | ||
3353 | content: "\e6c7"; } | ||
3354 | |||
3355 | .mdi-av-skip-next:before { | ||
3356 | content: "\e6c8"; } | ||
3357 | |||
3358 | .mdi-av-skip-previous:before { | ||
3359 | content: "\e6c9"; } | ||
3360 | |||
3361 | .mdi-av-snooze:before { | ||
3362 | content: "\e6ca"; } | ||
3363 | |||
3364 | .mdi-av-stop:before { | ||
3365 | content: "\e6cb"; } | ||
3366 | |||
3367 | .mdi-av-subtitles:before { | ||
3368 | content: "\e6cc"; } | ||
3369 | |||
3370 | .mdi-av-surround-sound:before { | ||
3371 | content: "\e6cd"; } | ||
3372 | |||
3373 | .mdi-av-timer:before { | ||
3374 | content: "\e6ce"; } | ||
3375 | |||
3376 | .mdi-av-video-collection:before { | ||
3377 | content: "\e6cf"; } | ||
3378 | |||
3379 | .mdi-av-videocam-off:before { | ||
3380 | content: "\e6d0"; } | ||
3381 | |||
3382 | .mdi-av-videocam:before { | ||
3383 | content: "\e6d1"; } | ||
3384 | |||
3385 | .mdi-av-volume-down:before { | ||
3386 | content: "\e6d2"; } | ||
3387 | |||
3388 | .mdi-av-volume-mute:before { | ||
3389 | content: "\e6d3"; } | ||
3390 | |||
3391 | .mdi-av-volume-off:before { | ||
3392 | content: "\e6d4"; } | ||
3393 | |||
3394 | .mdi-av-volume-up:before { | ||
3395 | content: "\e6d5"; } | ||
3396 | |||
3397 | .mdi-av-web:before { | ||
3398 | content: "\e6d6"; } | ||
3399 | |||
3400 | .mdi-communication-business:before { | ||
3401 | content: "\e6d7"; } | ||
3402 | |||
3403 | .mdi-communication-call-end:before { | ||
3404 | content: "\e6d8"; } | ||
3405 | |||
3406 | .mdi-communication-call-made:before { | ||
3407 | content: "\e6d9"; } | ||
3408 | |||
3409 | .mdi-communication-call-merge:before { | ||
3410 | content: "\e6da"; } | ||
3411 | |||
3412 | .mdi-communication-call-missed:before { | ||
3413 | content: "\e6db"; } | ||
3414 | |||
3415 | .mdi-communication-call-received:before { | ||
3416 | content: "\e6dc"; } | ||
3417 | |||
3418 | .mdi-communication-call-split:before { | ||
3419 | content: "\e6dd"; } | ||
3420 | |||
3421 | .mdi-communication-call:before { | ||
3422 | content: "\e6de"; } | ||
3423 | |||
3424 | .mdi-communication-chat:before { | ||
3425 | content: "\e6df"; } | ||
3426 | |||
3427 | .mdi-communication-clear-all:before { | ||
3428 | content: "\e6e0"; } | ||
3429 | |||
3430 | .mdi-communication-comment:before { | ||
3431 | content: "\e6e1"; } | ||
3432 | |||
3433 | .mdi-communication-contacts:before { | ||
3434 | content: "\e6e2"; } | ||
3435 | |||
3436 | .mdi-communication-dialer-sip:before { | ||
3437 | content: "\e6e3"; } | ||
3438 | |||
3439 | .mdi-communication-dialpad:before { | ||
3440 | content: "\e6e4"; } | ||
3441 | |||
3442 | .mdi-communication-dnd-on:before { | ||
3443 | content: "\e6e5"; } | ||
3444 | |||
3445 | .mdi-communication-email:before { | ||
3446 | content: "\e6e6"; } | ||
3447 | |||
3448 | .mdi-communication-forum:before { | ||
3449 | content: "\e6e7"; } | ||
3450 | |||
3451 | .mdi-communication-import-export:before { | ||
3452 | content: "\e6e8"; } | ||
3453 | |||
3454 | .mdi-communication-invert-colors-off:before { | ||
3455 | content: "\e6e9"; } | ||
3456 | |||
3457 | .mdi-communication-invert-colors-on:before { | ||
3458 | content: "\e6ea"; } | ||
3459 | |||
3460 | .mdi-communication-live-help:before { | ||
3461 | content: "\e6eb"; } | ||
3462 | |||
3463 | .mdi-communication-location-off:before { | ||
3464 | content: "\e6ec"; } | ||
3465 | |||
3466 | .mdi-communication-location-on:before { | ||
3467 | content: "\e6ed"; } | ||
3468 | |||
3469 | .mdi-communication-message:before { | ||
3470 | content: "\e6ee"; } | ||
3471 | |||
3472 | .mdi-communication-messenger:before { | ||
3473 | content: "\e6ef"; } | ||
3474 | |||
3475 | .mdi-communication-no-sim:before { | ||
3476 | content: "\e6f0"; } | ||
3477 | |||
3478 | .mdi-communication-phone:before { | ||
3479 | content: "\e6f1"; } | ||
3480 | |||
3481 | .mdi-communication-portable-wifi-off:before { | ||
3482 | content: "\e6f2"; } | ||
3483 | |||
3484 | .mdi-communication-quick-contacts-dialer:before { | ||
3485 | content: "\e6f3"; } | ||
3486 | |||
3487 | .mdi-communication-quick-contacts-mail:before { | ||
3488 | content: "\e6f4"; } | ||
3489 | |||
3490 | .mdi-communication-ring-volume:before { | ||
3491 | content: "\e6f5"; } | ||
3492 | |||
3493 | .mdi-communication-stay-current-landscape:before { | ||
3494 | content: "\e6f6"; } | ||
3495 | |||
3496 | .mdi-communication-stay-current-portrait:before { | ||
3497 | content: "\e6f7"; } | ||
3498 | |||
3499 | .mdi-communication-stay-primary-landscape:before { | ||
3500 | content: "\e6f8"; } | ||
3501 | |||
3502 | .mdi-communication-stay-primary-portrait:before { | ||
3503 | content: "\e6f9"; } | ||
3504 | |||
3505 | .mdi-communication-swap-calls:before { | ||
3506 | content: "\e6fa"; } | ||
3507 | |||
3508 | .mdi-communication-textsms:before { | ||
3509 | content: "\e6fb"; } | ||
3510 | |||
3511 | .mdi-communication-voicemail:before { | ||
3512 | content: "\e6fc"; } | ||
3513 | |||
3514 | .mdi-communication-vpn-key:before { | ||
3515 | content: "\e6fd"; } | ||
3516 | |||
3517 | .mdi-content-add-box:before { | ||
3518 | content: "\e6fe"; } | ||
3519 | |||
3520 | .mdi-content-add-circle-outline:before { | ||
3521 | content: "\e6ff"; } | ||
3522 | |||
3523 | .mdi-content-add-circle:before { | ||
3524 | content: "\e700"; } | ||
3525 | |||
3526 | .mdi-content-add:before { | ||
3527 | content: "\e701"; } | ||
3528 | |||
3529 | .mdi-content-archive:before { | ||
3530 | content: "\e702"; } | ||
3531 | |||
3532 | .mdi-content-backspace:before { | ||
3533 | content: "\e703"; } | ||
3534 | |||
3535 | .mdi-content-block:before { | ||
3536 | content: "\e704"; } | ||
3537 | |||
3538 | .mdi-content-clear:before { | ||
3539 | content: "\e705"; } | ||
3540 | |||
3541 | .mdi-content-content-copy:before { | ||
3542 | content: "\e706"; } | ||
3543 | |||
3544 | .mdi-content-content-cut:before { | ||
3545 | content: "\e707"; } | ||
3546 | |||
3547 | .mdi-content-content-paste:before { | ||
3548 | content: "\e708"; } | ||
3549 | |||
3550 | .mdi-content-create:before { | ||
3551 | content: "\e709"; } | ||
3552 | |||
3553 | .mdi-content-drafts:before { | ||
3554 | content: "\e70a"; } | ||
3555 | |||
3556 | .mdi-content-filter-list:before { | ||
3557 | content: "\e70b"; } | ||
3558 | |||
3559 | .mdi-content-flag:before { | ||
3560 | content: "\e70c"; } | ||
3561 | |||
3562 | .mdi-content-forward:before { | ||
3563 | content: "\e70d"; } | ||
3564 | |||
3565 | .mdi-content-gesture:before { | ||
3566 | content: "\e70e"; } | ||
3567 | |||
3568 | .mdi-content-inbox:before { | ||
3569 | content: "\e70f"; } | ||
3570 | |||
3571 | .mdi-content-link:before { | ||
3572 | content: "\e710"; } | ||
3573 | |||
3574 | .mdi-content-mail:before { | ||
3575 | content: "\e711"; } | ||
3576 | |||
3577 | .mdi-content-markunread:before { | ||
3578 | content: "\e712"; } | ||
3579 | |||
3580 | .mdi-content-redo:before { | ||
3581 | content: "\e713"; } | ||
3582 | |||
3583 | .mdi-content-remove-circle-outline:before { | ||
3584 | content: "\e714"; } | ||
3585 | |||
3586 | .mdi-content-remove-circle:before { | ||
3587 | content: "\e715"; } | ||
3588 | |||
3589 | .mdi-content-remove:before { | ||
3590 | content: "\e716"; } | ||
3591 | |||
3592 | .mdi-content-reply-all:before { | ||
3593 | content: "\e717"; } | ||
3594 | |||
3595 | .mdi-content-reply:before { | ||
3596 | content: "\e718"; } | ||
3597 | |||
3598 | .mdi-content-report:before { | ||
3599 | content: "\e719"; } | ||
3600 | |||
3601 | .mdi-content-save:before { | ||
3602 | content: "\e71a"; } | ||
3603 | |||
3604 | .mdi-content-select-all:before { | ||
3605 | content: "\e71b"; } | ||
3606 | |||
3607 | .mdi-content-send:before { | ||
3608 | content: "\e71c"; } | ||
3609 | |||
3610 | .mdi-content-sort:before { | ||
3611 | content: "\e71d"; } | ||
3612 | |||
3613 | .mdi-content-text-format:before { | ||
3614 | content: "\e71e"; } | ||
3615 | |||
3616 | .mdi-content-undo:before { | ||
3617 | content: "\e71f"; } | ||
3618 | |||
3619 | .mdi-editor-attach-file:before { | ||
3620 | content: "\e776"; } | ||
3621 | |||
3622 | .mdi-editor-attach-money:before { | ||
3623 | content: "\e777"; } | ||
3624 | |||
3625 | .mdi-editor-border-all:before { | ||
3626 | content: "\e778"; } | ||
3627 | |||
3628 | .mdi-editor-border-bottom:before { | ||
3629 | content: "\e779"; } | ||
3630 | |||
3631 | .mdi-editor-border-clear:before { | ||
3632 | content: "\e77a"; } | ||
3633 | |||
3634 | .mdi-editor-border-color:before { | ||
3635 | content: "\e77b"; } | ||
3636 | |||
3637 | .mdi-editor-border-horizontal:before { | ||
3638 | content: "\e77c"; } | ||
3639 | |||
3640 | .mdi-editor-border-inner:before { | ||
3641 | content: "\e77d"; } | ||
3642 | |||
3643 | .mdi-editor-border-left:before { | ||
3644 | content: "\e77e"; } | ||
3645 | |||
3646 | .mdi-editor-border-outer:before { | ||
3647 | content: "\e77f"; } | ||
3648 | |||
3649 | .mdi-editor-border-right:before { | ||
3650 | content: "\e780"; } | ||
3651 | |||
3652 | .mdi-editor-border-style:before { | ||
3653 | content: "\e781"; } | ||
3654 | |||
3655 | .mdi-editor-border-top:before { | ||
3656 | content: "\e782"; } | ||
3657 | |||
3658 | .mdi-editor-border-vertical:before { | ||
3659 | content: "\e783"; } | ||
3660 | |||
3661 | .mdi-editor-format-align-center:before { | ||
3662 | content: "\e784"; } | ||
3663 | |||
3664 | .mdi-editor-format-align-justify:before { | ||
3665 | content: "\e785"; } | ||
3666 | |||
3667 | .mdi-editor-format-align-left:before { | ||
3668 | content: "\e786"; } | ||
3669 | |||
3670 | .mdi-editor-format-align-right:before { | ||
3671 | content: "\e787"; } | ||
3672 | |||
3673 | .mdi-editor-format-bold:before { | ||
3674 | content: "\e788"; } | ||
3675 | |||
3676 | .mdi-editor-format-clear:before { | ||
3677 | content: "\e789"; } | ||
3678 | |||
3679 | .mdi-editor-format-color-fill:before { | ||
3680 | content: "\e78a"; } | ||
3681 | |||
3682 | .mdi-editor-format-color-reset:before { | ||
3683 | content: "\e78b"; } | ||
3684 | |||
3685 | .mdi-editor-format-color-text:before { | ||
3686 | content: "\e78c"; } | ||
3687 | |||
3688 | .mdi-editor-format-indent-decrease:before { | ||
3689 | content: "\e78d"; } | ||
3690 | |||
3691 | .mdi-editor-format-indent-increase:before { | ||
3692 | content: "\e78e"; } | ||
3693 | |||
3694 | .mdi-editor-format-italic:before { | ||
3695 | content: "\e78f"; } | ||
3696 | |||
3697 | .mdi-editor-format-line-spacing:before { | ||
3698 | content: "\e790"; } | ||
3699 | |||
3700 | .mdi-editor-format-list-bulleted:before { | ||
3701 | content: "\e791"; } | ||
3702 | |||
3703 | .mdi-editor-format-list-numbered:before { | ||
3704 | content: "\e792"; } | ||
3705 | |||
3706 | .mdi-editor-format-paint:before { | ||
3707 | content: "\e793"; } | ||
3708 | |||
3709 | .mdi-editor-format-quote:before { | ||
3710 | content: "\e794"; } | ||
3711 | |||
3712 | .mdi-editor-format-size:before { | ||
3713 | content: "\e795"; } | ||
3714 | |||
3715 | .mdi-editor-format-strikethrough:before { | ||
3716 | content: "\e796"; } | ||
3717 | |||
3718 | .mdi-editor-format-textdirection-l-to-r:before { | ||
3719 | content: "\e797"; } | ||
3720 | |||
3721 | .mdi-editor-format-textdirection-r-to-l:before { | ||
3722 | content: "\e798"; } | ||
3723 | |||
3724 | .mdi-editor-format-underline:before { | ||
3725 | content: "\e799"; } | ||
3726 | |||
3727 | .mdi-editor-functions:before { | ||
3728 | content: "\e79a"; } | ||
3729 | |||
3730 | .mdi-editor-insert-chart:before { | ||
3731 | content: "\e79b"; } | ||
3732 | |||
3733 | .mdi-editor-insert-comment:before { | ||
3734 | content: "\e79c"; } | ||
3735 | |||
3736 | .mdi-editor-insert-drive-file:before { | ||
3737 | content: "\e79d"; } | ||
3738 | |||
3739 | .mdi-editor-insert-emoticon:before { | ||
3740 | content: "\e79e"; } | ||
3741 | |||
3742 | .mdi-editor-insert-invitation:before { | ||
3743 | content: "\e79f"; } | ||
3744 | |||
3745 | .mdi-editor-insert-link:before { | ||
3746 | content: "\e7a0"; } | ||
3747 | |||
3748 | .mdi-editor-insert-photo:before { | ||
3749 | content: "\e7a1"; } | ||
3750 | |||
3751 | .mdi-editor-merge-type:before { | ||
3752 | content: "\e7a2"; } | ||
3753 | |||
3754 | .mdi-editor-mode-comment:before { | ||
3755 | content: "\e7a3"; } | ||
3756 | |||
3757 | .mdi-editor-mode-edit:before { | ||
3758 | content: "\e7a4"; } | ||
3759 | |||
3760 | .mdi-editor-publish:before { | ||
3761 | content: "\e7a5"; } | ||
3762 | |||
3763 | .mdi-editor-vertical-align-bottom:before { | ||
3764 | content: "\e7a6"; } | ||
3765 | |||
3766 | .mdi-editor-vertical-align-center:before { | ||
3767 | content: "\e7a7"; } | ||
3768 | |||
3769 | .mdi-editor-vertical-align-top:before { | ||
3770 | content: "\e7a8"; } | ||
3771 | |||
3772 | .mdi-editor-wrap-text:before { | ||
3773 | content: "\e7a9"; } | ||
3774 | |||
3775 | .mdi-file-attachment:before { | ||
3776 | content: "\e7aa"; } | ||
3777 | |||
3778 | .mdi-file-cloud-circle:before { | ||
3779 | content: "\e7ab"; } | ||
3780 | |||
3781 | .mdi-file-cloud-done:before { | ||
3782 | content: "\e7ac"; } | ||
3783 | |||
3784 | .mdi-file-cloud-download:before { | ||
3785 | content: "\e7ad"; } | ||
3786 | |||
3787 | .mdi-file-cloud-off:before { | ||
3788 | content: "\e7ae"; } | ||
3789 | |||
3790 | .mdi-file-cloud-queue:before { | ||
3791 | content: "\e7af"; } | ||
3792 | |||
3793 | .mdi-file-cloud-upload:before { | ||
3794 | content: "\e7b0"; } | ||
3795 | |||
3796 | .mdi-file-cloud:before { | ||
3797 | content: "\e7b1"; } | ||
3798 | |||
3799 | .mdi-file-file-download:before { | ||
3800 | content: "\e7b2"; } | ||
3801 | |||
3802 | .mdi-file-file-upload:before { | ||
3803 | content: "\e7b3"; } | ||
3804 | |||
3805 | .mdi-file-folder-open:before { | ||
3806 | content: "\e7b4"; } | ||
3807 | |||
3808 | .mdi-file-folder-shared:before { | ||
3809 | content: "\e7b5"; } | ||
3810 | |||
3811 | .mdi-file-folder:before { | ||
3812 | content: "\e7b6"; } | ||
3813 | |||
3814 | .mdi-device-access-alarm:before { | ||
3815 | content: "\e720"; } | ||
3816 | |||
3817 | .mdi-device-access-alarms:before { | ||
3818 | content: "\e721"; } | ||
3819 | |||
3820 | .mdi-device-access-time:before { | ||
3821 | content: "\e722"; } | ||
3822 | |||
3823 | .mdi-device-add-alarm:before { | ||
3824 | content: "\e723"; } | ||
3825 | |||
3826 | .mdi-device-airplanemode-off:before { | ||
3827 | content: "\e724"; } | ||
3828 | |||
3829 | .mdi-device-airplanemode-on:before { | ||
3830 | content: "\e725"; } | ||
3831 | |||
3832 | .mdi-device-battery-20:before { | ||
3833 | content: "\e726"; } | ||
3834 | |||
3835 | .mdi-device-battery-30:before { | ||
3836 | content: "\e727"; } | ||
3837 | |||
3838 | .mdi-device-battery-50:before { | ||
3839 | content: "\e728"; } | ||
3840 | |||
3841 | .mdi-device-battery-60:before { | ||
3842 | content: "\e729"; } | ||
3843 | |||
3844 | .mdi-device-battery-80:before { | ||
3845 | content: "\e72a"; } | ||
3846 | |||
3847 | .mdi-device-battery-90:before { | ||
3848 | content: "\e72b"; } | ||
3849 | |||
3850 | .mdi-device-battery-alert:before { | ||
3851 | content: "\e72c"; } | ||
3852 | |||
3853 | .mdi-device-battery-charging-20:before { | ||
3854 | content: "\e72d"; } | ||
3855 | |||
3856 | .mdi-device-battery-charging-30:before { | ||
3857 | content: "\e72e"; } | ||
3858 | |||
3859 | .mdi-device-battery-charging-50:before { | ||
3860 | content: "\e72f"; } | ||
3861 | |||
3862 | .mdi-device-battery-charging-60:before { | ||
3863 | content: "\e730"; } | ||
3864 | |||
3865 | .mdi-device-battery-charging-80:before { | ||
3866 | content: "\e731"; } | ||
3867 | |||
3868 | .mdi-device-battery-charging-90:before { | ||
3869 | content: "\e732"; } | ||
3870 | |||
3871 | .mdi-device-battery-charging-full:before { | ||
3872 | content: "\e733"; } | ||
3873 | |||
3874 | .mdi-device-battery-full:before { | ||
3875 | content: "\e734"; } | ||
3876 | |||
3877 | .mdi-device-battery-std:before { | ||
3878 | content: "\e735"; } | ||
3879 | |||
3880 | .mdi-device-battery-unknown:before { | ||
3881 | content: "\e736"; } | ||
3882 | |||
3883 | .mdi-device-bluetooth-connected:before { | ||
3884 | content: "\e737"; } | ||
3885 | |||
3886 | .mdi-device-bluetooth-disabled:before { | ||
3887 | content: "\e738"; } | ||
3888 | |||
3889 | .mdi-device-bluetooth-searching:before { | ||
3890 | content: "\e739"; } | ||
3891 | |||
3892 | .mdi-device-bluetooth:before { | ||
3893 | content: "\e73a"; } | ||
3894 | |||
3895 | .mdi-device-brightness-auto:before { | ||
3896 | content: "\e73b"; } | ||
3897 | |||
3898 | .mdi-device-brightness-high:before { | ||
3899 | content: "\e73c"; } | ||
3900 | |||
3901 | .mdi-device-brightness-low:before { | ||
3902 | content: "\e73d"; } | ||
3903 | |||
3904 | .mdi-device-brightness-medium:before { | ||
3905 | content: "\e73e"; } | ||
3906 | |||
3907 | .mdi-device-data-usage:before { | ||
3908 | content: "\e73f"; } | ||
3909 | |||
3910 | .mdi-device-developer-mode:before { | ||
3911 | content: "\e740"; } | ||
3912 | |||
3913 | .mdi-device-devices:before { | ||
3914 | content: "\e741"; } | ||
3915 | |||
3916 | .mdi-device-dvr:before { | ||
3917 | content: "\e742"; } | ||
3918 | |||
3919 | .mdi-device-gps-fixed:before { | ||
3920 | content: "\e743"; } | ||
3921 | |||
3922 | .mdi-device-gps-not-fixed:before { | ||
3923 | content: "\e744"; } | ||
3924 | |||
3925 | .mdi-device-gps-off:before { | ||
3926 | content: "\e745"; } | ||
3927 | |||
3928 | .mdi-device-location-disabled:before { | ||
3929 | content: "\e746"; } | ||
3930 | |||
3931 | .mdi-device-location-searching:before { | ||
3932 | content: "\e747"; } | ||
3933 | |||
3934 | .mdi-device-multitrack-audio:before { | ||
3935 | content: "\e748"; } | ||
3936 | |||
3937 | .mdi-device-network-cell:before { | ||
3938 | content: "\e749"; } | ||
3939 | |||
3940 | .mdi-device-network-wifi:before { | ||
3941 | content: "\e74a"; } | ||
3942 | |||
3943 | .mdi-device-nfc:before { | ||
3944 | content: "\e74b"; } | ||
3945 | |||
3946 | .mdi-device-now-wallpaper:before { | ||
3947 | content: "\e74c"; } | ||
3948 | |||
3949 | .mdi-device-now-widgets:before { | ||
3950 | content: "\e74d"; } | ||
3951 | |||
3952 | .mdi-device-screen-lock-landscape:before { | ||
3953 | content: "\e74e"; } | ||
3954 | |||
3955 | .mdi-device-screen-lock-portrait:before { | ||
3956 | content: "\e74f"; } | ||
3957 | |||
3958 | .mdi-device-screen-lock-rotation:before { | ||
3959 | content: "\e750"; } | ||
3960 | |||
3961 | .mdi-device-screen-rotation:before { | ||
3962 | content: "\e751"; } | ||
3963 | |||
3964 | .mdi-device-sd-storage:before { | ||
3965 | content: "\e752"; } | ||
3966 | |||
3967 | .mdi-device-settings-system-daydream:before { | ||
3968 | content: "\e753"; } | ||
3969 | |||
3970 | .mdi-device-signal-cellular-0-bar:before { | ||
3971 | content: "\e754"; } | ||
3972 | |||
3973 | .mdi-device-signal-cellular-1-bar:before { | ||
3974 | content: "\e755"; } | ||
3975 | |||
3976 | .mdi-device-signal-cellular-2-bar:before { | ||
3977 | content: "\e756"; } | ||
3978 | |||
3979 | .mdi-device-signal-cellular-3-bar:before { | ||
3980 | content: "\e757"; } | ||
3981 | |||
3982 | .mdi-device-signal-cellular-4-bar:before { | ||
3983 | content: "\e758"; } | ||
3984 | |||
3985 | .mdi-signal-wifi-statusbar-connected-no-internet-after:before { | ||
3986 | content: "\e8f6"; } | ||
3987 | |||
3988 | .mdi-device-signal-cellular-connected-no-internet-0-bar:before { | ||
3989 | content: "\e759"; } | ||
3990 | |||
3991 | .mdi-device-signal-cellular-connected-no-internet-1-bar:before { | ||
3992 | content: "\e75a"; } | ||
3993 | |||
3994 | .mdi-device-signal-cellular-connected-no-internet-2-bar:before { | ||
3995 | content: "\e75b"; } | ||
3996 | |||
3997 | .mdi-device-signal-cellular-connected-no-internet-3-bar:before { | ||
3998 | content: "\e75c"; } | ||
3999 | |||
4000 | .mdi-device-signal-cellular-connected-no-internet-4-bar:before { | ||
4001 | content: "\e75d"; } | ||
4002 | |||
4003 | .mdi-device-signal-cellular-no-sim:before { | ||
4004 | content: "\e75e"; } | ||
4005 | |||
4006 | .mdi-device-signal-cellular-null:before { | ||
4007 | content: "\e75f"; } | ||
4008 | |||
4009 | .mdi-device-signal-cellular-off:before { | ||
4010 | content: "\e760"; } | ||
4011 | |||
4012 | .mdi-device-signal-wifi-0-bar:before { | ||
4013 | content: "\e761"; } | ||
4014 | |||
4015 | .mdi-device-signal-wifi-1-bar:before { | ||
4016 | content: "\e762"; } | ||
4017 | |||
4018 | .mdi-device-signal-wifi-2-bar:before { | ||
4019 | content: "\e763"; } | ||
4020 | |||
4021 | .mdi-device-signal-wifi-3-bar:before { | ||
4022 | content: "\e764"; } | ||
4023 | |||
4024 | .mdi-device-signal-wifi-4-bar:before { | ||
4025 | content: "\e765"; } | ||
4026 | |||
4027 | .mdi-device-signal-wifi-off:before { | ||
4028 | content: "\e766"; } | ||
4029 | |||
4030 | .mdi-device-signal-wifi-statusbar-1-bar:before { | ||
4031 | content: "\e767"; } | ||
4032 | |||
4033 | .mdi-device-signal-wifi-statusbar-2-bar:before { | ||
4034 | content: "\e768"; } | ||
4035 | |||
4036 | .mdi-device-signal-wifi-statusbar-3-bar:before { | ||
4037 | content: "\e769"; } | ||
4038 | |||
4039 | .mdi-device-signal-wifi-statusbar-4-bar:before { | ||
4040 | content: "\e76a"; } | ||
4041 | |||
4042 | .mdi-device-signal-wifi-statusbar-connected-no-internet-:before { | ||
4043 | content: "\e76b"; } | ||
4044 | |||
4045 | .mdi-device-signal-wifi-statusbar-connected-no-internet:before { | ||
4046 | content: "\e76f"; } | ||
4047 | |||
4048 | .mdi-device-signal-wifi-statusbar-connected-no-internet-2:before { | ||
4049 | content: "\e76c"; } | ||
4050 | |||
4051 | .mdi-device-signal-wifi-statusbar-connected-no-internet-3:before { | ||
4052 | content: "\e76d"; } | ||
4053 | |||
4054 | .mdi-device-signal-wifi-statusbar-connected-no-internet-4:before { | ||
4055 | content: "\e76e"; } | ||
4056 | |||
4057 | .mdi-signal-wifi-statusbar-not-connected-after:before { | ||
4058 | content: "\e8f7"; } | ||
4059 | |||
4060 | .mdi-device-signal-wifi-statusbar-not-connected:before { | ||
4061 | content: "\e770"; } | ||
4062 | |||
4063 | .mdi-device-signal-wifi-statusbar-null:before { | ||
4064 | content: "\e771"; } | ||
4065 | |||
4066 | .mdi-device-storage:before { | ||
4067 | content: "\e772"; } | ||
4068 | |||
4069 | .mdi-device-usb:before { | ||
4070 | content: "\e773"; } | ||
4071 | |||
4072 | .mdi-device-wifi-lock:before { | ||
4073 | content: "\e774"; } | ||
4074 | |||
4075 | .mdi-device-wifi-tethering:before { | ||
4076 | content: "\e775"; } | ||
4077 | |||
4078 | .mdi-hardware-cast-connected:before { | ||
4079 | content: "\e7b7"; } | ||
4080 | |||
4081 | .mdi-hardware-cast:before { | ||
4082 | content: "\e7b8"; } | ||
4083 | |||
4084 | .mdi-hardware-computer:before { | ||
4085 | content: "\e7b9"; } | ||
4086 | |||
4087 | .mdi-hardware-desktop-mac:before { | ||
4088 | content: "\e7ba"; } | ||
4089 | |||
4090 | .mdi-hardware-desktop-windows:before { | ||
4091 | content: "\e7bb"; } | ||
4092 | |||
4093 | .mdi-hardware-dock:before { | ||
4094 | content: "\e7bc"; } | ||
4095 | |||
4096 | .mdi-hardware-gamepad:before { | ||
4097 | content: "\e7bd"; } | ||
4098 | |||
4099 | .mdi-hardware-headset-mic:before { | ||
4100 | content: "\e7be"; } | ||
4101 | |||
4102 | .mdi-hardware-headset:before { | ||
4103 | content: "\e7bf"; } | ||
4104 | |||
4105 | .mdi-hardware-keyboard-alt:before { | ||
4106 | content: "\e7c0"; } | ||
4107 | |||
4108 | .mdi-hardware-keyboard-arrow-down:before { | ||
4109 | content: "\e7c1"; } | ||
4110 | |||
4111 | .mdi-hardware-keyboard-arrow-left:before { | ||
4112 | content: "\e7c2"; } | ||
4113 | |||
4114 | .mdi-hardware-keyboard-arrow-right:before { | ||
4115 | content: "\e7c3"; } | ||
4116 | |||
4117 | .mdi-hardware-keyboard-arrow-up:before { | ||
4118 | content: "\e7c4"; } | ||
4119 | |||
4120 | .mdi-hardware-keyboard-backspace:before { | ||
4121 | content: "\e7c5"; } | ||
4122 | |||
4123 | .mdi-hardware-keyboard-capslock:before { | ||
4124 | content: "\e7c6"; } | ||
4125 | |||
4126 | .mdi-hardware-keyboard-control:before { | ||
4127 | content: "\e7c7"; } | ||
4128 | |||
4129 | .mdi-hardware-keyboard-hide:before { | ||
4130 | content: "\e7c8"; } | ||
4131 | |||
4132 | .mdi-hardware-keyboard-return:before { | ||
4133 | content: "\e7c9"; } | ||
4134 | |||
4135 | .mdi-hardware-keyboard-tab:before { | ||
4136 | content: "\e7ca"; } | ||
4137 | |||
4138 | .mdi-hardware-keyboard-voice:before { | ||
4139 | content: "\e7cb"; } | ||
4140 | |||
4141 | .mdi-hardware-keyboard:before { | ||
4142 | content: "\e7cc"; } | ||
4143 | |||
4144 | .mdi-hardware-laptop-chromebook:before { | ||
4145 | content: "\e7cd"; } | ||
4146 | |||
4147 | .mdi-hardware-laptop-mac:before { | ||
4148 | content: "\e7ce"; } | ||
4149 | |||
4150 | .mdi-hardware-laptop-windows:before { | ||
4151 | content: "\e7cf"; } | ||
4152 | |||
4153 | .mdi-hardware-laptop:before { | ||
4154 | content: "\e7d0"; } | ||
4155 | |||
4156 | .mdi-hardware-memory:before { | ||
4157 | content: "\e7d1"; } | ||
4158 | |||
4159 | .mdi-hardware-mouse:before { | ||
4160 | content: "\e7d2"; } | ||
4161 | |||
4162 | .mdi-hardware-phone-android:before { | ||
4163 | content: "\e7d3"; } | ||
4164 | |||
4165 | .mdi-hardware-phone-iphone:before { | ||
4166 | content: "\e7d4"; } | ||
4167 | |||
4168 | .mdi-hardware-phonelink-off:before { | ||
4169 | content: "\e7d5"; } | ||
4170 | |||
4171 | .mdi-hardware-phonelink:before { | ||
4172 | content: "\e7d6"; } | ||
4173 | |||
4174 | .mdi-hardware-security:before { | ||
4175 | content: "\e7d7"; } | ||
4176 | |||
4177 | .mdi-hardware-sim-card:before { | ||
4178 | content: "\e7d8"; } | ||
4179 | |||
4180 | .mdi-hardware-smartphone:before { | ||
4181 | content: "\e7d9"; } | ||
4182 | |||
4183 | .mdi-hardware-speaker:before { | ||
4184 | content: "\e7da"; } | ||
4185 | |||
4186 | .mdi-hardware-tablet-android:before { | ||
4187 | content: "\e7db"; } | ||
4188 | |||
4189 | .mdi-hardware-tablet-mac:before { | ||
4190 | content: "\e7dc"; } | ||
4191 | |||
4192 | .mdi-hardware-tablet:before { | ||
4193 | content: "\e7dd"; } | ||
4194 | |||
4195 | .mdi-hardware-tv:before { | ||
4196 | content: "\e7de"; } | ||
4197 | |||
4198 | .mdi-hardware-watch:before { | ||
4199 | content: "\e7df"; } | ||
4200 | |||
4201 | .mdi-image-add-to-photos:before { | ||
4202 | content: "\e7e0"; } | ||
4203 | |||
4204 | .mdi-image-adjust:before { | ||
4205 | content: "\e7e1"; } | ||
4206 | |||
4207 | .mdi-image-assistant-photo:before { | ||
4208 | content: "\e7e2"; } | ||
4209 | |||
4210 | .mdi-image-audiotrack:before { | ||
4211 | content: "\e7e3"; } | ||
4212 | |||
4213 | .mdi-image-blur-circular:before { | ||
4214 | content: "\e7e4"; } | ||
4215 | |||
4216 | .mdi-image-blur-linear:before { | ||
4217 | content: "\e7e5"; } | ||
4218 | |||
4219 | .mdi-image-blur-off:before { | ||
4220 | content: "\e7e6"; } | ||
4221 | |||
4222 | .mdi-image-blur-on:before { | ||
4223 | content: "\e7e7"; } | ||
4224 | |||
4225 | .mdi-image-brightness-1:before { | ||
4226 | content: "\e7e8"; } | ||
4227 | |||
4228 | .mdi-image-brightness-2:before { | ||
4229 | content: "\e7e9"; } | ||
4230 | |||
4231 | .mdi-image-brightness-3:before { | ||
4232 | content: "\e7ea"; } | ||
4233 | |||
4234 | .mdi-image-brightness-4:before { | ||
4235 | content: "\e7eb"; } | ||
4236 | |||
4237 | .mdi-image-brightness-5:before { | ||
4238 | content: "\e7ec"; } | ||
4239 | |||
4240 | .mdi-image-brightness-6:before { | ||
4241 | content: "\e7ed"; } | ||
4242 | |||
4243 | .mdi-image-brightness-7:before { | ||
4244 | content: "\e7ee"; } | ||
4245 | |||
4246 | .mdi-image-brush:before { | ||
4247 | content: "\e7ef"; } | ||
4248 | |||
4249 | .mdi-image-camera-alt:before { | ||
4250 | content: "\e7f0"; } | ||
4251 | |||
4252 | .mdi-image-camera-front:before { | ||
4253 | content: "\e7f1"; } | ||
4254 | |||
4255 | .mdi-image-camera-rear:before { | ||
4256 | content: "\e7f2"; } | ||
4257 | |||
4258 | .mdi-image-camera-roll:before { | ||
4259 | content: "\e7f3"; } | ||
4260 | |||
4261 | .mdi-image-camera:before { | ||
4262 | content: "\e7f4"; } | ||
4263 | |||
4264 | .mdi-image-center-focus-strong:before { | ||
4265 | content: "\e7f5"; } | ||
4266 | |||
4267 | .mdi-image-center-focus-weak:before { | ||
4268 | content: "\e7f6"; } | ||
4269 | |||
4270 | .mdi-image-collections:before { | ||
4271 | content: "\e7f7"; } | ||
4272 | |||
4273 | .mdi-image-color-lens:before { | ||
4274 | content: "\e7f8"; } | ||
4275 | |||
4276 | .mdi-image-colorize:before { | ||
4277 | content: "\e7f9"; } | ||
4278 | |||
4279 | .mdi-image-compare:before { | ||
4280 | content: "\e7fa"; } | ||
4281 | |||
4282 | .mdi-image-control-point-duplicate:before { | ||
4283 | content: "\e7fb"; } | ||
4284 | |||
4285 | .mdi-image-control-point:before { | ||
4286 | content: "\e7fc"; } | ||
4287 | |||
4288 | .mdi-image-crop-3-2:before { | ||
4289 | content: "\e7fd"; } | ||
4290 | |||
4291 | .mdi-image-crop-5-4:before { | ||
4292 | content: "\e7fe"; } | ||
4293 | |||
4294 | .mdi-image-crop-7-5:before { | ||
4295 | content: "\e7ff"; } | ||
4296 | |||
4297 | .mdi-image-crop-16-9:before { | ||
4298 | content: "\e800"; } | ||
4299 | |||
4300 | .mdi-image-crop-din:before { | ||
4301 | content: "\e801"; } | ||
4302 | |||
4303 | .mdi-image-crop-free:before { | ||
4304 | content: "\e802"; } | ||
4305 | |||
4306 | .mdi-image-crop-landscape:before { | ||
4307 | content: "\e803"; } | ||
4308 | |||
4309 | .mdi-image-crop-original:before { | ||
4310 | content: "\e804"; } | ||
4311 | |||
4312 | .mdi-image-crop-portrait:before { | ||
4313 | content: "\e805"; } | ||
4314 | |||
4315 | .mdi-image-crop-square:before { | ||
4316 | content: "\e806"; } | ||
4317 | |||
4318 | .mdi-image-crop:before { | ||
4319 | content: "\e807"; } | ||
4320 | |||
4321 | .mdi-image-dehaze:before { | ||
4322 | content: "\e808"; } | ||
4323 | |||
4324 | .mdi-image-details:before { | ||
4325 | content: "\e809"; } | ||
4326 | |||
4327 | .mdi-image-edit:before { | ||
4328 | content: "\e80a"; } | ||
4329 | |||
4330 | .mdi-image-exposure-minus-1:before { | ||
4331 | content: "\e80b"; } | ||
4332 | |||
4333 | .mdi-image-exposure-minus-2:before { | ||
4334 | content: "\e80c"; } | ||
4335 | |||
4336 | .mdi-image-exposure-plus-1:before { | ||
4337 | content: "\e80d"; } | ||
4338 | |||
4339 | .mdi-image-exposure-plus-2:before { | ||
4340 | content: "\e80e"; } | ||
4341 | |||
4342 | .mdi-image-exposure-zero:before { | ||
4343 | content: "\e80f"; } | ||
4344 | |||
4345 | .mdi-image-exposure:before { | ||
4346 | content: "\e810"; } | ||
4347 | |||
4348 | .mdi-image-filter-1:before { | ||
4349 | content: "\e811"; } | ||
4350 | |||
4351 | .mdi-image-filter-2:before { | ||
4352 | content: "\e812"; } | ||
4353 | |||
4354 | .mdi-image-filter-3:before { | ||
4355 | content: "\e813"; } | ||
4356 | |||
4357 | .mdi-image-filter-4:before { | ||
4358 | content: "\e814"; } | ||
4359 | |||
4360 | .mdi-image-filter-5:before { | ||
4361 | content: "\e815"; } | ||
4362 | |||
4363 | .mdi-image-filter-6:before { | ||
4364 | content: "\e816"; } | ||
4365 | |||
4366 | .mdi-image-filter-7:before { | ||
4367 | content: "\e817"; } | ||
4368 | |||
4369 | .mdi-image-filter-8:before { | ||
4370 | content: "\e818"; } | ||
4371 | |||
4372 | .mdi-image-filter-9-plus:before { | ||
4373 | content: "\e819"; } | ||
4374 | |||
4375 | .mdi-image-filter-9:before { | ||
4376 | content: "\e81a"; } | ||
4377 | |||
4378 | .mdi-image-filter-b-and-w:before { | ||
4379 | content: "\e81b"; } | ||
4380 | |||
4381 | .mdi-image-filter-center-focus:before { | ||
4382 | content: "\e81c"; } | ||
4383 | |||
4384 | .mdi-image-filter-drama:before { | ||
4385 | content: "\e81d"; } | ||
4386 | |||
4387 | .mdi-image-filter-frames:before { | ||
4388 | content: "\e81e"; } | ||
4389 | |||
4390 | .mdi-image-filter-hdr:before { | ||
4391 | content: "\e81f"; } | ||
4392 | |||
4393 | .mdi-image-filter-none:before { | ||
4394 | content: "\e820"; } | ||
4395 | |||
4396 | .mdi-image-filter-tilt-shift:before { | ||
4397 | content: "\e821"; } | ||
4398 | |||
4399 | .mdi-image-filter-vintage:before { | ||
4400 | content: "\e822"; } | ||
4401 | |||
4402 | .mdi-image-filter:before { | ||
4403 | content: "\e823"; } | ||
4404 | |||
4405 | .mdi-image-flare:before { | ||
4406 | content: "\e824"; } | ||
4407 | |||
4408 | .mdi-image-flash-auto:before { | ||
4409 | content: "\e825"; } | ||
4410 | |||
4411 | .mdi-image-flash-off:before { | ||
4412 | content: "\e826"; } | ||
4413 | |||
4414 | .mdi-image-flash-on:before { | ||
4415 | content: "\e827"; } | ||
4416 | |||
4417 | .mdi-image-flip:before { | ||
4418 | content: "\e828"; } | ||
4419 | |||
4420 | .mdi-image-gradient:before { | ||
4421 | content: "\e829"; } | ||
4422 | |||
4423 | .mdi-image-grain:before { | ||
4424 | content: "\e82a"; } | ||
4425 | |||
4426 | .mdi-image-grid-off:before { | ||
4427 | content: "\e82b"; } | ||
4428 | |||
4429 | .mdi-image-grid-on:before { | ||
4430 | content: "\e82c"; } | ||
4431 | |||
4432 | .mdi-image-hdr-off:before { | ||
4433 | content: "\e82d"; } | ||
4434 | |||
4435 | .mdi-image-hdr-on:before { | ||
4436 | content: "\e82e"; } | ||
4437 | |||
4438 | .mdi-image-hdr-strong:before { | ||
4439 | content: "\e82f"; } | ||
4440 | |||
4441 | .mdi-image-hdr-weak:before { | ||
4442 | content: "\e830"; } | ||
4443 | |||
4444 | .mdi-image-healing:before { | ||
4445 | content: "\e831"; } | ||
4446 | |||
4447 | .mdi-image-image-aspect-ratio:before { | ||
4448 | content: "\e832"; } | ||
4449 | |||
4450 | .mdi-image-image:before { | ||
4451 | content: "\e833"; } | ||
4452 | |||
4453 | .mdi-image-iso:before { | ||
4454 | content: "\e834"; } | ||
4455 | |||
4456 | .mdi-image-landscape:before { | ||
4457 | content: "\e835"; } | ||
4458 | |||
4459 | .mdi-image-leak-add:before { | ||
4460 | content: "\e836"; } | ||
4461 | |||
4462 | .mdi-image-leak-remove:before { | ||
4463 | content: "\e837"; } | ||
4464 | |||
4465 | .mdi-image-lens:before { | ||
4466 | content: "\e838"; } | ||
4467 | |||
4468 | .mdi-image-looks-3:before { | ||
4469 | content: "\e839"; } | ||
4470 | |||
4471 | .mdi-image-looks-4:before { | ||
4472 | content: "\e83a"; } | ||
4473 | |||
4474 | .mdi-image-looks-5:before { | ||
4475 | content: "\e83b"; } | ||
4476 | |||
4477 | .mdi-image-looks-6:before { | ||
4478 | content: "\e83c"; } | ||
4479 | |||
4480 | .mdi-image-looks-one:before { | ||
4481 | content: "\e83d"; } | ||
4482 | |||
4483 | .mdi-image-looks-two:before { | ||
4484 | content: "\e83e"; } | ||
4485 | |||
4486 | .mdi-image-looks:before { | ||
4487 | content: "\e83f"; } | ||
4488 | |||
4489 | .mdi-image-loupe:before { | ||
4490 | content: "\e840"; } | ||
4491 | |||
4492 | .mdi-image-movie-creation:before { | ||
4493 | content: "\e841"; } | ||
4494 | |||
4495 | .mdi-image-nature-people:before { | ||
4496 | content: "\e842"; } | ||
4497 | |||
4498 | .mdi-image-nature:before { | ||
4499 | content: "\e843"; } | ||
4500 | |||
4501 | .mdi-image-navigate-before:before { | ||
4502 | content: "\e844"; } | ||
4503 | |||
4504 | .mdi-image-navigate-next:before { | ||
4505 | content: "\e845"; } | ||
4506 | |||
4507 | .mdi-image-palette:before { | ||
4508 | content: "\e846"; } | ||
4509 | |||
4510 | .mdi-image-panorama-fisheye:before { | ||
4511 | content: "\e847"; } | ||
4512 | |||
4513 | .mdi-image-panorama-horizontal:before { | ||
4514 | content: "\e848"; } | ||
4515 | |||
4516 | .mdi-image-panorama-vertical:before { | ||
4517 | content: "\e849"; } | ||
4518 | |||
4519 | .mdi-image-panorama-wide-angle:before { | ||
4520 | content: "\e84a"; } | ||
4521 | |||
4522 | .mdi-image-panorama:before { | ||
4523 | content: "\e84b"; } | ||
4524 | |||
4525 | .mdi-image-photo-album:before { | ||
4526 | content: "\e84c"; } | ||
4527 | |||
4528 | .mdi-image-photo-camera:before { | ||
4529 | content: "\e84d"; } | ||
4530 | |||
4531 | .mdi-image-photo-library:before { | ||
4532 | content: "\e84e"; } | ||
4533 | |||
4534 | .mdi-image-photo:before { | ||
4535 | content: "\e84f"; } | ||
4536 | |||
4537 | .mdi-image-portrait:before { | ||
4538 | content: "\e850"; } | ||
4539 | |||
4540 | .mdi-image-remove-red-eye:before { | ||
4541 | content: "\e851"; } | ||
4542 | |||
4543 | .mdi-image-rotate-left:before { | ||
4544 | content: "\e852"; } | ||
4545 | |||
4546 | .mdi-image-rotate-right:before { | ||
4547 | content: "\e853"; } | ||
4548 | |||
4549 | .mdi-image-slideshow:before { | ||
4550 | content: "\e854"; } | ||
4551 | |||
4552 | .mdi-image-straighten:before { | ||
4553 | content: "\e855"; } | ||
4554 | |||
4555 | .mdi-image-style:before { | ||
4556 | content: "\e856"; } | ||
4557 | |||
4558 | .mdi-image-switch-camera:before { | ||
4559 | content: "\e857"; } | ||
4560 | |||
4561 | .mdi-image-switch-video:before { | ||
4562 | content: "\e858"; } | ||
4563 | |||
4564 | .mdi-image-tag-faces:before { | ||
4565 | content: "\e859"; } | ||
4566 | |||
4567 | .mdi-image-texture:before { | ||
4568 | content: "\e85a"; } | ||
4569 | |||
4570 | .mdi-image-timelapse:before { | ||
4571 | content: "\e85b"; } | ||
4572 | |||
4573 | .mdi-image-timer-3:before { | ||
4574 | content: "\e85c"; } | ||
4575 | |||
4576 | .mdi-image-timer-10:before { | ||
4577 | content: "\e85d"; } | ||
4578 | |||
4579 | .mdi-image-timer-auto:before { | ||
4580 | content: "\e85e"; } | ||
4581 | |||
4582 | .mdi-image-timer-off:before { | ||
4583 | content: "\e85f"; } | ||
4584 | |||
4585 | .mdi-image-timer:before { | ||
4586 | content: "\e860"; } | ||
4587 | |||
4588 | .mdi-image-tonality:before { | ||
4589 | content: "\e861"; } | ||
4590 | |||
4591 | .mdi-image-transform:before { | ||
4592 | content: "\e862"; } | ||
4593 | |||
4594 | .mdi-image-tune:before { | ||
4595 | content: "\e863"; } | ||
4596 | |||
4597 | .mdi-image-wb-auto:before { | ||
4598 | content: "\e864"; } | ||
4599 | |||
4600 | .mdi-image-wb-cloudy:before { | ||
4601 | content: "\e865"; } | ||
4602 | |||
4603 | .mdi-image-wb-incandescent:before { | ||
4604 | content: "\e866"; } | ||
4605 | |||
4606 | .mdi-image-wb-irradescent:before { | ||
4607 | content: "\e867"; } | ||
4608 | |||
4609 | .mdi-image-wb-sunny:before { | ||
4610 | content: "\e868"; } | ||
4611 | |||
4612 | .mdi-maps-beenhere:before { | ||
4613 | content: "\e869"; } | ||
4614 | |||
4615 | .mdi-maps-directions-bike:before { | ||
4616 | content: "\e86a"; } | ||
4617 | |||
4618 | .mdi-maps-directions-bus:before { | ||
4619 | content: "\e86b"; } | ||
4620 | |||
4621 | .mdi-maps-directions-car:before { | ||
4622 | content: "\e86c"; } | ||
4623 | |||
4624 | .mdi-maps-directions-ferry:before { | ||
4625 | content: "\e86d"; } | ||
4626 | |||
4627 | .mdi-maps-directions-subway:before { | ||
4628 | content: "\e86e"; } | ||
4629 | |||
4630 | .mdi-maps-directions-train:before { | ||
4631 | content: "\e86f"; } | ||
4632 | |||
4633 | .mdi-maps-directions-transit:before { | ||
4634 | content: "\e870"; } | ||
4635 | |||
4636 | .mdi-maps-directions-walk:before { | ||
4637 | content: "\e871"; } | ||
4638 | |||
4639 | .mdi-maps-directions:before { | ||
4640 | content: "\e872"; } | ||
4641 | |||
4642 | .mdi-maps-flight:before { | ||
4643 | content: "\e873"; } | ||
4644 | |||
4645 | .mdi-maps-hotel:before { | ||
4646 | content: "\e874"; } | ||
4647 | |||
4648 | .mdi-maps-layers-clear:before { | ||
4649 | content: "\e875"; } | ||
4650 | |||
4651 | .mdi-maps-layers:before { | ||
4652 | content: "\e876"; } | ||
4653 | |||
4654 | .mdi-maps-local-airport:before { | ||
4655 | content: "\e877"; } | ||
4656 | |||
4657 | .mdi-maps-local-atm:before { | ||
4658 | content: "\e878"; } | ||
4659 | |||
4660 | .mdi-maps-local-attraction:before { | ||
4661 | content: "\e879"; } | ||
4662 | |||
4663 | .mdi-maps-local-bar:before { | ||
4664 | content: "\e87a"; } | ||
4665 | |||
4666 | .mdi-maps-local-cafe:before { | ||
4667 | content: "\e87b"; } | ||
4668 | |||
4669 | .mdi-maps-local-car-wash:before { | ||
4670 | content: "\e87c"; } | ||
4671 | |||
4672 | .mdi-maps-local-convenience-store:before { | ||
4673 | content: "\e87d"; } | ||
4674 | |||
4675 | .mdi-maps-local-drink:before { | ||
4676 | content: "\e87e"; } | ||
4677 | |||
4678 | .mdi-maps-local-florist:before { | ||
4679 | content: "\e87f"; } | ||
4680 | |||
4681 | .mdi-maps-local-gas-station:before { | ||
4682 | content: "\e880"; } | ||
4683 | |||
4684 | .mdi-maps-local-grocery-store:before { | ||
4685 | content: "\e881"; } | ||
4686 | |||
4687 | .mdi-maps-local-hospital:before { | ||
4688 | content: "\e882"; } | ||
4689 | |||
4690 | .mdi-maps-local-hotel:before { | ||
4691 | content: "\e883"; } | ||
4692 | |||
4693 | .mdi-maps-local-laundry-service:before { | ||
4694 | content: "\e884"; } | ||
4695 | |||
4696 | .mdi-maps-local-library:before { | ||
4697 | content: "\e885"; } | ||
4698 | |||
4699 | .mdi-maps-local-mall:before { | ||
4700 | content: "\e886"; } | ||
4701 | |||
4702 | .mdi-maps-local-movies:before { | ||
4703 | content: "\e887"; } | ||
4704 | |||
4705 | .mdi-maps-local-offer:before { | ||
4706 | content: "\e888"; } | ||
4707 | |||
4708 | .mdi-maps-local-parking:before { | ||
4709 | content: "\e889"; } | ||
4710 | |||
4711 | .mdi-maps-local-pharmacy:before { | ||
4712 | content: "\e88a"; } | ||
4713 | |||
4714 | .mdi-maps-local-phone:before { | ||
4715 | content: "\e88b"; } | ||
4716 | |||
4717 | .mdi-maps-local-pizza:before { | ||
4718 | content: "\e88c"; } | ||
4719 | |||
4720 | .mdi-maps-local-play:before { | ||
4721 | content: "\e88d"; } | ||
4722 | |||
4723 | .mdi-maps-local-post-office:before { | ||
4724 | content: "\e88e"; } | ||
4725 | |||
4726 | .mdi-maps-local-print-shop:before { | ||
4727 | content: "\e88f"; } | ||
4728 | |||
4729 | .mdi-maps-local-restaurant:before { | ||
4730 | content: "\e890"; } | ||
4731 | |||
4732 | .mdi-maps-local-see:before { | ||
4733 | content: "\e891"; } | ||
4734 | |||
4735 | .mdi-maps-local-shipping:before { | ||
4736 | content: "\e892"; } | ||
4737 | |||
4738 | .mdi-maps-local-taxi:before { | ||
4739 | content: "\e893"; } | ||
4740 | |||
4741 | .mdi-maps-location-history:before { | ||
4742 | content: "\e894"; } | ||
4743 | |||
4744 | .mdi-maps-map:before { | ||
4745 | content: "\e895"; } | ||
4746 | |||
4747 | .mdi-maps-my-location:before { | ||
4748 | content: "\e896"; } | ||
4749 | |||
4750 | .mdi-maps-navigation:before { | ||
4751 | content: "\e897"; } | ||
4752 | |||
4753 | .mdi-maps-pin-drop:before { | ||
4754 | content: "\e898"; } | ||
4755 | |||
4756 | .mdi-maps-place:before { | ||
4757 | content: "\e899"; } | ||
4758 | |||
4759 | .mdi-maps-rate-review:before { | ||
4760 | content: "\e89a"; } | ||
4761 | |||
4762 | .mdi-maps-restaurant-menu:before { | ||
4763 | content: "\e89b"; } | ||
4764 | |||
4765 | .mdi-maps-satellite:before { | ||
4766 | content: "\e89c"; } | ||
4767 | |||
4768 | .mdi-maps-store-mall-directory:before { | ||
4769 | content: "\e89d"; } | ||
4770 | |||
4771 | .mdi-maps-terrain:before { | ||
4772 | content: "\e89e"; } | ||
4773 | |||
4774 | .mdi-maps-traffic:before { | ||
4775 | content: "\e89f"; } | ||
4776 | |||
4777 | .mdi-navigation-apps:before { | ||
4778 | content: "\e8a0"; } | ||
4779 | |||
4780 | .mdi-navigation-arrow-back:before { | ||
4781 | content: "\e8a1"; } | ||
4782 | |||
4783 | .mdi-navigation-arrow-drop-down-circle:before { | ||
4784 | content: "\e8a2"; } | ||
4785 | |||
4786 | .mdi-navigation-arrow-drop-down:before { | ||
4787 | content: "\e8a3"; } | ||
4788 | |||
4789 | .mdi-navigation-arrow-drop-up:before { | ||
4790 | content: "\e8a4"; } | ||
4791 | |||
4792 | .mdi-navigation-arrow-forward:before { | ||
4793 | content: "\e8a5"; } | ||
4794 | |||
4795 | .mdi-navigation-cancel:before { | ||
4796 | content: "\e8a6"; } | ||
4797 | |||
4798 | .mdi-navigation-check:before { | ||
4799 | content: "\e8a7"; } | ||
4800 | |||
4801 | .mdi-navigation-chevron-left:before { | ||
4802 | content: "\e8a8"; } | ||
4803 | |||
4804 | .mdi-navigation-chevron-right:before { | ||
4805 | content: "\e8a9"; } | ||
4806 | |||
4807 | .mdi-navigation-close:before { | ||
4808 | content: "\e8aa"; } | ||
4809 | |||
4810 | .mdi-navigation-expand-less:before { | ||
4811 | content: "\e8ab"; } | ||
4812 | |||
4813 | .mdi-navigation-expand-more:before { | ||
4814 | content: "\e8ac"; } | ||
4815 | |||
4816 | .mdi-navigation-fullscreen-exit:before { | ||
4817 | content: "\e8ad"; } | ||
4818 | |||
4819 | .mdi-navigation-fullscreen:before { | ||
4820 | content: "\e8ae"; } | ||
4821 | |||
4822 | .mdi-navigation-menu:before { | ||
4823 | content: "\e8af"; } | ||
4824 | |||
4825 | .mdi-navigation-more-horiz:before { | ||
4826 | content: "\e8b0"; } | ||
4827 | |||
4828 | .mdi-navigation-more-vert:before { | ||
4829 | content: "\e8b1"; } | ||
4830 | |||
4831 | .mdi-navigation-refresh:before { | ||
4832 | content: "\e8b2"; } | ||
4833 | |||
4834 | .mdi-navigation-unfold-less:before { | ||
4835 | content: "\e8b3"; } | ||
4836 | |||
4837 | .mdi-navigation-unfold-more:before { | ||
4838 | content: "\e8b4"; } | ||
4839 | |||
4840 | .mdi-notification-adb:before { | ||
4841 | content: "\e8b5"; } | ||
4842 | |||
4843 | .mdi-notification-bluetooth-audio:before { | ||
4844 | content: "\e8b6"; } | ||
4845 | |||
4846 | .mdi-notification-disc-full:before { | ||
4847 | content: "\e8b7"; } | ||
4848 | |||
4849 | .mdi-notification-dnd-forwardslash:before { | ||
4850 | content: "\e8b8"; } | ||
4851 | |||
4852 | .mdi-notification-do-not-disturb:before { | ||
4853 | content: "\e8b9"; } | ||
4854 | |||
4855 | .mdi-notification-drive-eta:before { | ||
4856 | content: "\e8ba"; } | ||
4857 | |||
4858 | .mdi-notification-event-available:before { | ||
4859 | content: "\e8bb"; } | ||
4860 | |||
4861 | .mdi-notification-event-busy:before { | ||
4862 | content: "\e8bc"; } | ||
4863 | |||
4864 | .mdi-notification-event-note:before { | ||
4865 | content: "\e8bd"; } | ||
4866 | |||
4867 | .mdi-notification-folder-special:before { | ||
4868 | content: "\e8be"; } | ||
4869 | |||
4870 | .mdi-notification-mms:before { | ||
4871 | content: "\e8bf"; } | ||
4872 | |||
4873 | .mdi-notification-more:before { | ||
4874 | content: "\e8c0"; } | ||
4875 | |||
4876 | .mdi-notification-network-locked:before { | ||
4877 | content: "\e8c1"; } | ||
4878 | |||
4879 | .mdi-notification-phone-bluetooth-speaker:before { | ||
4880 | content: "\e8c2"; } | ||
4881 | |||
4882 | .mdi-notification-phone-forwarded:before { | ||
4883 | content: "\e8c3"; } | ||
4884 | |||
4885 | .mdi-notification-phone-in-talk:before { | ||
4886 | content: "\e8c4"; } | ||
4887 | |||
4888 | .mdi-notification-phone-locked:before { | ||
4889 | content: "\e8c5"; } | ||
4890 | |||
4891 | .mdi-notification-phone-missed:before { | ||
4892 | content: "\e8c6"; } | ||
4893 | |||
4894 | .mdi-notification-phone-paused:before { | ||
4895 | content: "\e8c7"; } | ||
4896 | |||
4897 | .mdi-notification-play-download:before { | ||
4898 | content: "\e8c8"; } | ||
4899 | |||
4900 | .mdi-notification-play-install:before { | ||
4901 | content: "\e8c9"; } | ||
4902 | |||
4903 | .mdi-notification-sd-card:before { | ||
4904 | content: "\e8ca"; } | ||
4905 | |||
4906 | .mdi-notification-sim-card-alert:before { | ||
4907 | content: "\e8cb"; } | ||
4908 | |||
4909 | .mdi-notification-sms-failed:before { | ||
4910 | content: "\e8cc"; } | ||
4911 | |||
4912 | .mdi-notification-sms:before { | ||
4913 | content: "\e8cd"; } | ||
4914 | |||
4915 | .mdi-notification-sync-disabled:before { | ||
4916 | content: "\e8ce"; } | ||
4917 | |||
4918 | .mdi-notification-sync-problem:before { | ||
4919 | content: "\e8cf"; } | ||
4920 | |||
4921 | .mdi-notification-sync:before { | ||
4922 | content: "\e8d0"; } | ||
4923 | |||
4924 | .mdi-notification-system-update:before { | ||
4925 | content: "\e8d1"; } | ||
4926 | |||
4927 | .mdi-notification-tap-and-play:before { | ||
4928 | content: "\e8d2"; } | ||
4929 | |||
4930 | .mdi-notification-time-to-leave:before { | ||
4931 | content: "\e8d3"; } | ||
4932 | |||
4933 | .mdi-notification-vibration:before { | ||
4934 | content: "\e8d4"; } | ||
4935 | |||
4936 | .mdi-notification-voice-chat:before { | ||
4937 | content: "\e8d5"; } | ||
4938 | |||
4939 | .mdi-notification-vpn-lock:before { | ||
4940 | content: "\e8d6"; } | ||
4941 | |||
4942 | .mdi-social-cake:before { | ||
4943 | content: "\e8d7"; } | ||
4944 | |||
4945 | .mdi-social-domain:before { | ||
4946 | content: "\e8d8"; } | ||
4947 | |||
4948 | .mdi-social-group-add:before { | ||
4949 | content: "\e8d9"; } | ||
4950 | |||
4951 | .mdi-social-group:before { | ||
4952 | content: "\e8da"; } | ||
4953 | |||
4954 | .mdi-social-location-city:before { | ||
4955 | content: "\e8db"; } | ||
4956 | |||
4957 | .mdi-social-mood:before { | ||
4958 | content: "\e8dc"; } | ||
4959 | |||
4960 | .mdi-social-notifications-none:before { | ||
4961 | content: "\e8dd"; } | ||
4962 | |||
4963 | .mdi-social-notifications-off:before { | ||
4964 | content: "\e8de"; } | ||
4965 | |||
4966 | .mdi-social-notifications-on:before { | ||
4967 | content: "\e8df"; } | ||
4968 | |||
4969 | .mdi-social-notifications-paused:before { | ||
4970 | content: "\e8e0"; } | ||
4971 | |||
4972 | .mdi-social-notifications:before { | ||
4973 | content: "\e8e1"; } | ||
4974 | |||
4975 | .mdi-social-pages:before { | ||
4976 | content: "\e8e2"; } | ||
4977 | |||
4978 | .mdi-social-party-mode:before { | ||
4979 | content: "\e8e3"; } | ||
4980 | |||
4981 | .mdi-social-people-outline:before { | ||
4982 | content: "\e8e4"; } | ||
4983 | |||
4984 | .mdi-social-people:before { | ||
4985 | content: "\e8e5"; } | ||
4986 | |||
4987 | .mdi-social-person-add:before { | ||
4988 | content: "\e8e6"; } | ||
4989 | |||
4990 | .mdi-social-person-outline:before { | ||
4991 | content: "\e8e7"; } | ||
4992 | |||
4993 | .mdi-social-person:before { | ||
4994 | content: "\e8e8"; } | ||
4995 | |||
4996 | .mdi-social-plus-one:before { | ||
4997 | content: "\e8e9"; } | ||
4998 | |||
4999 | .mdi-social-poll:before { | ||
5000 | content: "\e8ea"; } | ||
5001 | |||
5002 | .mdi-social-public:before { | ||
5003 | content: "\e8eb"; } | ||
5004 | |||
5005 | .mdi-social-school:before { | ||
5006 | content: "\e8ec"; } | ||
5007 | |||
5008 | .mdi-social-share:before { | ||
5009 | content: "\e8ed"; } | ||
5010 | |||
5011 | .mdi-social-whatshot:before { | ||
5012 | content: "\e8ee"; } | ||
5013 | |||
5014 | .mdi-toggle-check-box-outline-blank:before { | ||
5015 | content: "\e8ef"; } | ||
5016 | |||
5017 | .mdi-toggle-check-box:before { | ||
5018 | content: "\e8f0"; } | ||
5019 | |||
5020 | .mdi-toggle-radio-button-off:before { | ||
5021 | content: "\e8f1"; } | ||
5022 | |||
5023 | .mdi-toggle-radio-button-on:before { | ||
5024 | content: "\e8f2"; } | ||
5025 | |||
5026 | .mdi-toggle-star-half:before { | ||
5027 | content: "\e8f3"; } | ||
5028 | |||
5029 | .mdi-toggle-star-outline:before { | ||
5030 | content: "\e8f4"; } | ||
5031 | |||
5032 | .mdi-toggle-star:before { | ||
5033 | content: "\e8f5"; } | ||
5034 | |||
5035 | .container { | ||
5036 | margin: 0 auto; | ||
5037 | max-width: 1280px; | ||
5038 | width: 90%; } | ||
5039 | |||
5040 | @media only screen and (min-width : 601px) { | ||
5041 | .container { | ||
5042 | width: 85%; } } | ||
5043 | |||
5044 | @media only screen and (min-width : 993px) { | ||
5045 | .container { | ||
5046 | width: 70%; } } | ||
5047 | |||
5048 | .container .row { | ||
5049 | margin-left: -0.75rem; | ||
5050 | margin-right: -0.75rem; } | ||
5051 | |||
5052 | .section { | ||
5053 | padding-top: 1rem; | ||
5054 | padding-bottom: 1rem; } | ||
5055 | .section.no-pad { | ||
5056 | padding: 0; } | ||
5057 | .section.no-pad-bot { | ||
5058 | padding-bottom: 0; } | ||
5059 | .section.no-pad-top { | ||
5060 | padding-top: 0; } | ||
5061 | |||
5062 | .row { | ||
5063 | margin-left: auto; | ||
5064 | margin-right: auto; | ||
5065 | margin-bottom: 20px; } | ||
5066 | .row:after { | ||
5067 | content: ""; | ||
5068 | display: table; | ||
5069 | clear: both; } | ||
5070 | .row .col { | ||
5071 | float: left; | ||
5072 | -webkit-box-sizing: border-box; | ||
5073 | -moz-box-sizing: border-box; | ||
5074 | box-sizing: border-box; | ||
5075 | padding: 0 0.75rem; } | ||
5076 | .row .col.s1 { | ||
5077 | width: 8.33333%; | ||
5078 | margin-left: 0; } | ||
5079 | .row .col.s2 { | ||
5080 | width: 16.66667%; | ||
5081 | margin-left: 0; } | ||
5082 | .row .col.s3 { | ||
5083 | width: 25%; | ||
5084 | margin-left: 0; } | ||
5085 | .row .col.s4 { | ||
5086 | width: 33.33333%; | ||
5087 | margin-left: 0; } | ||
5088 | .row .col.s5 { | ||
5089 | width: 41.66667%; | ||
5090 | margin-left: 0; } | ||
5091 | .row .col.s6 { | ||
5092 | width: 50%; | ||
5093 | margin-left: 0; } | ||
5094 | .row .col.s7 { | ||
5095 | width: 58.33333%; | ||
5096 | margin-left: 0; } | ||
5097 | .row .col.s8 { | ||
5098 | width: 66.66667%; | ||
5099 | margin-left: 0; } | ||
5100 | .row .col.s9 { | ||
5101 | width: 75%; | ||
5102 | margin-left: 0; } | ||
5103 | .row .col.s10 { | ||
5104 | width: 83.33333%; | ||
5105 | margin-left: 0; } | ||
5106 | .row .col.s11 { | ||
5107 | width: 91.66667%; | ||
5108 | margin-left: 0; } | ||
5109 | .row .col.s12 { | ||
5110 | width: 100%; | ||
5111 | margin-left: 0; } | ||
5112 | .row .col.offset-s1 { | ||
5113 | margin-left: 8.33333%; } | ||
5114 | .row .col.offset-s2 { | ||
5115 | margin-left: 16.66667%; } | ||
5116 | .row .col.offset-s3 { | ||
5117 | margin-left: 25%; } | ||
5118 | .row .col.offset-s4 { | ||
5119 | margin-left: 33.33333%; } | ||
5120 | .row .col.offset-s5 { | ||
5121 | margin-left: 41.66667%; } | ||
5122 | .row .col.offset-s6 { | ||
5123 | margin-left: 50%; } | ||
5124 | .row .col.offset-s7 { | ||
5125 | margin-left: 58.33333%; } | ||
5126 | .row .col.offset-s8 { | ||
5127 | margin-left: 66.66667%; } | ||
5128 | .row .col.offset-s9 { | ||
5129 | margin-left: 75%; } | ||
5130 | .row .col.offset-s10 { | ||
5131 | margin-left: 83.33333%; } | ||
5132 | .row .col.offset-s11 { | ||
5133 | margin-left: 91.66667%; } | ||
5134 | .row .col.offset-s12 { | ||
5135 | margin-left: 100%; } | ||
5136 | @media only screen and (min-width : 601px) { | ||
5137 | .row .col.m1 { | ||
5138 | width: 8.33333%; | ||
5139 | margin-left: 0; } | ||
5140 | .row .col.m2 { | ||
5141 | width: 16.66667%; | ||
5142 | margin-left: 0; } | ||
5143 | .row .col.m3 { | ||
5144 | width: 25%; | ||
5145 | margin-left: 0; } | ||
5146 | .row .col.m4 { | ||
5147 | width: 33.33333%; | ||
5148 | margin-left: 0; } | ||
5149 | .row .col.m5 { | ||
5150 | width: 41.66667%; | ||
5151 | margin-left: 0; } | ||
5152 | .row .col.m6 { | ||
5153 | width: 50%; | ||
5154 | margin-left: 0; } | ||
5155 | .row .col.m7 { | ||
5156 | width: 58.33333%; | ||
5157 | margin-left: 0; } | ||
5158 | .row .col.m8 { | ||
5159 | width: 66.66667%; | ||
5160 | margin-left: 0; } | ||
5161 | .row .col.m9 { | ||
5162 | width: 75%; | ||
5163 | margin-left: 0; } | ||
5164 | .row .col.m10 { | ||
5165 | width: 83.33333%; | ||
5166 | margin-left: 0; } | ||
5167 | .row .col.m11 { | ||
5168 | width: 91.66667%; | ||
5169 | margin-left: 0; } | ||
5170 | .row .col.m12 { | ||
5171 | width: 100%; | ||
5172 | margin-left: 0; } | ||
5173 | .row .col.offset-m1 { | ||
5174 | margin-left: 8.33333%; } | ||
5175 | .row .col.offset-m2 { | ||
5176 | margin-left: 16.66667%; } | ||
5177 | .row .col.offset-m3 { | ||
5178 | margin-left: 25%; } | ||
5179 | .row .col.offset-m4 { | ||
5180 | margin-left: 33.33333%; } | ||
5181 | .row .col.offset-m5 { | ||
5182 | margin-left: 41.66667%; } | ||
5183 | .row .col.offset-m6 { | ||
5184 | margin-left: 50%; } | ||
5185 | .row .col.offset-m7 { | ||
5186 | margin-left: 58.33333%; } | ||
5187 | .row .col.offset-m8 { | ||
5188 | margin-left: 66.66667%; } | ||
5189 | .row .col.offset-m9 { | ||
5190 | margin-left: 75%; } | ||
5191 | .row .col.offset-m10 { | ||
5192 | margin-left: 83.33333%; } | ||
5193 | .row .col.offset-m11 { | ||
5194 | margin-left: 91.66667%; } | ||
5195 | .row .col.offset-m12 { | ||
5196 | margin-left: 100%; } } | ||
5197 | @media only screen and (min-width : 993px) { | ||
5198 | .row .col.l1 { | ||
5199 | width: 8.33333%; | ||
5200 | margin-left: 0; } | ||
5201 | .row .col.l2 { | ||
5202 | width: 16.66667%; | ||
5203 | margin-left: 0; } | ||
5204 | .row .col.l3 { | ||
5205 | width: 25%; | ||
5206 | margin-left: 0; } | ||
5207 | .row .col.l4 { | ||
5208 | width: 33.33333%; | ||
5209 | margin-left: 0; } | ||
5210 | .row .col.l5 { | ||
5211 | width: 41.66667%; | ||
5212 | margin-left: 0; } | ||
5213 | .row .col.l6 { | ||
5214 | width: 50%; | ||
5215 | margin-left: 0; } | ||
5216 | .row .col.l7 { | ||
5217 | width: 58.33333%; | ||
5218 | margin-left: 0; } | ||
5219 | .row .col.l8 { | ||
5220 | width: 66.66667%; | ||
5221 | margin-left: 0; } | ||
5222 | .row .col.l9 { | ||
5223 | width: 75%; | ||
5224 | margin-left: 0; } | ||
5225 | .row .col.l10 { | ||
5226 | width: 83.33333%; | ||
5227 | margin-left: 0; } | ||
5228 | .row .col.l11 { | ||
5229 | width: 91.66667%; | ||
5230 | margin-left: 0; } | ||
5231 | .row .col.l12 { | ||
5232 | width: 100%; | ||
5233 | margin-left: 0; } | ||
5234 | .row .col.offset-l1 { | ||
5235 | margin-left: 8.33333%; } | ||
5236 | .row .col.offset-l2 { | ||
5237 | margin-left: 16.66667%; } | ||
5238 | .row .col.offset-l3 { | ||
5239 | margin-left: 25%; } | ||
5240 | .row .col.offset-l4 { | ||
5241 | margin-left: 33.33333%; } | ||
5242 | .row .col.offset-l5 { | ||
5243 | margin-left: 41.66667%; } | ||
5244 | .row .col.offset-l6 { | ||
5245 | margin-left: 50%; } | ||
5246 | .row .col.offset-l7 { | ||
5247 | margin-left: 58.33333%; } | ||
5248 | .row .col.offset-l8 { | ||
5249 | margin-left: 66.66667%; } | ||
5250 | .row .col.offset-l9 { | ||
5251 | margin-left: 75%; } | ||
5252 | .row .col.offset-l10 { | ||
5253 | margin-left: 83.33333%; } | ||
5254 | .row .col.offset-l11 { | ||
5255 | margin-left: 91.66667%; } | ||
5256 | .row .col.offset-l12 { | ||
5257 | margin-left: 100%; } } | ||
5258 | |||
5259 | nav { | ||
5260 | color: #fff; | ||
5261 | background-color: #ee6e73; | ||
5262 | width: 100%; | ||
5263 | height: 56px; | ||
5264 | line-height: 56px; } | ||
5265 | nav a { | ||
5266 | color: #fff; } | ||
5267 | nav .nav-wrapper { | ||
5268 | position: relative; | ||
5269 | height: 100%; } | ||
5270 | nav .nav-wrapper i { | ||
5271 | display: block; | ||
5272 | font-size: 2rem; } | ||
5273 | @media only screen and (min-width : 993px) { | ||
5274 | nav a.button-collapse { | ||
5275 | display: none; } } | ||
5276 | nav .button-collapse { | ||
5277 | float: left; | ||
5278 | position: relative; | ||
5279 | z-index: 1; | ||
5280 | height: 56px; } | ||
5281 | nav .button-collapse i { | ||
5282 | font-size: 2.7rem; | ||
5283 | height: 56px; | ||
5284 | line-height: 56px; } | ||
5285 | nav .brand-logo { | ||
5286 | position: absolute; | ||
5287 | color: #fff; | ||
5288 | display: inline-block; | ||
5289 | font-size: 2.1rem; | ||
5290 | padding: 0; | ||
5291 | white-space: nowrap; } | ||
5292 | nav .brand-logo.center { | ||
5293 | left: 50%; | ||
5294 | -webkit-transform: translateX(-50%); | ||
5295 | -moz-transform: translateX(-50%); | ||
5296 | -ms-transform: translateX(-50%); | ||
5297 | -o-transform: translateX(-50%); | ||
5298 | transform: translateX(-50%); } | ||
5299 | @media only screen and (max-width : 992px) { | ||
5300 | nav .brand-logo { | ||
5301 | left: 50%; | ||
5302 | -webkit-transform: translateX(-50%); | ||
5303 | -moz-transform: translateX(-50%); | ||
5304 | -ms-transform: translateX(-50%); | ||
5305 | -o-transform: translateX(-50%); | ||
5306 | transform: translateX(-50%); } | ||
5307 | nav .brand-logo.left, nav .brand-logo.right { | ||
5308 | padding: 0; | ||
5309 | -webkit-transform: none; | ||
5310 | -moz-transform: none; | ||
5311 | -ms-transform: none; | ||
5312 | -o-transform: none; | ||
5313 | transform: none; } | ||
5314 | nav .brand-logo.left { | ||
5315 | left: 0.5rem; } | ||
5316 | nav .brand-logo.right { | ||
5317 | right: 0.5rem; | ||
5318 | left: auto; } } | ||
5319 | nav .brand-logo.right { | ||
5320 | right: 0.5rem; | ||
5321 | padding: 0; } | ||
5322 | nav ul { | ||
5323 | margin: 0; } | ||
5324 | nav ul li { | ||
5325 | -webkit-transition: background-color .3s; | ||
5326 | -moz-transition: background-color .3s; | ||
5327 | -o-transition: background-color .3s; | ||
5328 | -ms-transition: background-color .3s; | ||
5329 | transition: background-color .3s; | ||
5330 | float: left; | ||
5331 | padding: 0; } | ||
5332 | nav ul li:hover, nav ul li.active { | ||
5333 | background-color: rgba(0, 0, 0, 0.1); } | ||
5334 | nav ul a { | ||
5335 | font-size: 1rem; | ||
5336 | color: #fff; | ||
5337 | display: block; | ||
5338 | padding: 0 15px; } | ||
5339 | nav ul.left { | ||
5340 | float: left; } | ||
5341 | nav .input-field { | ||
5342 | margin: 0; } | ||
5343 | nav .input-field input { | ||
5344 | height: 100%; | ||
5345 | font-size: 1.2rem; | ||
5346 | border: none; | ||
5347 | padding-left: 2rem; } | ||
5348 | nav .input-field input:focus, nav .input-field input[type=text]:valid, nav .input-field input[type=password]:valid, nav .input-field input[type=email]:valid, nav .input-field input[type=url]:valid, nav .input-field input[type=date]:valid { | ||
5349 | border: none; | ||
5350 | box-shadow: none; } | ||
5351 | nav .input-field label { | ||
5352 | top: 0; | ||
5353 | left: 0; } | ||
5354 | nav .input-field label i { | ||
5355 | color: rgba(255, 255, 255, 0.7); | ||
5356 | -webkit-transition: color .3s; | ||
5357 | -moz-transition: color .3s; | ||
5358 | -o-transition: color .3s; | ||
5359 | -ms-transition: color .3s; | ||
5360 | transition: color .3s; } | ||
5361 | nav .input-field label.active i { | ||
5362 | color: #fff; } | ||
5363 | nav .input-field label.active { | ||
5364 | -webkit-transform: translateY(0); | ||
5365 | -moz-transform: translateY(0); | ||
5366 | -ms-transform: translateY(0); | ||
5367 | -o-transform: translateY(0); | ||
5368 | transform: translateY(0); } | ||
5369 | |||
5370 | .navbar-fixed { | ||
5371 | position: relative; | ||
5372 | height: 56px; | ||
5373 | z-index: 998; } | ||
5374 | .navbar-fixed nav { | ||
5375 | position: fixed; } | ||
5376 | |||
5377 | @media only screen and (min-width : 601px) { | ||
5378 | nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i { | ||
5379 | height: 64px; | ||
5380 | line-height: 64px; } | ||
5381 | .navbar-fixed { | ||
5382 | height: 64px; } } | ||
5383 | |||
5384 | @font-face { | ||
5385 | font-family: "Roboto"; | ||
5386 | src: local(Roboto Thin), url("../font/roboto/Roboto-Thin.woff2") format("woff2"), url("../font/roboto/Roboto-Thin.woff") format("woff"), url("../font/roboto/Roboto-Thin.ttf") format("truetype"); | ||
5387 | font-weight: 200; } | ||
5388 | |||
5389 | @font-face { | ||
5390 | font-family: "Roboto"; | ||
5391 | src: local(Roboto Light), url("../font/roboto/Roboto-Light.woff2") format("woff2"), url("../font/roboto/Roboto-Light.woff") format("woff"), url("../font/roboto/Roboto-Light.ttf") format("truetype"); | ||
5392 | font-weight: 300; } | ||
5393 | |||
5394 | @font-face { | ||
5395 | font-family: "Roboto"; | ||
5396 | src: local(Roboto Regular), url("../font/roboto/Roboto-Regular.woff2") format("woff2"), url("../font/roboto/Roboto-Regular.woff") format("woff"), url("../font/roboto/Roboto-Regular.ttf") format("truetype"); | ||
5397 | font-weight: 400; } | ||
5398 | |||
5399 | @font-face { | ||
5400 | font-family: "Roboto"; | ||
5401 | src: url("../font/roboto/Roboto-Medium.woff2") format("woff2"), url("../font/roboto/Roboto-Medium.woff") format("woff"), url("../font/roboto/Roboto-Medium.ttf") format("truetype"); | ||
5402 | font-weight: 500; } | ||
5403 | |||
5404 | @font-face { | ||
5405 | font-family: "Roboto"; | ||
5406 | src: url("../font/roboto/Roboto-Bold.woff2") format("woff2"), url("../font/roboto/Roboto-Bold.woff") format("woff"), url("../font/roboto/Roboto-Bold.ttf") format("truetype"); | ||
5407 | font-weight: 700; } | ||
5408 | |||
5409 | a { | ||
5410 | text-decoration: none; } | ||
5411 | |||
5412 | html { | ||
5413 | line-height: 1.5; | ||
5414 | font-family: "Roboto", sans-serif; | ||
5415 | font-weight: normal; | ||
5416 | color: rgba(0, 0, 0, 0.87); } | ||
5417 | @media only screen and (min-width: 0) { | ||
5418 | html { | ||
5419 | font-size: 14px; } } | ||
5420 | @media only screen and (min-width: 992px) { | ||
5421 | html { | ||
5422 | font-size: 14.5px; } } | ||
5423 | @media only screen and (min-width: 1200px) { | ||
5424 | html { | ||
5425 | font-size: 15px; } } | ||
5426 | |||
5427 | h1, h2, h3, h4, h5, h6 { | ||
5428 | font-weight: 400; | ||
5429 | line-height: 1.1; } | ||
5430 | |||
5431 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { | ||
5432 | font-weight: inherit; } | ||
5433 | |||
5434 | h1 { | ||
5435 | font-size: 4.2rem; | ||
5436 | line-height: 110%; | ||
5437 | margin: 2.1rem 0 1.68rem 0; } | ||
5438 | |||
5439 | h2 { | ||
5440 | font-size: 3.56rem; | ||
5441 | line-height: 110%; | ||
5442 | margin: 1.78rem 0 1.424rem 0; } | ||
5443 | |||
5444 | h3 { | ||
5445 | font-size: 2.92rem; | ||
5446 | line-height: 110%; | ||
5447 | margin: 1.46rem 0 1.168rem 0; } | ||
5448 | |||
5449 | h4 { | ||
5450 | font-size: 2.28rem; | ||
5451 | line-height: 110%; | ||
5452 | margin: 1.14rem 0 0.912rem 0; } | ||
5453 | |||
5454 | h5 { | ||
5455 | font-size: 1.64rem; | ||
5456 | line-height: 110%; | ||
5457 | margin: 0.82rem 0 0.656rem 0; } | ||
5458 | |||
5459 | h6 { | ||
5460 | font-size: 1rem; | ||
5461 | line-height: 110%; | ||
5462 | margin: 0.5rem 0 0.4rem 0; } | ||
5463 | |||
5464 | em { | ||
5465 | font-style: italic; } | ||
5466 | |||
5467 | strong { | ||
5468 | font-weight: 500; } | ||
5469 | |||
5470 | small { | ||
5471 | font-size: 75%; } | ||
5472 | |||
5473 | .light, footer.page-footer .footer-copyright { | ||
5474 | font-weight: 300; } | ||
5475 | |||
5476 | .thin { | ||
5477 | font-weight: 200; } | ||
5478 | |||
5479 | .flow-text { | ||
5480 | font-weight: 300; } | ||
5481 | @media only screen and (min-width: 360px) { | ||
5482 | .flow-text { | ||
5483 | font-size: 1.2rem; } } | ||
5484 | @media only screen and (min-width: 390px) { | ||
5485 | .flow-text { | ||
5486 | font-size: 1.224rem; } } | ||
5487 | @media only screen and (min-width: 420px) { | ||
5488 | .flow-text { | ||
5489 | font-size: 1.248rem; } } | ||
5490 | @media only screen and (min-width: 450px) { | ||
5491 | .flow-text { | ||
5492 | font-size: 1.272rem; } } | ||
5493 | @media only screen and (min-width: 480px) { | ||
5494 | .flow-text { | ||
5495 | font-size: 1.296rem; } } | ||
5496 | @media only screen and (min-width: 510px) { | ||
5497 | .flow-text { | ||
5498 | font-size: 1.32rem; } } | ||
5499 | @media only screen and (min-width: 540px) { | ||
5500 | .flow-text { | ||
5501 | font-size: 1.344rem; } } | ||
5502 | @media only screen and (min-width: 570px) { | ||
5503 | .flow-text { | ||
5504 | font-size: 1.368rem; } } | ||
5505 | @media only screen and (min-width: 600px) { | ||
5506 | .flow-text { | ||
5507 | font-size: 1.392rem; } } | ||
5508 | @media only screen and (min-width: 630px) { | ||
5509 | .flow-text { | ||
5510 | font-size: 1.416rem; } } | ||
5511 | @media only screen and (min-width: 660px) { | ||
5512 | .flow-text { | ||
5513 | font-size: 1.44rem; } } | ||
5514 | @media only screen and (min-width: 690px) { | ||
5515 | .flow-text { | ||
5516 | font-size: 1.464rem; } } | ||
5517 | @media only screen and (min-width: 720px) { | ||
5518 | .flow-text { | ||
5519 | font-size: 1.488rem; } } | ||
5520 | @media only screen and (min-width: 750px) { | ||
5521 | .flow-text { | ||
5522 | font-size: 1.512rem; } } | ||
5523 | @media only screen and (min-width: 780px) { | ||
5524 | .flow-text { | ||
5525 | font-size: 1.536rem; } } | ||
5526 | @media only screen and (min-width: 810px) { | ||
5527 | .flow-text { | ||
5528 | font-size: 1.56rem; } } | ||
5529 | @media only screen and (min-width: 840px) { | ||
5530 | .flow-text { | ||
5531 | font-size: 1.584rem; } } | ||
5532 | @media only screen and (min-width: 870px) { | ||
5533 | .flow-text { | ||
5534 | font-size: 1.608rem; } } | ||
5535 | @media only screen and (min-width: 900px) { | ||
5536 | .flow-text { | ||
5537 | font-size: 1.632rem; } } | ||
5538 | @media only screen and (min-width: 930px) { | ||
5539 | .flow-text { | ||
5540 | font-size: 1.656rem; } } | ||
5541 | @media only screen and (min-width: 960px) { | ||
5542 | .flow-text { | ||
5543 | font-size: 1.68rem; } } | ||
5544 | @media only screen and (max-width: 360px) { | ||
5545 | .flow-text { | ||
5546 | font-size: 1.2rem; } } | ||
5547 | |||
5548 | .card-panel { | ||
5549 | transition: box-shadow .25s; | ||
5550 | padding: 20px; | ||
5551 | margin: 0.5rem 0 1rem 0; | ||
5552 | border-radius: 2px; | ||
5553 | background-color: #fff; } | ||
5554 | |||
5555 | .card { | ||
5556 | position: relative; | ||
5557 | overflow: hidden; | ||
5558 | margin: 0.5rem 0 1rem 0; | ||
5559 | background-color: #fff; | ||
5560 | transition: box-shadow .25s; | ||
5561 | border-radius: 2px; } | ||
5562 | .card .card-title { | ||
5563 | color: #fff; | ||
5564 | font-size: 24px; | ||
5565 | font-weight: 300; } | ||
5566 | .card .card-title.activator { | ||
5567 | cursor: pointer; } | ||
5568 | .card.small, .card.medium, .card.large { | ||
5569 | position: relative; } | ||
5570 | .card.small .card-image, .card.medium .card-image, .card.large .card-image { | ||
5571 | overflow: hidden; } | ||
5572 | .card.small .card-content, .card.medium .card-content, .card.large .card-content { | ||
5573 | overflow: hidden; } | ||
5574 | .card.small .card-action, .card.medium .card-action, .card.large .card-action { | ||
5575 | position: absolute; | ||
5576 | bottom: 0; | ||
5577 | left: 0; | ||
5578 | right: 0; } | ||
5579 | .card.small { | ||
5580 | height: 300px; } | ||
5581 | .card.small .card-image { | ||
5582 | height: 150px; } | ||
5583 | .card.small .card-content { | ||
5584 | height: 150px; } | ||
5585 | .card.medium { | ||
5586 | height: 400px; } | ||
5587 | .card.medium .card-image { | ||
5588 | height: 250px; } | ||
5589 | .card.medium .card-content { | ||
5590 | height: 150px; } | ||
5591 | .card.large { | ||
5592 | height: 500px; } | ||
5593 | .card.large .card-image { | ||
5594 | height: 330px; } | ||
5595 | .card.large .card-content { | ||
5596 | height: 170px; } | ||
5597 | .card .card-image { | ||
5598 | position: relative; } | ||
5599 | .card .card-image img { | ||
5600 | display: block; | ||
5601 | border-radius: 2px 2px 0 0; | ||
5602 | position: relative; | ||
5603 | left: 0; | ||
5604 | right: 0; | ||
5605 | top: 0; | ||
5606 | bottom: 0; | ||
5607 | width: 100%; } | ||
5608 | .card .card-image .card-title { | ||
5609 | position: absolute; | ||
5610 | bottom: 0; | ||
5611 | left: 0; | ||
5612 | padding: 20px; } | ||
5613 | .card .card-content { | ||
5614 | padding: 20px; | ||
5615 | border-radius: 0 0 2px 2px; } | ||
5616 | .card .card-content p { | ||
5617 | margin: 0; | ||
5618 | color: inherit; } | ||
5619 | .card .card-content .card-title { | ||
5620 | line-height: 48px; } | ||
5621 | .card .card-action { | ||
5622 | border-top: 1px solid rgba(160, 160, 160, 0.2); | ||
5623 | padding: 20px; } | ||
5624 | .card .card-action a { | ||
5625 | color: #ffab40; | ||
5626 | margin-right: 20px; | ||
5627 | -webkit-transition: color .3s ease; | ||
5628 | -moz-transition: color .3s ease; | ||
5629 | -o-transition: color .3s ease; | ||
5630 | -ms-transition: color .3s ease; | ||
5631 | transition: color .3s ease; | ||
5632 | text-transform: uppercase; } | ||
5633 | .card .card-action a:hover { | ||
5634 | color: #ffd8a6; } | ||
5635 | .card .card-reveal { | ||
5636 | padding: 20px; | ||
5637 | position: absolute; | ||
5638 | background-color: #fff; | ||
5639 | width: 100%; | ||
5640 | overflow-y: auto; | ||
5641 | top: 100%; | ||
5642 | height: 100%; | ||
5643 | z-index: 1; | ||
5644 | display: none; } | ||
5645 | .card .card-reveal .card-title { | ||
5646 | cursor: pointer; | ||
5647 | display: block; } | ||
5648 | |||
5649 | #toast-container { | ||
5650 | display: block; | ||
5651 | position: fixed; | ||
5652 | z-index: 10000; } | ||
5653 | @media only screen and (max-width : 600px) { | ||
5654 | #toast-container { | ||
5655 | min-width: 100%; | ||
5656 | bottom: 0%; } } | ||
5657 | @media only screen and (min-width : 601px) and (max-width : 992px) { | ||
5658 | #toast-container { | ||
5659 | min-width: 30%; | ||
5660 | left: 5%; | ||
5661 | bottom: 7%; } } | ||
5662 | @media only screen and (min-width : 993px) { | ||
5663 | #toast-container { | ||
5664 | min-width: 8%; | ||
5665 | top: 10%; | ||
5666 | right: 7%; } } | ||
5667 | |||
5668 | .toast { | ||
5669 | border-radius: 2px; | ||
5670 | top: 0; | ||
5671 | width: auto; | ||
5672 | clear: both; | ||
5673 | margin-top: 10px; | ||
5674 | position: relative; | ||
5675 | max-width: 100%; | ||
5676 | height: 48px; | ||
5677 | line-height: 48px; | ||
5678 | background-color: #323232; | ||
5679 | padding: 0 25px; | ||
5680 | font-size: 1.1rem; | ||
5681 | font-weight: 300; | ||
5682 | color: #fff; | ||
5683 | display: -webkit-box; | ||
5684 | display: -moz-box; | ||
5685 | display: -ms-flexbox; | ||
5686 | display: -webkit-flex; | ||
5687 | display: flex; | ||
5688 | -webkit-flex-align: center; | ||
5689 | -ms-flex-align: center; | ||
5690 | -webkit-align-items: center; | ||
5691 | align-items: center; | ||
5692 | -webkit-justify-content: space-between; | ||
5693 | justify-content: space-between; } | ||
5694 | .toast .btn, .toast .btn-large, .toast .btn-flat { | ||
5695 | margin: 0; | ||
5696 | margin-left: 3rem; } | ||
5697 | .toast.rounded { | ||
5698 | border-radius: 24px; } | ||
5699 | @media only screen and (max-width : 600px) { | ||
5700 | .toast { | ||
5701 | width: 100%; | ||
5702 | border-radius: 0; } } | ||
5703 | @media only screen and (min-width : 601px) and (max-width : 992px) { | ||
5704 | .toast { | ||
5705 | float: left; } } | ||
5706 | @media only screen and (min-width : 993px) { | ||
5707 | .toast { | ||
5708 | float: right; } } | ||
5709 | |||
5710 | .tabs { | ||
5711 | display: -webkit-box; | ||
5712 | display: -moz-box; | ||
5713 | display: -ms-flexbox; | ||
5714 | display: -webkit-flex; | ||
5715 | display: flex; | ||
5716 | position: relative; | ||
5717 | height: 48px; | ||
5718 | background-color: #fff; | ||
5719 | margin: 0 auto; | ||
5720 | width: 100%; | ||
5721 | white-space: nowrap; } | ||
5722 | .tabs .tab { | ||
5723 | -webkit-box-flex: 1; | ||
5724 | -webkit-flex-grow: 1; | ||
5725 | -ms-flex-positive: 1; | ||
5726 | flex-grow: 1; | ||
5727 | display: block; | ||
5728 | float: left; | ||
5729 | text-align: center; | ||
5730 | line-height: 48px; | ||
5731 | height: 48px; | ||
5732 | padding: 0 20px; | ||
5733 | margin: 0; | ||
5734 | text-transform: uppercase; | ||
5735 | letter-spacing: .8px; | ||
5736 | width: 15%; } | ||
5737 | .tabs .tab a { | ||
5738 | color: #ee6e73; | ||
5739 | display: block; | ||
5740 | width: 100%; | ||
5741 | height: 100%; | ||
5742 | -webkit-transition: color .28s ease; | ||
5743 | -moz-transition: color .28s ease; | ||
5744 | -o-transition: color .28s ease; | ||
5745 | -ms-transition: color .28s ease; | ||
5746 | transition: color .28s ease; } | ||
5747 | .tabs .tab a:hover { | ||
5748 | color: #f9c9cb; } | ||
5749 | .tabs .tab.disabled a { | ||
5750 | color: #f9c9cb; | ||
5751 | cursor: default; } | ||
5752 | .tabs .indicator { | ||
5753 | position: absolute; | ||
5754 | bottom: 0; | ||
5755 | height: 2px; | ||
5756 | background-color: #f6b2b5; | ||
5757 | will-change: left, right; } | ||
5758 | |||
5759 | .tabs .tab { | ||
5760 | padding: 0; } | ||
5761 | |||
5762 | .material-tooltip { | ||
5763 | padding: 10px 8px; | ||
5764 | font-size: 1rem; | ||
5765 | z-index: 2000; | ||
5766 | background-color: transparent; | ||
5767 | border-radius: 2px; | ||
5768 | color: #fff; | ||
5769 | min-height: 36px; | ||
5770 | line-height: 1rem; | ||
5771 | opacity: 0; | ||
5772 | display: none; | ||
5773 | position: absolute; | ||
5774 | text-align: center; | ||
5775 | overflow: hidden; | ||
5776 | left: 0; | ||
5777 | top: 0; | ||
5778 | will-change: top, left; } | ||
5779 | |||
5780 | .backdrop { | ||
5781 | position: absolute; | ||
5782 | opacity: 0; | ||
5783 | display: none; | ||
5784 | height: 7px; | ||
5785 | width: 14px; | ||
5786 | border-radius: 0 0 14px 14px; | ||
5787 | background-color: #323232; | ||
5788 | z-index: -1; | ||
5789 | -webkit-transform-origin: 50% 10%; | ||
5790 | -moz-transform-origin: 50% 10%; | ||
5791 | -ms-transform-origin: 50% 10%; | ||
5792 | -o-transform-origin: 50% 10%; | ||
5793 | transform-origin: 50% 10%; | ||
5794 | will-change: transform, opacity; } | ||
5795 | |||
5796 | .btn, .btn-large, .btn-flat { | ||
5797 | border: none; | ||
5798 | border-radius: 2px; | ||
5799 | display: inline-block; | ||
5800 | height: 36px; | ||
5801 | line-height: 36px; | ||
5802 | outline: 0; | ||
5803 | padding: 0 2rem; | ||
5804 | text-transform: uppercase; | ||
5805 | vertical-align: middle; | ||
5806 | -webkit-tap-highlight-color: transparent; } | ||
5807 | |||
5808 | .btn.disabled, .disabled.btn-large, .btn-floating.disabled, .btn-large.disabled, .btn:disabled, .btn-large:disabled, .btn-large:disabled, .btn-floating:disabled { | ||
5809 | background-color: #DFDFDF !important; | ||
5810 | box-shadow: none; | ||
5811 | color: #9F9F9F !important; | ||
5812 | cursor: default; } | ||
5813 | .btn.disabled *, .disabled.btn-large *, .btn-floating.disabled *, .btn-large.disabled *, .btn:disabled *, .btn-large:disabled *, .btn-large:disabled *, .btn-floating:disabled * { | ||
5814 | pointer-events: none; } | ||
5815 | .btn.disabled:hover, .disabled.btn-large:hover, .btn-floating.disabled:hover, .btn-large.disabled:hover, .btn:disabled:hover, .btn-large:disabled:hover, .btn-large:disabled:hover, .btn-floating:disabled:hover { | ||
5816 | background-color: #DFDFDF; | ||
5817 | color: #9F9F9F; } | ||
5818 | |||
5819 | .btn i, .btn-large i, .btn-floating i, .btn-large i, .btn-flat i { | ||
5820 | font-size: 1.3rem; | ||
5821 | line-height: inherit; } | ||
5822 | |||
5823 | .btn, .btn-large { | ||
5824 | text-decoration: none; | ||
5825 | color: #fff; | ||
5826 | background-color: #26a69a; | ||
5827 | text-align: center; | ||
5828 | letter-spacing: .5px; | ||
5829 | -webkit-transition: .2s ease-out; | ||
5830 | -moz-transition: .2s ease-out; | ||
5831 | -o-transition: .2s ease-out; | ||
5832 | -ms-transition: .2s ease-out; | ||
5833 | transition: .2s ease-out; | ||
5834 | cursor: pointer; } | ||
5835 | .btn:hover, .btn-large:hover { | ||
5836 | background-color: #2bbbad; } | ||
5837 | |||
5838 | .btn-floating { | ||
5839 | display: inline-block; | ||
5840 | color: #fff; | ||
5841 | position: relative; | ||
5842 | overflow: hidden; | ||
5843 | z-index: 1; | ||
5844 | width: 37px; | ||
5845 | height: 37px; | ||
5846 | line-height: 37px; | ||
5847 | padding: 0; | ||
5848 | background-color: #26a69a; | ||
5849 | border-radius: 50%; | ||
5850 | transition: .3s; | ||
5851 | cursor: pointer; | ||
5852 | vertical-align: middle; } | ||
5853 | .btn-floating i { | ||
5854 | width: inherit; | ||
5855 | display: inline-block; | ||
5856 | text-align: center; | ||
5857 | color: #fff; | ||
5858 | font-size: 1.6rem; | ||
5859 | line-height: 37px; } | ||
5860 | .btn-floating:before { | ||
5861 | border-radius: 0; } | ||
5862 | .btn-floating.btn-large { | ||
5863 | width: 55.5px; | ||
5864 | height: 55.5px; } | ||
5865 | .btn-floating.btn-large i { | ||
5866 | line-height: 55.5px; } | ||
5867 | |||
5868 | button.btn-floating { | ||
5869 | border: none; } | ||
5870 | |||
5871 | .fixed-action-btn { | ||
5872 | position: fixed; | ||
5873 | right: 23px; | ||
5874 | bottom: 23px; | ||
5875 | padding-top: 15px; | ||
5876 | margin-bottom: 0; | ||
5877 | z-index: 998; } | ||
5878 | .fixed-action-btn ul { | ||
5879 | left: 0; | ||
5880 | right: 0; | ||
5881 | text-align: center; | ||
5882 | position: absolute; | ||
5883 | bottom: 64px; | ||
5884 | margin: 0; } | ||
5885 | .fixed-action-btn ul li { | ||
5886 | margin-bottom: 15px; } | ||
5887 | .fixed-action-btn ul a.btn-floating { | ||
5888 | opacity: 0; } | ||
5889 | |||
5890 | .btn-flat { | ||
5891 | box-shadow: none; | ||
5892 | background-color: transparent; | ||
5893 | color: #343434; | ||
5894 | cursor: pointer; } | ||
5895 | .btn-flat.disabled { | ||
5896 | color: #b3b3b3; | ||
5897 | cursor: default; } | ||
5898 | |||
5899 | .btn-large { | ||
5900 | height: 54px; | ||
5901 | line-height: 56px; } | ||
5902 | .btn-large i { | ||
5903 | font-size: 1.6rem; } | ||
5904 | |||
5905 | .btn-block { | ||
5906 | display: block; } | ||
5907 | |||
5908 | .dropdown-content { | ||
5909 | background-color: #fff; | ||
5910 | margin: 0; | ||
5911 | display: none; | ||
5912 | min-width: 100px; | ||
5913 | max-height: 650px; | ||
5914 | overflow-y: auto; | ||
5915 | opacity: 0; | ||
5916 | position: absolute; | ||
5917 | z-index: 999; | ||
5918 | will-change: width, height; } | ||
5919 | .dropdown-content li { | ||
5920 | clear: both; | ||
5921 | color: rgba(0, 0, 0, 0.87); | ||
5922 | cursor: pointer; | ||
5923 | line-height: 1.5rem; | ||
5924 | width: 100%; | ||
5925 | text-align: left; | ||
5926 | text-transform: none; } | ||
5927 | .dropdown-content li:hover, .dropdown-content li.active { | ||
5928 | background-color: #eee; } | ||
5929 | .dropdown-content li > a, .dropdown-content li > span { | ||
5930 | font-size: 1.2rem; | ||
5931 | color: #26a69a; | ||
5932 | display: block; | ||
5933 | padding: 1rem 1rem; } | ||
5934 | .dropdown-content li > a > i { | ||
5935 | height: inherit; | ||
5936 | line-height: inherit; } | ||
5937 | |||
5938 | /*! | ||
5939 | * Waves v0.6.0 | ||
5940 | * http://fian.my.id/Waves | ||
5941 | * | ||
5942 | * Copyright 2014 Alfiana E. Sibuea and other contributors | ||
5943 | * Released under the MIT license | ||
5944 | * https://github.com/fians/Waves/blob/master/LICENSE | ||
5945 | */ | ||
5946 | .waves-effect { | ||
5947 | position: relative; | ||
5948 | cursor: pointer; | ||
5949 | display: inline-block; | ||
5950 | overflow: hidden; | ||
5951 | -webkit-user-select: none; | ||
5952 | -moz-user-select: none; | ||
5953 | -ms-user-select: none; | ||
5954 | user-select: none; | ||
5955 | -webkit-tap-highlight-color: transparent; | ||
5956 | vertical-align: middle; | ||
5957 | z-index: 1; | ||
5958 | will-change: opacity, transform; | ||
5959 | -webkit-transition: all .3s ease-out; | ||
5960 | -moz-transition: all .3s ease-out; | ||
5961 | -o-transition: all .3s ease-out; | ||
5962 | -ms-transition: all .3s ease-out; | ||
5963 | transition: all .3s ease-out; } | ||
5964 | .waves-effect .waves-ripple { | ||
5965 | position: absolute; | ||
5966 | border-radius: 50%; | ||
5967 | width: 20px; | ||
5968 | height: 20px; | ||
5969 | margin-top: -10px; | ||
5970 | margin-left: -10px; | ||
5971 | opacity: 0; | ||
5972 | background: rgba(0, 0, 0, 0.2); | ||
5973 | -webkit-transition: all 0.7s ease-out; | ||
5974 | -moz-transition: all 0.7s ease-out; | ||
5975 | -o-transition: all 0.7s ease-out; | ||
5976 | -ms-transition: all 0.7s ease-out; | ||
5977 | transition: all 0.7s ease-out; | ||
5978 | -webkit-transition-property: -webkit-transform, opacity; | ||
5979 | -moz-transition-property: -moz-transform, opacity; | ||
5980 | -o-transition-property: -o-transform, opacity; | ||
5981 | transition-property: transform, opacity; | ||
5982 | -webkit-transform: scale(0); | ||
5983 | -moz-transform: scale(0); | ||
5984 | -ms-transform: scale(0); | ||
5985 | -o-transform: scale(0); | ||
5986 | transform: scale(0); | ||
5987 | pointer-events: none; } | ||
5988 | .waves-effect.waves-light .waves-ripple { | ||
5989 | background-color: rgba(255, 255, 255, 0.45); } | ||
5990 | .waves-effect.waves-red .waves-ripple { | ||
5991 | background-color: rgba(244, 67, 54, 0.7); } | ||
5992 | .waves-effect.waves-yellow .waves-ripple { | ||
5993 | background-color: rgba(255, 235, 59, 0.7); } | ||
5994 | .waves-effect.waves-orange .waves-ripple { | ||
5995 | background-color: rgba(255, 152, 0, 0.7); } | ||
5996 | .waves-effect.waves-purple .waves-ripple { | ||
5997 | background-color: rgba(156, 39, 176, 0.7); } | ||
5998 | .waves-effect.waves-green .waves-ripple { | ||
5999 | background-color: rgba(76, 175, 80, 0.7); } | ||
6000 | .waves-effect.waves-teal .waves-ripple { | ||
6001 | background-color: rgba(0, 150, 136, 0.7); } | ||
6002 | |||
6003 | .waves-notransition { | ||
6004 | -webkit-transition: none !important; | ||
6005 | -moz-transition: none !important; | ||
6006 | -o-transition: none !important; | ||
6007 | -ms-transition: none !important; | ||
6008 | transition: none !important; } | ||
6009 | |||
6010 | .waves-circle { | ||
6011 | -webkit-transform: translateZ(0); | ||
6012 | -moz-transform: translateZ(0); | ||
6013 | -ms-transform: translateZ(0); | ||
6014 | -o-transform: translateZ(0); | ||
6015 | transform: translateZ(0); | ||
6016 | -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%); } | ||
6017 | |||
6018 | .waves-input-wrapper { | ||
6019 | border-radius: 0.2em; | ||
6020 | vertical-align: bottom; } | ||
6021 | .waves-input-wrapper .waves-button-input { | ||
6022 | position: relative; | ||
6023 | top: 0; | ||
6024 | left: 0; | ||
6025 | z-index: 1; } | ||
6026 | |||
6027 | .waves-circle { | ||
6028 | text-align: center; | ||
6029 | width: 2.5em; | ||
6030 | height: 2.5em; | ||
6031 | line-height: 2.5em; | ||
6032 | border-radius: 50%; | ||
6033 | -webkit-mask-image: none; } | ||
6034 | |||
6035 | .waves-block { | ||
6036 | display: block; } | ||
6037 | |||
6038 | /* Firefox Bug: link not triggered */ | ||
6039 | a.waves-effect .waves-ripple { | ||
6040 | z-index: -1; } | ||
6041 | |||
6042 | .modal { | ||
6043 | display: none; | ||
6044 | position: fixed; | ||
6045 | left: 0; | ||
6046 | right: 0; | ||
6047 | background-color: #fafafa; | ||
6048 | padding: 0; | ||
6049 | max-height: 70%; | ||
6050 | width: 55%; | ||
6051 | margin: auto; | ||
6052 | overflow-y: auto; | ||
6053 | border-radius: 2px; | ||
6054 | will-change: top, opacity; } | ||
6055 | @media only screen and (max-width : 992px) { | ||
6056 | .modal { | ||
6057 | width: 80%; } } | ||
6058 | .modal h1, .modal h2, .modal h3, .modal h4 { | ||
6059 | margin-top: 0; } | ||
6060 | .modal .modal-content { | ||
6061 | padding: 24px; } | ||
6062 | .modal .modal-close { | ||
6063 | cursor: pointer; } | ||
6064 | .modal .modal-footer { | ||
6065 | border-radius: 0 0 2px 2px; | ||
6066 | background-color: #fafafa; | ||
6067 | padding: 4px 6px; | ||
6068 | height: 56px; | ||
6069 | width: 100%; } | ||
6070 | .modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat { | ||
6071 | float: right; | ||
6072 | margin: 6px 0; } | ||
6073 | |||
6074 | .lean-overlay { | ||
6075 | position: fixed; | ||
6076 | z-index: 999; | ||
6077 | top: -100px; | ||
6078 | left: 0; | ||
6079 | bottom: 0; | ||
6080 | right: 0; | ||
6081 | height: 125%; | ||
6082 | width: 100%; | ||
6083 | background: #000; | ||
6084 | display: none; | ||
6085 | will-change: opacity; } | ||
6086 | |||
6087 | .modal.modal-fixed-footer { | ||
6088 | padding: 0; | ||
6089 | height: 70%; } | ||
6090 | .modal.modal-fixed-footer .modal-content { | ||
6091 | position: absolute; | ||
6092 | height: calc(100% - 56px); | ||
6093 | max-height: 100%; | ||
6094 | width: 100%; | ||
6095 | overflow-y: auto; } | ||
6096 | .modal.modal-fixed-footer .modal-footer { | ||
6097 | border-top: 1px solid rgba(0, 0, 0, 0.1); | ||
6098 | position: absolute; | ||
6099 | bottom: 0; } | ||
6100 | |||
6101 | .modal.bottom-sheet { | ||
6102 | top: auto; | ||
6103 | bottom: -100%; | ||
6104 | margin: 0; | ||
6105 | width: 100%; | ||
6106 | max-height: 45%; | ||
6107 | border-radius: 0; | ||
6108 | will-change: bottom, opacity; } | ||
6109 | |||
6110 | .collapsible { | ||
6111 | border-top: 1px solid #ddd; | ||
6112 | border-right: 1px solid #ddd; | ||
6113 | border-left: 1px solid #ddd; | ||
6114 | margin: 0.5rem 0 1rem 0; } | ||
6115 | |||
6116 | .collapsible-header { | ||
6117 | display: block; | ||
6118 | cursor: pointer; | ||
6119 | min-height: 3rem; | ||
6120 | line-height: 3rem; | ||
6121 | padding: 0 1rem; | ||
6122 | background-color: #fff; | ||
6123 | border-bottom: 1px solid #ddd; } | ||
6124 | .collapsible-header i { | ||
6125 | width: 2rem; | ||
6126 | font-size: 1.6rem; | ||
6127 | line-height: 3rem; | ||
6128 | display: block; | ||
6129 | float: left; | ||
6130 | text-align: center; | ||
6131 | margin-right: 1rem; } | ||
6132 | |||
6133 | .collapsible-body { | ||
6134 | display: none; | ||
6135 | border-bottom: 1px solid #ddd; | ||
6136 | -webkit-box-sizing: border-box; | ||
6137 | -moz-box-sizing: border-box; | ||
6138 | box-sizing: border-box; } | ||
6139 | .collapsible-body p { | ||
6140 | margin: 0; | ||
6141 | padding: 2rem; } | ||
6142 | |||
6143 | .side-nav .collapsible { | ||
6144 | border: none; | ||
6145 | box-shadow: none; } | ||
6146 | .side-nav .collapsible li { | ||
6147 | padding: 0; } | ||
6148 | .side-nav .collapsible-header { | ||
6149 | background-color: transparent; | ||
6150 | border: none; | ||
6151 | line-height: inherit; | ||
6152 | height: inherit; | ||
6153 | margin: 0 1rem; } | ||
6154 | .side-nav .collapsible-header i { | ||
6155 | line-height: inherit; } | ||
6156 | .side-nav .collapsible-body { | ||
6157 | border: 0; | ||
6158 | background-color: #fff; } | ||
6159 | .side-nav .collapsible-body li a { | ||
6160 | margin: 0 1rem 0 2rem; } | ||
6161 | |||
6162 | .collapsible.popout { | ||
6163 | border: none; | ||
6164 | box-shadow: none; } | ||
6165 | .collapsible.popout > li { | ||
6166 | box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); | ||
6167 | margin: 0 24px; | ||
6168 | transition: margin .35s cubic-bezier(0.25, 0.46, 0.45, 0.94); } | ||
6169 | .collapsible.popout > li.active { | ||
6170 | box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15); | ||
6171 | margin: 16px 0; } | ||
6172 | |||
6173 | .chip { | ||
6174 | display: inline-block; | ||
6175 | height: 32px; | ||
6176 | font-size: 13px; | ||
6177 | font-weight: 500; | ||
6178 | color: rgba(0, 0, 0, 0.6); | ||
6179 | line-height: 32px; | ||
6180 | padding: 0 12px; | ||
6181 | border-radius: 16px; | ||
6182 | background-color: #E4E4E4; } | ||
6183 | .chip img { | ||
6184 | float: left; | ||
6185 | margin: 0 8px 0 -12px; | ||
6186 | height: 32px; | ||
6187 | width: 32px; | ||
6188 | border-radius: 50%; } | ||
6189 | .chip i.material-icons { | ||
6190 | cursor: pointer; | ||
6191 | float: right; | ||
6192 | font-size: 16px; | ||
6193 | line-height: 32px; | ||
6194 | padding-left: 8px; } | ||
6195 | |||
6196 | .materialboxed { | ||
6197 | display: block; | ||
6198 | cursor: zoom-in; | ||
6199 | position: relative; | ||
6200 | -webkit-transition: opacity .4s; | ||
6201 | -moz-transition: opacity .4s; | ||
6202 | -o-transition: opacity .4s; | ||
6203 | -ms-transition: opacity .4s; | ||
6204 | transition: opacity .4s; } | ||
6205 | .materialboxed:hover { | ||
6206 | will-change: left, top, width, height; } | ||
6207 | .materialboxed:hover:not(.active) { | ||
6208 | opacity: .8; } | ||
6209 | |||
6210 | .materialboxed.active { | ||
6211 | cursor: zoom-out; } | ||
6212 | |||
6213 | #materialbox-overlay { | ||
6214 | position: fixed; | ||
6215 | top: 0; | ||
6216 | left: 0; | ||
6217 | right: 0; | ||
6218 | bottom: 0; | ||
6219 | background-color: #292929; | ||
6220 | z-index: 999; | ||
6221 | will-change: opacity; } | ||
6222 | |||
6223 | .materialbox-caption { | ||
6224 | position: fixed; | ||
6225 | display: none; | ||
6226 | color: #fff; | ||
6227 | line-height: 50px; | ||
6228 | bottom: 0; | ||
6229 | width: 100%; | ||
6230 | text-align: center; | ||
6231 | padding: 0% 15%; | ||
6232 | height: 50px; | ||
6233 | z-index: 1000; | ||
6234 | -webkit-font-smoothing: antialiased; } | ||
6235 | |||
6236 | /* Remove Focus Boxes */ | ||
6237 | select:focus { | ||
6238 | outline: 1px solid #c9f3ef; } | ||
6239 | |||
6240 | button:focus { | ||
6241 | outline: none; | ||
6242 | background-color: #2ab7a9; } | ||
6243 | |||
6244 | label { | ||
6245 | font-size: 0.8rem; | ||
6246 | color: #9e9e9e; } | ||
6247 | |||
6248 | /*************************** | ||
6249 | Text Inputs + Textarea | ||
6250 | ****************************/ | ||
6251 | ::-webkit-input-placeholder { | ||
6252 | color: #d1d1d1; } | ||
6253 | |||
6254 | :-moz-placeholder { | ||
6255 | /* Firefox 18- */ | ||
6256 | color: #d1d1d1; } | ||
6257 | |||
6258 | ::-moz-placeholder { | ||
6259 | /* Firefox 19+ */ | ||
6260 | color: #d1d1d1; } | ||
6261 | |||
6262 | :-ms-input-placeholder { | ||
6263 | color: #d1d1d1; } | ||
6264 | |||
6265 | input[type=text], input[type=password], input[type=email], input[type=url], input[type=time], input[type=date], input[type=datetime-local], input[type=tel], input[type=number], input[type=search], textarea.materialize-textarea { | ||
6266 | background-color: transparent; | ||
6267 | border: none; | ||
6268 | border-bottom: 1px solid #9e9e9e; | ||
6269 | border-radius: 0; | ||
6270 | outline: none; | ||
6271 | height: 3rem; | ||
6272 | width: 100%; | ||
6273 | font-size: 1rem; | ||
6274 | margin: 0 0 15px 0; | ||
6275 | padding: 0; | ||
6276 | box-shadow: none; | ||
6277 | -webkit-box-sizing: content-box; | ||
6278 | -moz-box-sizing: content-box; | ||
6279 | box-sizing: content-box; | ||
6280 | transition: all .3s; } | ||
6281 | input[type=text]:disabled, input[type=text][readonly="readonly"], input[type=password]:disabled, input[type=password][readonly="readonly"], input[type=email]:disabled, input[type=email][readonly="readonly"], input[type=url]:disabled, input[type=url][readonly="readonly"], input[type=time]:disabled, input[type=time][readonly="readonly"], input[type=date]:disabled, input[type=date][readonly="readonly"], input[type=datetime-local]:disabled, input[type=datetime-local][readonly="readonly"], input[type=tel]:disabled, input[type=tel][readonly="readonly"], input[type=number]:disabled, input[type=number][readonly="readonly"], input[type=search]:disabled, input[type=search][readonly="readonly"], textarea.materialize-textarea:disabled, textarea.materialize-textarea[readonly="readonly"] { | ||
6282 | color: rgba(0, 0, 0, 0.26); | ||
6283 | border-bottom: 1px dotted rgba(0, 0, 0, 0.26); } | ||
6284 | input[type=text]:disabled + label, input[type=text][readonly="readonly"] + label, input[type=password]:disabled + label, input[type=password][readonly="readonly"] + label, input[type=email]:disabled + label, input[type=email][readonly="readonly"] + label, input[type=url]:disabled + label, input[type=url][readonly="readonly"] + label, input[type=time]:disabled + label, input[type=time][readonly="readonly"] + label, input[type=date]:disabled + label, input[type=date][readonly="readonly"] + label, input[type=datetime-local]:disabled + label, input[type=datetime-local][readonly="readonly"] + label, input[type=tel]:disabled + label, input[type=tel][readonly="readonly"] + label, input[type=number]:disabled + label, input[type=number][readonly="readonly"] + label, input[type=search]:disabled + label, input[type=search][readonly="readonly"] + label, textarea.materialize-textarea:disabled + label, textarea.materialize-textarea[readonly="readonly"] + label { | ||
6285 | color: rgba(0, 0, 0, 0.26); } | ||
6286 | input[type=text]:focus:not([readonly]), input[type=password]:focus:not([readonly]), input[type=email]:focus:not([readonly]), input[type=url]:focus:not([readonly]), input[type=time]:focus:not([readonly]), input[type=date]:focus:not([readonly]), input[type=datetime-local]:focus:not([readonly]), input[type=tel]:focus:not([readonly]), input[type=number]:focus:not([readonly]), input[type=search]:focus:not([readonly]), textarea.materialize-textarea:focus:not([readonly]) { | ||
6287 | border-bottom: 1px solid #26a69a; | ||
6288 | box-shadow: 0 1px 0 0 #26a69a; } | ||
6289 | input[type=text]:focus:not([readonly]) + label, input[type=password]:focus:not([readonly]) + label, input[type=email]:focus:not([readonly]) + label, input[type=url]:focus:not([readonly]) + label, input[type=time]:focus:not([readonly]) + label, input[type=date]:focus:not([readonly]) + label, input[type=datetime-local]:focus:not([readonly]) + label, input[type=tel]:focus:not([readonly]) + label, input[type=number]:focus:not([readonly]) + label, input[type=search]:focus:not([readonly]) + label, textarea.materialize-textarea:focus:not([readonly]) + label { | ||
6290 | color: #26a69a; } | ||
6291 | input[type=text].valid, input[type=text]:focus.valid, input[type=password].valid, input[type=password]:focus.valid, input[type=email].valid, input[type=email]:focus.valid, input[type=url].valid, input[type=url]:focus.valid, input[type=time].valid, input[type=time]:focus.valid, input[type=date].valid, input[type=date]:focus.valid, input[type=datetime-local].valid, input[type=datetime-local]:focus.valid, input[type=tel].valid, input[type=tel]:focus.valid, input[type=number].valid, input[type=number]:focus.valid, input[type=search].valid, input[type=search]:focus.valid, textarea.materialize-textarea.valid, textarea.materialize-textarea:focus.valid { | ||
6292 | border-bottom: 1px solid #4CAF50; | ||
6293 | box-shadow: 0 1px 0 0 #4CAF50; } | ||
6294 | input[type=text].valid + label:after, input[type=text]:focus.valid + label:after, input[type=password].valid + label:after, input[type=password]:focus.valid + label:after, input[type=email].valid + label:after, input[type=email]:focus.valid + label:after, input[type=url].valid + label:after, input[type=url]:focus.valid + label:after, input[type=time].valid + label:after, input[type=time]:focus.valid + label:after, input[type=date].valid + label:after, input[type=date]:focus.valid + label:after, input[type=datetime-local].valid + label:after, input[type=datetime-local]:focus.valid + label:after, input[type=tel].valid + label:after, input[type=tel]:focus.valid + label:after, input[type=number].valid + label:after, input[type=number]:focus.valid + label:after, input[type=search].valid + label:after, input[type=search]:focus.valid + label:after, textarea.materialize-textarea.valid + label:after, textarea.materialize-textarea:focus.valid + label:after { | ||
6295 | content: attr(data-success); | ||
6296 | color: #4CAF50; | ||
6297 | opacity: 1; } | ||
6298 | input[type=text].invalid, input[type=text]:focus.invalid, input[type=password].invalid, input[type=password]:focus.invalid, input[type=email].invalid, input[type=email]:focus.invalid, input[type=url].invalid, input[type=url]:focus.invalid, input[type=time].invalid, input[type=time]:focus.invalid, input[type=date].invalid, input[type=date]:focus.invalid, input[type=datetime-local].invalid, input[type=datetime-local]:focus.invalid, input[type=tel].invalid, input[type=tel]:focus.invalid, input[type=number].invalid, input[type=number]:focus.invalid, input[type=search].invalid, input[type=search]:focus.invalid, textarea.materialize-textarea.invalid, textarea.materialize-textarea:focus.invalid { | ||
6299 | border-bottom: 1px solid #F44336; | ||
6300 | box-shadow: 0 1px 0 0 #F44336; } | ||
6301 | input[type=text].invalid + label:after, input[type=text]:focus.invalid + label:after, input[type=password].invalid + label:after, input[type=password]:focus.invalid + label:after, input[type=email].invalid + label:after, input[type=email]:focus.invalid + label:after, input[type=url].invalid + label:after, input[type=url]:focus.invalid + label:after, input[type=time].invalid + label:after, input[type=time]:focus.invalid + label:after, input[type=date].invalid + label:after, input[type=date]:focus.invalid + label:after, input[type=datetime-local].invalid + label:after, input[type=datetime-local]:focus.invalid + label:after, input[type=tel].invalid + label:after, input[type=tel]:focus.invalid + label:after, input[type=number].invalid + label:after, input[type=number]:focus.invalid + label:after, input[type=search].invalid + label:after, input[type=search]:focus.invalid + label:after, textarea.materialize-textarea.invalid + label:after, textarea.materialize-textarea:focus.invalid + label:after { | ||
6302 | content: attr(data-error); | ||
6303 | color: #F44336; | ||
6304 | opacity: 1; } | ||
6305 | input[type=text] + label:after, input[type=password] + label:after, input[type=email] + label:after, input[type=url] + label:after, input[type=time] + label:after, input[type=date] + label:after, input[type=datetime-local] + label:after, input[type=tel] + label:after, input[type=number] + label:after, input[type=search] + label:after, textarea.materialize-textarea + label:after { | ||
6306 | display: block; | ||
6307 | content: ""; | ||
6308 | position: absolute; | ||
6309 | top: 65px; | ||
6310 | opacity: 0; | ||
6311 | transition: .2s opacity ease-out, .2s color ease-out; } | ||
6312 | |||
6313 | .input-field { | ||
6314 | position: relative; | ||
6315 | margin-top: 1rem; } | ||
6316 | .input-field label { | ||
6317 | color: #9e9e9e; | ||
6318 | position: absolute; | ||
6319 | top: 0.8rem; | ||
6320 | left: 0.75rem; | ||
6321 | font-size: 1rem; | ||
6322 | cursor: text; | ||
6323 | -webkit-transition: .2s ease-out; | ||
6324 | -moz-transition: .2s ease-out; | ||
6325 | -o-transition: .2s ease-out; | ||
6326 | -ms-transition: .2s ease-out; | ||
6327 | transition: .2s ease-out; } | ||
6328 | .input-field label.active { | ||
6329 | font-size: 0.8rem; | ||
6330 | -webkit-transform: translateY(-140%); | ||
6331 | -moz-transform: translateY(-140%); | ||
6332 | -ms-transform: translateY(-140%); | ||
6333 | -o-transform: translateY(-140%); | ||
6334 | transform: translateY(-140%); } | ||
6335 | .input-field .prefix { | ||
6336 | position: absolute; | ||
6337 | width: 3rem; | ||
6338 | font-size: 2rem; | ||
6339 | -webkit-transition: color .2s; | ||
6340 | -moz-transition: color .2s; | ||
6341 | -o-transition: color .2s; | ||
6342 | -ms-transition: color .2s; | ||
6343 | transition: color .2s; } | ||
6344 | .input-field .prefix.active { | ||
6345 | color: #26a69a; } | ||
6346 | .input-field .prefix ~ input, .input-field .prefix ~ textarea { | ||
6347 | margin-left: 3rem; | ||
6348 | width: 92%; | ||
6349 | width: calc(100% - 3rem); } | ||
6350 | .input-field .prefix ~ textarea { | ||
6351 | padding-top: .8rem; } | ||
6352 | .input-field .prefix ~ label { | ||
6353 | margin-left: 3rem; } | ||
6354 | @media only screen and (max-width : 992px) { | ||
6355 | .input-field .prefix ~ input { | ||
6356 | width: 86%; | ||
6357 | width: calc(100% - 3rem); } } | ||
6358 | @media only screen and (max-width : 600px) { | ||
6359 | .input-field .prefix ~ input { | ||
6360 | width: 80%; | ||
6361 | width: calc(100% - 3rem); } } | ||
6362 | |||
6363 | .input-field input[type=search] { | ||
6364 | display: block; | ||
6365 | line-height: inherit; | ||
6366 | padding-left: 4rem; | ||
6367 | width: calc(100% - 4rem); } | ||
6368 | .input-field input[type=search]:focus { | ||
6369 | background-color: #fff; | ||
6370 | border: 0; | ||
6371 | box-shadow: none; | ||
6372 | color: #444; } | ||
6373 | .input-field input[type=search]:focus + label i, .input-field input[type=search]:focus ~ .mdi-navigation-close, .input-field input[type=search]:focus ~ .material-icons { | ||
6374 | color: #444; } | ||
6375 | .input-field input[type=search] + label { | ||
6376 | left: 1rem; } | ||
6377 | .input-field input[type=search] ~ .mdi-navigation-close, .input-field input[type=search] ~ .material-icons { | ||
6378 | position: absolute; | ||
6379 | top: 0; | ||
6380 | right: 1rem; | ||
6381 | color: transparent; | ||
6382 | cursor: pointer; | ||
6383 | font-size: 2rem; | ||
6384 | transition: .3s color; } | ||
6385 | |||
6386 | textarea { | ||
6387 | width: 100%; | ||
6388 | height: 3rem; | ||
6389 | background-color: transparent; } | ||
6390 | textarea.materialize-textarea { | ||
6391 | overflow-y: hidden; | ||
6392 | /* prevents scroll bar flash */ | ||
6393 | padding: 1.6rem 0; | ||
6394 | /* prevents text jump on Enter keypress */ | ||
6395 | resize: none; | ||
6396 | min-height: 3rem; } | ||
6397 | |||
6398 | .hiddendiv { | ||
6399 | display: none; | ||
6400 | white-space: pre-wrap; | ||
6401 | word-wrap: break-word; | ||
6402 | overflow-wrap: break-word; | ||
6403 | /* future version of deprecated 'word-wrap' */ | ||
6404 | padding-top: 1.2rem; | ||
6405 | /* prevents text jump on Enter keypress */ } | ||
6406 | |||
6407 | /*************** | ||
6408 | Radio Buttons | ||
6409 | ***************/ | ||
6410 | /* Remove default Radio Buttons */ | ||
6411 | [type="radio"]:not(:checked), [type="radio"]:checked { | ||
6412 | position: absolute; | ||
6413 | left: -9999px; | ||
6414 | visibility: hidden; } | ||
6415 | |||
6416 | [type="radio"]:not(:checked) + label, [type="radio"]:checked + label { | ||
6417 | position: relative; | ||
6418 | padding-left: 35px; | ||
6419 | cursor: pointer; | ||
6420 | display: inline-block; | ||
6421 | height: 25px; | ||
6422 | line-height: 25px; | ||
6423 | font-size: 1rem; | ||
6424 | -webkit-transition: .28s ease; | ||
6425 | -moz-transition: .28s ease; | ||
6426 | -o-transition: .28s ease; | ||
6427 | -ms-transition: .28s ease; | ||
6428 | transition: .28s ease; | ||
6429 | -webkit-user-select: none; | ||
6430 | /* webkit (safari, chrome) browsers */ | ||
6431 | -moz-user-select: none; | ||
6432 | /* mozilla browsers */ | ||
6433 | -khtml-user-select: none; | ||
6434 | /* webkit (konqueror) browsers */ | ||
6435 | -ms-user-select: none; | ||
6436 | /* IE10+ */ } | ||
6437 | |||
6438 | [type="radio"] + label:before, [type="radio"] + label:after { | ||
6439 | content: ''; | ||
6440 | position: absolute; | ||
6441 | left: 0; | ||
6442 | top: 0; | ||
6443 | margin: 4px; | ||
6444 | width: 16px; | ||
6445 | height: 16px; | ||
6446 | z-index: 0; | ||
6447 | -webkit-transition: .28s ease; | ||
6448 | -moz-transition: .28s ease; | ||
6449 | -o-transition: .28s ease; | ||
6450 | -ms-transition: .28s ease; | ||
6451 | transition: .28s ease; } | ||
6452 | |||
6453 | /* Unchecked styles */ | ||
6454 | [type="radio"]:not(:checked) + label:before { | ||
6455 | border-radius: 50%; | ||
6456 | border: 2px solid #5a5a5a; } | ||
6457 | |||
6458 | [type="radio"]:not(:checked) + label:after { | ||
6459 | border-radius: 50%; | ||
6460 | border: 2px solid #5a5a5a; | ||
6461 | z-index: -1; | ||
6462 | -webkit-transform: scale(0); | ||
6463 | -moz-transform: scale(0); | ||
6464 | -ms-transform: scale(0); | ||
6465 | -o-transform: scale(0); | ||
6466 | transform: scale(0); } | ||
6467 | |||
6468 | /* Checked styles */ | ||
6469 | [type="radio"]:checked + label:before { | ||
6470 | border-radius: 50%; | ||
6471 | border: 2px solid transparent; } | ||
6472 | |||
6473 | [type="radio"]:checked + label:after { | ||
6474 | border-radius: 50%; | ||
6475 | border: 2px solid #26a69a; | ||
6476 | background-color: #26a69a; | ||
6477 | z-index: 0; | ||
6478 | -webkit-transform: scale(1.02); | ||
6479 | -moz-transform: scale(1.02); | ||
6480 | -ms-transform: scale(1.02); | ||
6481 | -o-transform: scale(1.02); | ||
6482 | transform: scale(1.02); } | ||
6483 | |||
6484 | /* Radio With gap */ | ||
6485 | [type="radio"].with-gap:checked + label:before { | ||
6486 | border-radius: 50%; | ||
6487 | border: 2px solid #26a69a; } | ||
6488 | |||
6489 | [type="radio"].with-gap:checked + label:after { | ||
6490 | border-radius: 50%; | ||
6491 | border: 2px solid #26a69a; | ||
6492 | background-color: #26a69a; | ||
6493 | z-index: 0; | ||
6494 | -webkit-transform: scale(.5); | ||
6495 | -moz-transform: scale(.5); | ||
6496 | -ms-transform: scale(.5); | ||
6497 | -o-transform: scale(.5); | ||
6498 | transform: scale(.5); } | ||
6499 | |||
6500 | /* Disabled Radio With gap */ | ||
6501 | [type="radio"].with-gap:disabled:checked + label:before { | ||
6502 | border: 2px solid rgba(0, 0, 0, 0.26); } | ||
6503 | |||
6504 | [type="radio"].with-gap:disabled:checked + label:after { | ||
6505 | border: none; | ||
6506 | background-color: rgba(0, 0, 0, 0.26); } | ||
6507 | |||
6508 | /* Disabled style */ | ||
6509 | [type="radio"]:disabled:not(:checked) + label:before, [type="radio"]:disabled:checked + label:before { | ||
6510 | background-color: transparent; | ||
6511 | border-color: rgba(0, 0, 0, 0.26); } | ||
6512 | |||
6513 | [type="radio"]:disabled + label { | ||
6514 | color: rgba(0, 0, 0, 0.26); } | ||
6515 | |||
6516 | [type="radio"]:disabled:not(:checked) + label:before { | ||
6517 | border-color: rgba(0, 0, 0, 0.26); } | ||
6518 | |||
6519 | [type="radio"]:disabled:checked + label:after { | ||
6520 | background-color: rgba(0, 0, 0, 0.26); | ||
6521 | border-color: #BDBDBD; } | ||
6522 | |||
6523 | /*************** | ||
6524 | Checkboxes | ||
6525 | ***************/ | ||
6526 | /* CUSTOM CSS CHECKBOXES */ | ||
6527 | form p { | ||
6528 | margin-bottom: 10px; | ||
6529 | text-align: left; } | ||
6530 | |||
6531 | form p:last-child { | ||
6532 | margin-bottom: 0; } | ||
6533 | |||
6534 | /* Remove default checkbox */ | ||
6535 | [type="checkbox"]:not(:checked), [type="checkbox"]:checked { | ||
6536 | position: absolute; | ||
6537 | left: -9999px; | ||
6538 | visibility: hidden; } | ||
6539 | |||
6540 | [type="checkbox"] { | ||
6541 | /* checkbox aspect */ } | ||
6542 | [type="checkbox"] + label { | ||
6543 | position: relative; | ||
6544 | padding-left: 35px; | ||
6545 | cursor: pointer; | ||
6546 | display: inline-block; | ||
6547 | height: 25px; | ||
6548 | line-height: 25px; | ||
6549 | font-size: 1rem; | ||
6550 | -webkit-user-select: none; | ||
6551 | /* webkit (safari, chrome) browsers */ | ||
6552 | -moz-user-select: none; | ||
6553 | /* mozilla browsers */ | ||
6554 | -khtml-user-select: none; | ||
6555 | /* webkit (konqueror) browsers */ | ||
6556 | -ms-user-select: none; | ||
6557 | /* IE10+ */ } | ||
6558 | [type="checkbox"] + label:before { | ||
6559 | content: ''; | ||
6560 | position: absolute; | ||
6561 | top: 0; | ||
6562 | left: 0; | ||
6563 | width: 18px; | ||
6564 | height: 18px; | ||
6565 | z-index: 0; | ||
6566 | border: 2px solid #5a5a5a; | ||
6567 | border-radius: 1px; | ||
6568 | margin-top: 2px; | ||
6569 | -webkit-transition: 0.2s; | ||
6570 | -moz-transition: 0.2s; | ||
6571 | -o-transition: 0.2s; | ||
6572 | -ms-transition: 0.2s; | ||
6573 | transition: 0.2s; } | ||
6574 | [type="checkbox"]:not(:checked):disabled + label:before { | ||
6575 | border: none; | ||
6576 | background-color: rgba(0, 0, 0, 0.26); } | ||
6577 | |||
6578 | [type="checkbox"]:checked + label:before { | ||
6579 | top: -4px; | ||
6580 | left: -3px; | ||
6581 | width: 12px; | ||
6582 | height: 22px; | ||
6583 | border-top: 2px solid transparent; | ||
6584 | border-left: 2px solid transparent; | ||
6585 | border-right: 2px solid #26a69a; | ||
6586 | border-bottom: 2px solid #26a69a; | ||
6587 | -webkit-transform: rotate(40deg); | ||
6588 | -moz-transform: rotate(40deg); | ||
6589 | -ms-transform: rotate(40deg); | ||
6590 | -o-transform: rotate(40deg); | ||
6591 | transform: rotate(40deg); | ||
6592 | -webkit-backface-visibility: hidden; | ||
6593 | -webkit-transform-origin: 100% 100%; | ||
6594 | -moz-transform-origin: 100% 100%; | ||
6595 | -ms-transform-origin: 100% 100%; | ||
6596 | -o-transform-origin: 100% 100%; | ||
6597 | transform-origin: 100% 100%; } | ||
6598 | [type="checkbox"]:checked:disabled + label:before { | ||
6599 | border-right: 2px solid rgba(0, 0, 0, 0.26); | ||
6600 | border-bottom: 2px solid rgba(0, 0, 0, 0.26); } | ||
6601 | |||
6602 | /* Indeterminate checkbox */ | ||
6603 | [type="checkbox"]:indeterminate + label:before { | ||
6604 | left: -10px; | ||
6605 | top: -11px; | ||
6606 | width: 10px; | ||
6607 | height: 22px; | ||
6608 | border-top: none; | ||
6609 | border-left: none; | ||
6610 | border-right: 2px solid #26a69a; | ||
6611 | border-bottom: none; | ||
6612 | -webkit-transform: rotate(90deg); | ||
6613 | -moz-transform: rotate(90deg); | ||
6614 | -ms-transform: rotate(90deg); | ||
6615 | -o-transform: rotate(90deg); | ||
6616 | transform: rotate(90deg); | ||
6617 | -webkit-backface-visibility: hidden; | ||
6618 | -webkit-transform-origin: 100% 100%; | ||
6619 | -moz-transform-origin: 100% 100%; | ||
6620 | -ms-transform-origin: 100% 100%; | ||
6621 | -o-transform-origin: 100% 100%; | ||
6622 | transform-origin: 100% 100%; } | ||
6623 | [type="checkbox"]:indeterminate:disabled + label:before { | ||
6624 | border-right: 2px solid rgba(0, 0, 0, 0.26); | ||
6625 | background-color: transparent; } | ||
6626 | |||
6627 | [type="checkbox"].filled-in + label:after { | ||
6628 | border-radius: 2px; } | ||
6629 | [type="checkbox"].filled-in + label:before, [type="checkbox"].filled-in + label:after { | ||
6630 | content: ''; | ||
6631 | left: 0; | ||
6632 | position: absolute; | ||
6633 | /* .1s delay is for check animation */ | ||
6634 | transition: border .25s, background-color .25s, width .2s .1s, height .2s .1s, top .2s .1s, left .2s .1s; | ||
6635 | z-index: 1; } | ||
6636 | [type="checkbox"].filled-in:not(:checked) + label:before { | ||
6637 | width: 0; | ||
6638 | height: 0; | ||
6639 | border: 3px solid transparent; | ||
6640 | left: 6px; | ||
6641 | top: 10px; | ||
6642 | -webkit-transform: rotateZ(37deg); | ||
6643 | transform: rotateZ(37deg); | ||
6644 | -webkit-transform-origin: 20% 40%; | ||
6645 | transform-origin: 100% 100%; } | ||
6646 | [type="checkbox"].filled-in:not(:checked) + label:after { | ||
6647 | height: 20px; | ||
6648 | width: 20px; | ||
6649 | background-color: transparent; | ||
6650 | border: 2px solid #5a5a5a; | ||
6651 | top: 0px; | ||
6652 | z-index: 0; } | ||
6653 | [type="checkbox"].filled-in:checked + label:before { | ||
6654 | top: 0; | ||
6655 | left: 1px; | ||
6656 | width: 8px; | ||
6657 | height: 13px; | ||
6658 | border-top: 2px solid transparent; | ||
6659 | border-left: 2px solid transparent; | ||
6660 | border-right: 2px solid #fff; | ||
6661 | border-bottom: 2px solid #fff; | ||
6662 | -webkit-transform: rotateZ(37deg); | ||
6663 | transform: rotateZ(37deg); | ||
6664 | -webkit-transform-origin: 100% 100%; | ||
6665 | transform-origin: 100% 100%; } | ||
6666 | [type="checkbox"].filled-in:checked + label:after { | ||
6667 | top: 0px; | ||
6668 | width: 20px; | ||
6669 | height: 20px; | ||
6670 | border: 2px solid #26a69a; | ||
6671 | background-color: #26a69a; | ||
6672 | z-index: 0; } | ||
6673 | [type="checkbox"].filled-in:disabled:not(:checked) + label:before { | ||
6674 | background-color: transparent; | ||
6675 | border: 2px solid transparent; } | ||
6676 | [type="checkbox"].filled-in:disabled:not(:checked) + label:after { | ||
6677 | border-color: transparent; | ||
6678 | background-color: #BDBDBD; } | ||
6679 | [type="checkbox"].filled-in:disabled:checked + label:before { | ||
6680 | background-color: transparent; } | ||
6681 | [type="checkbox"].filled-in:disabled:checked + label:after { | ||
6682 | background-color: #BDBDBD; | ||
6683 | border-color: #BDBDBD; } | ||
6684 | |||
6685 | /*************** | ||
6686 | Switch | ||
6687 | ***************/ | ||
6688 | .switch, .switch * { | ||
6689 | -webkit-user-select: none; | ||
6690 | -moz-user-select: none; | ||
6691 | -khtml-user-select: none; | ||
6692 | -ms-user-select: none; } | ||
6693 | |||
6694 | .switch label { | ||
6695 | cursor: pointer; } | ||
6696 | |||
6697 | .switch label input[type=checkbox] { | ||
6698 | opacity: 0; | ||
6699 | width: 0; | ||
6700 | height: 0; } | ||
6701 | |||
6702 | .switch label input[type=checkbox]:checked + .lever { | ||
6703 | background-color: #84c7c1; } | ||
6704 | |||
6705 | .switch label input[type=checkbox]:checked + .lever:after { | ||
6706 | background-color: #26a69a; } | ||
6707 | |||
6708 | .switch label .lever { | ||
6709 | content: ""; | ||
6710 | display: inline-block; | ||
6711 | position: relative; | ||
6712 | width: 40px; | ||
6713 | height: 15px; | ||
6714 | background-color: #818181; | ||
6715 | border-radius: 15px; | ||
6716 | margin-right: 10px; | ||
6717 | transition: background 0.3s ease; | ||
6718 | vertical-align: middle; | ||
6719 | margin: 0 16px; } | ||
6720 | |||
6721 | .switch label .lever:after { | ||
6722 | content: ""; | ||
6723 | position: absolute; | ||
6724 | display: inline-block; | ||
6725 | width: 21px; | ||
6726 | height: 21px; | ||
6727 | background-color: #F1F1F1; | ||
6728 | border-radius: 21px; | ||
6729 | box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4); | ||
6730 | left: -5px; | ||
6731 | top: -3px; | ||
6732 | transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease; } | ||
6733 | |||
6734 | input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after { | ||
6735 | box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1); } | ||
6736 | |||
6737 | input[type=checkbox]:not(:disabled) ~ .lever:active:after { | ||
6738 | box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08); } | ||
6739 | |||
6740 | .switch label input[type=checkbox]:checked + .lever:after { | ||
6741 | left: 24px; } | ||
6742 | |||
6743 | .switch input[type=checkbox][disabled] + .lever { | ||
6744 | cursor: default; } | ||
6745 | |||
6746 | .switch label input[type=checkbox][disabled] + .lever:after, .switch label input[type=checkbox][disabled]:checked + .lever:after { | ||
6747 | background-color: #BDBDBD; } | ||
6748 | |||
6749 | /*************** | ||
6750 | Select Field | ||
6751 | ***************/ | ||
6752 | .select-label { | ||
6753 | position: absolute; } | ||
6754 | |||
6755 | .select-wrapper { | ||
6756 | position: relative; } | ||
6757 | .select-wrapper input.select-dropdown { | ||
6758 | position: relative; | ||
6759 | cursor: pointer; | ||
6760 | background-color: transparent; | ||
6761 | border: none; | ||
6762 | border-bottom: 1px solid #9e9e9e; | ||
6763 | outline: none; | ||
6764 | height: 3rem; | ||
6765 | line-height: 3rem; | ||
6766 | width: 100%; | ||
6767 | font-size: 1rem; | ||
6768 | margin: 0 0 15px 0; | ||
6769 | padding: 0; | ||
6770 | display: block; } | ||
6771 | .select-wrapper span.caret { | ||
6772 | color: initial; | ||
6773 | position: absolute; | ||
6774 | right: 0; | ||
6775 | top: 16px; | ||
6776 | font-size: 10px; } | ||
6777 | .select-wrapper span.caret.disabled { | ||
6778 | color: rgba(0, 0, 0, 0.26); } | ||
6779 | .select-wrapper + label { | ||
6780 | position: absolute; | ||
6781 | top: -14px; | ||
6782 | font-size: 0.8rem; } | ||
6783 | |||
6784 | select { | ||
6785 | display: none; } | ||
6786 | |||
6787 | select.browser-default { | ||
6788 | display: block; } | ||
6789 | |||
6790 | select:disabled { | ||
6791 | color: rgba(0, 0, 0, 0.3); } | ||
6792 | |||
6793 | .select-wrapper input.select-dropdown:disabled { | ||
6794 | color: rgba(0, 0, 0, 0.3); | ||
6795 | cursor: default; | ||
6796 | -webkit-user-select: none; | ||
6797 | /* webkit (safari, chrome) browsers */ | ||
6798 | -moz-user-select: none; | ||
6799 | /* mozilla browsers */ | ||
6800 | -ms-user-select: none; | ||
6801 | /* IE10+ */ | ||
6802 | border-bottom: 1px solid rgba(0, 0, 0, 0.3); } | ||
6803 | |||
6804 | .select-wrapper i { | ||
6805 | color: rgba(0, 0, 0, 0.3); } | ||
6806 | |||
6807 | .select-dropdown li.disabled { | ||
6808 | color: rgba(0, 0, 0, 0.3); | ||
6809 | background-color: transparent; } | ||
6810 | |||
6811 | /********************* | ||
6812 | File Input | ||
6813 | **********************/ | ||
6814 | .file-field { | ||
6815 | position: relative; } | ||
6816 | .file-field .file-path-wrapper { | ||
6817 | overflow: hidden; | ||
6818 | padding-left: 10px; } | ||
6819 | .file-field input.file-path { | ||
6820 | width: 100%; } | ||
6821 | .file-field .btn, .file-field .btn-large { | ||
6822 | float: left; | ||
6823 | height: 3rem; | ||
6824 | line-height: 3rem; } | ||
6825 | .file-field span { | ||
6826 | cursor: pointer; } | ||
6827 | .file-field input[type=file] { | ||
6828 | position: absolute; | ||
6829 | top: 0; | ||
6830 | right: 0; | ||
6831 | left: 0; | ||
6832 | bottom: 0; | ||
6833 | width: 100%; | ||
6834 | margin: 0; | ||
6835 | padding: 0; | ||
6836 | font-size: 20px; | ||
6837 | cursor: pointer; | ||
6838 | opacity: 0; | ||
6839 | filter: alpha(opacity=0); } | ||
6840 | |||
6841 | /*************** | ||
6842 | Range | ||
6843 | ***************/ | ||
6844 | .range-field { | ||
6845 | position: relative; } | ||
6846 | |||
6847 | input[type=range], input[type=range] + .thumb { | ||
6848 | cursor: pointer; } | ||
6849 | |||
6850 | input[type=range] { | ||
6851 | position: relative; | ||
6852 | background-color: transparent; | ||
6853 | border: none; | ||
6854 | outline: none; | ||
6855 | width: 100%; | ||
6856 | margin: 15px 0px; | ||
6857 | padding: 0; } | ||
6858 | |||
6859 | input[type=range] + .thumb { | ||
6860 | position: absolute; | ||
6861 | border: none; | ||
6862 | height: 0; | ||
6863 | width: 0; | ||
6864 | border-radius: 50%; | ||
6865 | background-color: #26a69a; | ||
6866 | top: 10px; | ||
6867 | margin-left: -6px; | ||
6868 | -webkit-transform-origin: 50% 50%; | ||
6869 | -moz-transform-origin: 50% 50%; | ||
6870 | -ms-transform-origin: 50% 50%; | ||
6871 | -o-transform-origin: 50% 50%; | ||
6872 | transform-origin: 50% 50%; | ||
6873 | -webkit-transform: rotate(-45deg); | ||
6874 | -moz-transform: rotate(-45deg); | ||
6875 | -ms-transform: rotate(-45deg); | ||
6876 | -o-transform: rotate(-45deg); | ||
6877 | transform: rotate(-45deg); } | ||
6878 | input[type=range] + .thumb .value { | ||
6879 | display: block; | ||
6880 | width: 30px; | ||
6881 | text-align: center; | ||
6882 | color: #26a69a; | ||
6883 | font-size: 0; | ||
6884 | -webkit-transform: rotate(45deg); | ||
6885 | -moz-transform: rotate(45deg); | ||
6886 | -ms-transform: rotate(45deg); | ||
6887 | -o-transform: rotate(45deg); | ||
6888 | transform: rotate(45deg); } | ||
6889 | input[type=range] + .thumb.active { | ||
6890 | border-radius: 50% 50% 50% 0; } | ||
6891 | input[type=range] + .thumb.active .value { | ||
6892 | color: #fff; | ||
6893 | margin-left: -1px; | ||
6894 | margin-top: 8px; | ||
6895 | font-size: 10px; } | ||
6896 | |||
6897 | input[type=range]:focus { | ||
6898 | outline: none; } | ||
6899 | |||
6900 | input[type=range] { | ||
6901 | -webkit-appearance: none; } | ||
6902 | |||
6903 | input[type=range]::-webkit-slider-runnable-track { | ||
6904 | height: 3px; | ||
6905 | background: #c2c0c2; | ||
6906 | border: none; } | ||
6907 | |||
6908 | input[type=range]::-webkit-slider-thumb { | ||
6909 | -webkit-appearance: none; | ||
6910 | border: none; | ||
6911 | height: 14px; | ||
6912 | width: 14px; | ||
6913 | border-radius: 50%; | ||
6914 | background-color: #26a69a; | ||
6915 | transform-origin: 50% 50%; | ||
6916 | margin: -5px 0 0 0; | ||
6917 | -webkit-transition: 0.3s; | ||
6918 | -moz-transition: 0.3s; | ||
6919 | -o-transition: 0.3s; | ||
6920 | -ms-transition: 0.3s; | ||
6921 | transition: 0.3s; } | ||
6922 | |||
6923 | input[type=range]:focus::-webkit-slider-runnable-track { | ||
6924 | background: #ccc; } | ||
6925 | |||
6926 | input[type=range] { | ||
6927 | /* fix for FF unable to apply focus style bug */ | ||
6928 | border: 1px solid white; | ||
6929 | /*required for proper track sizing in FF*/ } | ||
6930 | |||
6931 | input[type=range]::-moz-range-track { | ||
6932 | height: 3px; | ||
6933 | background: #ddd; | ||
6934 | border: none; } | ||
6935 | |||
6936 | input[type=range]::-moz-range-thumb { | ||
6937 | border: none; | ||
6938 | height: 14px; | ||
6939 | width: 14px; | ||
6940 | border-radius: 50%; | ||
6941 | background: #26a69a; | ||
6942 | margin-top: -5px; } | ||
6943 | |||
6944 | /*hide the outline behind the border*/ | ||
6945 | input[type=range]:-moz-focusring { | ||
6946 | outline: 1px solid white; | ||
6947 | outline-offset: -1px; } | ||
6948 | |||
6949 | input[type=range]:focus::-moz-range-track { | ||
6950 | background: #ccc; } | ||
6951 | |||
6952 | input[type=range]::-ms-track { | ||
6953 | height: 3px; | ||
6954 | /*remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead */ | ||
6955 | background: transparent; | ||
6956 | /*leave room for the larger thumb to overflow with a transparent border */ | ||
6957 | border-color: transparent; | ||
6958 | border-width: 6px 0; | ||
6959 | /*remove default tick marks*/ | ||
6960 | color: transparent; } | ||
6961 | |||
6962 | input[type=range]::-ms-fill-lower { | ||
6963 | background: #777; } | ||
6964 | |||
6965 | input[type=range]::-ms-fill-upper { | ||
6966 | background: #ddd; } | ||
6967 | |||
6968 | input[type=range]::-ms-thumb { | ||
6969 | border: none; | ||
6970 | height: 14px; | ||
6971 | width: 14px; | ||
6972 | border-radius: 50%; | ||
6973 | background: #26a69a; } | ||
6974 | |||
6975 | input[type=range]:focus::-ms-fill-lower { | ||
6976 | background: #888; } | ||
6977 | |||
6978 | input[type=range]:focus::-ms-fill-upper { | ||
6979 | background: #ccc; } | ||
6980 | |||
6981 | /*************************** | ||
6982 | Text Inputs + Textarea | ||
6983 | ****************************/ | ||
6984 | select { | ||
6985 | background-color: rgba(255, 255, 255, 0.9); | ||
6986 | width: 100%; | ||
6987 | padding: 5px; | ||
6988 | border: 1px solid #f2f2f2; | ||
6989 | border-radius: 2px; | ||
6990 | height: 3rem; } | ||
6991 | |||
6992 | /*************** | ||
6993 | Nav List | ||
6994 | ***************/ | ||
6995 | .table-of-contents.fixed { | ||
6996 | position: fixed; } | ||
6997 | .table-of-contents li { | ||
6998 | padding: 2px 0; } | ||
6999 | .table-of-contents a { | ||
7000 | display: inline-block; | ||
7001 | font-weight: 300; | ||
7002 | color: #757575; | ||
7003 | padding-left: 20px; | ||
7004 | height: 1.5rem; | ||
7005 | line-height: 1.5rem; | ||
7006 | letter-spacing: .4; | ||
7007 | display: inline-block; } | ||
7008 | .table-of-contents a:hover { | ||
7009 | color: #a8a8a8; | ||
7010 | padding-left: 19px; | ||
7011 | border-left: 1px solid #ea4a4f; } | ||
7012 | .table-of-contents a.active { | ||
7013 | font-weight: 500; | ||
7014 | padding-left: 18px; | ||
7015 | border-left: 2px solid #ea4a4f; } | ||
7016 | |||
7017 | .side-nav { | ||
7018 | position: fixed; | ||
7019 | width: 240px; | ||
7020 | left: -105%; | ||
7021 | top: 0; | ||
7022 | margin: 0; | ||
7023 | height: 100%; | ||
7024 | height: calc(100% + 60px); | ||
7025 | height: -moz-calc(100%); | ||
7026 | padding-bottom: 60px; | ||
7027 | background-color: #fff; | ||
7028 | z-index: 999; | ||
7029 | overflow-y: auto; | ||
7030 | will-change: left; } | ||
7031 | .side-nav.right-aligned { | ||
7032 | will-change: right; | ||
7033 | right: -105%; | ||
7034 | left: auto; } | ||
7035 | .side-nav .collapsible { | ||
7036 | margin: 0; } | ||
7037 | .side-nav li { | ||
7038 | float: none; | ||
7039 | padding: 0 15px; } | ||
7040 | .side-nav li:hover, .side-nav li.active { | ||
7041 | background-color: #ddd; } | ||
7042 | .side-nav a { | ||
7043 | color: #444; | ||
7044 | display: block; | ||
7045 | font-size: 1rem; | ||
7046 | height: 64px; | ||
7047 | line-height: 64px; | ||
7048 | padding: 0 15px; } | ||
7049 | |||
7050 | .drag-target { | ||
7051 | height: 100%; | ||
7052 | width: 10px; | ||
7053 | position: fixed; | ||
7054 | top: 0; | ||
7055 | z-index: 998; } | ||
7056 | |||
7057 | .side-nav.fixed a { | ||
7058 | display: block; | ||
7059 | padding: 0 15px; | ||
7060 | color: #444; } | ||
7061 | |||
7062 | .side-nav.fixed { | ||
7063 | left: 0; | ||
7064 | position: fixed; } | ||
7065 | .side-nav.fixed.right-aligned { | ||
7066 | right: 0; | ||
7067 | left: auto; } | ||
7068 | |||
7069 | @media only screen and (max-width : 992px) { | ||
7070 | .side-nav.fixed { | ||
7071 | left: -105%; } | ||
7072 | .side-nav.fixed.right-aligned { | ||
7073 | right: -105%; | ||
7074 | left: auto; } } | ||
7075 | |||
7076 | .side-nav .collapsible-body li.active, .side-nav.fixed .collapsible-body li.active { | ||
7077 | background-color: #ee6e73; } | ||
7078 | .side-nav .collapsible-body li.active a, .side-nav.fixed .collapsible-body li.active a { | ||
7079 | color: #fff; } | ||
7080 | |||
7081 | #sidenav-overlay { | ||
7082 | position: fixed; | ||
7083 | top: 0; | ||
7084 | left: 0; | ||
7085 | right: 0; | ||
7086 | height: 120vh; | ||
7087 | background-color: rgba(0, 0, 0, 0.5); | ||
7088 | z-index: 997; | ||
7089 | will-change: opacity; } | ||
7090 | |||
7091 | /* | ||
7092 | @license | ||
7093 | Copyright (c) 2014 The Polymer Project Authors. All rights reserved. | ||
7094 | This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt | ||
7095 | The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt | ||
7096 | The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt | ||
7097 | Code distributed by Google as part of the polymer project is also | ||
7098 | subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt | ||
7099 | */ | ||
7100 | /**************************/ | ||
7101 | /* STYLES FOR THE SPINNER */ | ||
7102 | /**************************/ | ||
7103 | /* | ||
7104 | * Constants: | ||
7105 | * STROKEWIDTH = 3px | ||
7106 | * ARCSIZE = 270 degrees (amount of circle the arc takes up) | ||
7107 | * ARCTIME = 1333ms (time it takes to expand and contract arc) | ||
7108 | * ARCSTARTROT = 216 degrees (how much the start location of the arc | ||
7109 | * should rotate each time, 216 gives us a | ||
7110 | * 5 pointed star shape (it's 360/5 * 3). | ||
7111 | * For a 7 pointed star, we might do | ||
7112 | * 360/7 * 3 = 154.286) | ||
7113 | * CONTAINERWIDTH = 28px | ||
7114 | * SHRINK_TIME = 400ms | ||
7115 | */ | ||
7116 | .preloader-wrapper { | ||
7117 | display: inline-block; | ||
7118 | position: relative; | ||
7119 | width: 48px; | ||
7120 | height: 48px; } | ||
7121 | .preloader-wrapper.small { | ||
7122 | width: 36px; | ||
7123 | height: 36px; } | ||
7124 | .preloader-wrapper.big { | ||
7125 | width: 64px; | ||
7126 | height: 64px; } | ||
7127 | .preloader-wrapper.active { | ||
7128 | /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */ | ||
7129 | -webkit-animation: container-rotate 1568ms linear infinite; | ||
7130 | animation: container-rotate 1568ms linear infinite; } | ||
7131 | |||
7132 | @-webkit-keyframes container-rotate { | ||
7133 | to { | ||
7134 | -webkit-transform: rotate(360deg); } } | ||
7135 | |||
7136 | @keyframes container-rotate { | ||
7137 | to { | ||
7138 | transform: rotate(360deg); } } | ||
7139 | |||
7140 | .spinner-layer { | ||
7141 | position: absolute; | ||
7142 | width: 100%; | ||
7143 | height: 100%; | ||
7144 | opacity: 0; | ||
7145 | border-color: #26a69a; } | ||
7146 | |||
7147 | .spinner-blue, .spinner-blue-only { | ||
7148 | border-color: #4285f4; } | ||
7149 | |||
7150 | .spinner-red, .spinner-red-only { | ||
7151 | border-color: #db4437; } | ||
7152 | |||
7153 | .spinner-yellow, .spinner-yellow-only { | ||
7154 | border-color: #f4b400; } | ||
7155 | |||
7156 | .spinner-green, .spinner-green-only { | ||
7157 | border-color: #0f9d58; } | ||
7158 | |||
7159 | /** | ||
7160 | * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee): | ||
7161 | * | ||
7162 | * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't | ||
7163 | * guarantee that the animation will start _exactly_ after that value. So we avoid using | ||
7164 | * animation-delay and instead set custom keyframes for each color (as redundant as it | ||
7165 | * seems). | ||
7166 | * | ||
7167 | * We write out each animation in full (instead of separating animation-name, | ||
7168 | * animation-duration, etc.) because under the polyfill, Safari does not recognize those | ||
7169 | * specific properties properly, treats them as -webkit-animation, and overrides the | ||
7170 | * other animation rules. See https://github.com/Polymer/platform/issues/53. | ||
7171 | */ | ||
7172 | .active .spinner-layer.spinner-blue { | ||
7173 | /* durations: 4 * ARCTIME */ | ||
7174 | -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; | ||
7175 | animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } | ||
7176 | |||
7177 | .active .spinner-layer.spinner-red { | ||
7178 | /* durations: 4 * ARCTIME */ | ||
7179 | -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; | ||
7180 | animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } | ||
7181 | |||
7182 | .active .spinner-layer.spinner-yellow { | ||
7183 | /* durations: 4 * ARCTIME */ | ||
7184 | -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; | ||
7185 | animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } | ||
7186 | |||
7187 | .active .spinner-layer.spinner-green { | ||
7188 | /* durations: 4 * ARCTIME */ | ||
7189 | -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; | ||
7190 | animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } | ||
7191 | |||
7192 | .active .spinner-layer, .active .spinner-layer.spinner-blue-only, .active .spinner-layer.spinner-red-only, .active .spinner-layer.spinner-yellow-only, .active .spinner-layer.spinner-green-only { | ||
7193 | /* durations: 4 * ARCTIME */ | ||
7194 | opacity: 1; | ||
7195 | -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; | ||
7196 | animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } | ||
7197 | |||
7198 | @-webkit-keyframes fill-unfill-rotate { | ||
7199 | /* 0.5 * ARCSIZE */ | ||
7200 | /* 1 * ARCSIZE */ | ||
7201 | /* 1.5 * ARCSIZE */ | ||
7202 | /* 2 * ARCSIZE */ | ||
7203 | /* 2.5 * ARCSIZE */ | ||
7204 | /* 3 * ARCSIZE */ | ||
7205 | /* 3.5 * ARCSIZE */ | ||
7206 | /* 4 * ARCSIZE */ | ||
7207 | 12.5% { | ||
7208 | -webkit-transform: rotate(135deg); } | ||
7209 | |||
7210 | 25% { | ||
7211 | -webkit-transform: rotate(270deg); } | ||
7212 | |||
7213 | 37.5% { | ||
7214 | -webkit-transform: rotate(405deg); } | ||
7215 | |||
7216 | 50% { | ||
7217 | -webkit-transform: rotate(540deg); } | ||
7218 | |||
7219 | 62.5% { | ||
7220 | -webkit-transform: rotate(675deg); } | ||
7221 | |||
7222 | 75% { | ||
7223 | -webkit-transform: rotate(810deg); } | ||
7224 | |||
7225 | 87.5% { | ||
7226 | -webkit-transform: rotate(945deg); } | ||
7227 | |||
7228 | to { | ||
7229 | -webkit-transform: rotate(1080deg); } } | ||
7230 | |||
7231 | @keyframes fill-unfill-rotate { | ||
7232 | /* 0.5 * ARCSIZE */ | ||
7233 | /* 1 * ARCSIZE */ | ||
7234 | /* 1.5 * ARCSIZE */ | ||
7235 | /* 2 * ARCSIZE */ | ||
7236 | /* 2.5 * ARCSIZE */ | ||
7237 | /* 3 * ARCSIZE */ | ||
7238 | /* 3.5 * ARCSIZE */ | ||
7239 | /* 4 * ARCSIZE */ | ||
7240 | 12.5% { | ||
7241 | transform: rotate(135deg); } | ||
7242 | |||
7243 | 25% { | ||
7244 | transform: rotate(270deg); } | ||
7245 | |||
7246 | 37.5% { | ||
7247 | transform: rotate(405deg); } | ||
7248 | |||
7249 | 50% { | ||
7250 | transform: rotate(540deg); } | ||
7251 | |||
7252 | 62.5% { | ||
7253 | transform: rotate(675deg); } | ||
7254 | |||
7255 | 75% { | ||
7256 | transform: rotate(810deg); } | ||
7257 | |||
7258 | 87.5% { | ||
7259 | transform: rotate(945deg); } | ||
7260 | |||
7261 | to { | ||
7262 | transform: rotate(1080deg); } } | ||
7263 | |||
7264 | @-webkit-keyframes blue-fade-in-out { | ||
7265 | from { | ||
7266 | opacity: 1; } | ||
7267 | |||
7268 | 25% { | ||
7269 | opacity: 1; } | ||
7270 | |||
7271 | 26% { | ||
7272 | opacity: 0; } | ||
7273 | |||
7274 | 89% { | ||
7275 | opacity: 0; } | ||
7276 | |||
7277 | 90% { | ||
7278 | opacity: 1; } | ||
7279 | |||
7280 | 100% { | ||
7281 | opacity: 1; } } | ||
7282 | |||
7283 | @keyframes blue-fade-in-out { | ||
7284 | from { | ||
7285 | opacity: 1; } | ||
7286 | |||
7287 | 25% { | ||
7288 | opacity: 1; } | ||
7289 | |||
7290 | 26% { | ||
7291 | opacity: 0; } | ||
7292 | |||
7293 | 89% { | ||
7294 | opacity: 0; } | ||
7295 | |||
7296 | 90% { | ||
7297 | opacity: 1; } | ||
7298 | |||
7299 | 100% { | ||
7300 | opacity: 1; } } | ||
7301 | |||
7302 | @-webkit-keyframes red-fade-in-out { | ||
7303 | from { | ||
7304 | opacity: 0; } | ||
7305 | |||
7306 | 15% { | ||
7307 | opacity: 0; } | ||
7308 | |||
7309 | 25% { | ||
7310 | opacity: 1; } | ||
7311 | |||
7312 | 50% { | ||
7313 | opacity: 1; } | ||
7314 | |||
7315 | 51% { | ||
7316 | opacity: 0; } } | ||
7317 | |||
7318 | @keyframes red-fade-in-out { | ||
7319 | from { | ||
7320 | opacity: 0; } | ||
7321 | |||
7322 | 15% { | ||
7323 | opacity: 0; } | ||
7324 | |||
7325 | 25% { | ||
7326 | opacity: 1; } | ||
7327 | |||
7328 | 50% { | ||
7329 | opacity: 1; } | ||
7330 | |||
7331 | 51% { | ||
7332 | opacity: 0; } } | ||
7333 | |||
7334 | @-webkit-keyframes yellow-fade-in-out { | ||
7335 | from { | ||
7336 | opacity: 0; } | ||
7337 | |||
7338 | 40% { | ||
7339 | opacity: 0; } | ||
7340 | |||
7341 | 50% { | ||
7342 | opacity: 1; } | ||
7343 | |||
7344 | 75% { | ||
7345 | opacity: 1; } | ||
7346 | |||
7347 | 76% { | ||
7348 | opacity: 0; } } | ||
7349 | |||
7350 | @keyframes yellow-fade-in-out { | ||
7351 | from { | ||
7352 | opacity: 0; } | ||
7353 | |||
7354 | 40% { | ||
7355 | opacity: 0; } | ||
7356 | |||
7357 | 50% { | ||
7358 | opacity: 1; } | ||
7359 | |||
7360 | 75% { | ||
7361 | opacity: 1; } | ||
7362 | |||
7363 | 76% { | ||
7364 | opacity: 0; } } | ||
7365 | |||
7366 | @-webkit-keyframes green-fade-in-out { | ||
7367 | from { | ||
7368 | opacity: 0; } | ||
7369 | |||
7370 | 65% { | ||
7371 | opacity: 0; } | ||
7372 | |||
7373 | 75% { | ||
7374 | opacity: 1; } | ||
7375 | |||
7376 | 90% { | ||
7377 | opacity: 1; } | ||
7378 | |||
7379 | 100% { | ||
7380 | opacity: 0; } } | ||
7381 | |||
7382 | @keyframes green-fade-in-out { | ||
7383 | from { | ||
7384 | opacity: 0; } | ||
7385 | |||
7386 | 65% { | ||
7387 | opacity: 0; } | ||
7388 | |||
7389 | 75% { | ||
7390 | opacity: 1; } | ||
7391 | |||
7392 | 90% { | ||
7393 | opacity: 1; } | ||
7394 | |||
7395 | 100% { | ||
7396 | opacity: 0; } } | ||
7397 | |||
7398 | /** | ||
7399 | * Patch the gap that appear between the two adjacent div.circle-clipper while the | ||
7400 | * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11). | ||
7401 | */ | ||
7402 | .gap-patch { | ||
7403 | position: absolute; | ||
7404 | top: 0; | ||
7405 | left: 45%; | ||
7406 | width: 10%; | ||
7407 | height: 100%; | ||
7408 | overflow: hidden; | ||
7409 | border-color: inherit; } | ||
7410 | |||
7411 | .gap-patch .circle { | ||
7412 | width: 1000%; | ||
7413 | left: -450%; } | ||
7414 | |||
7415 | .circle-clipper { | ||
7416 | display: inline-block; | ||
7417 | position: relative; | ||
7418 | width: 50%; | ||
7419 | height: 100%; | ||
7420 | overflow: hidden; | ||
7421 | border-color: inherit; } | ||
7422 | .circle-clipper .circle { | ||
7423 | width: 200%; | ||
7424 | height: 100%; | ||
7425 | border-width: 3px; | ||
7426 | /* STROKEWIDTH */ | ||
7427 | border-style: solid; | ||
7428 | border-color: inherit; | ||
7429 | border-bottom-color: transparent !important; | ||
7430 | border-radius: 50%; | ||
7431 | -webkit-animation: none; | ||
7432 | animation: none; | ||
7433 | position: absolute; | ||
7434 | top: 0; | ||
7435 | right: 0; | ||
7436 | bottom: 0; } | ||
7437 | .circle-clipper.left .circle { | ||
7438 | left: 0; | ||
7439 | border-right-color: transparent !important; | ||
7440 | -webkit-transform: rotate(129deg); | ||
7441 | transform: rotate(129deg); } | ||
7442 | .circle-clipper.right .circle { | ||
7443 | left: -100%; | ||
7444 | border-left-color: transparent !important; | ||
7445 | -webkit-transform: rotate(-129deg); | ||
7446 | transform: rotate(-129deg); } | ||
7447 | |||
7448 | .active .circle-clipper.left .circle { | ||
7449 | /* duration: ARCTIME */ | ||
7450 | -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; | ||
7451 | animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } | ||
7452 | |||
7453 | .active .circle-clipper.right .circle { | ||
7454 | /* duration: ARCTIME */ | ||
7455 | -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; | ||
7456 | animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } | ||
7457 | |||
7458 | @-webkit-keyframes left-spin { | ||
7459 | from { | ||
7460 | -webkit-transform: rotate(130deg); } | ||
7461 | |||
7462 | 50% { | ||
7463 | -webkit-transform: rotate(-5deg); } | ||
7464 | |||
7465 | to { | ||
7466 | -webkit-transform: rotate(130deg); } } | ||
7467 | |||
7468 | @keyframes left-spin { | ||
7469 | from { | ||
7470 | transform: rotate(130deg); } | ||
7471 | |||
7472 | 50% { | ||
7473 | transform: rotate(-5deg); } | ||
7474 | |||
7475 | to { | ||
7476 | transform: rotate(130deg); } } | ||
7477 | |||
7478 | @-webkit-keyframes right-spin { | ||
7479 | from { | ||
7480 | -webkit-transform: rotate(-130deg); } | ||
7481 | |||
7482 | 50% { | ||
7483 | -webkit-transform: rotate(5deg); } | ||
7484 | |||
7485 | to { | ||
7486 | -webkit-transform: rotate(-130deg); } } | ||
7487 | |||
7488 | @keyframes right-spin { | ||
7489 | from { | ||
7490 | transform: rotate(-130deg); } | ||
7491 | |||
7492 | 50% { | ||
7493 | transform: rotate(5deg); } | ||
7494 | |||
7495 | to { | ||
7496 | transform: rotate(-130deg); } } | ||
7497 | |||
7498 | #spinnerContainer.cooldown { | ||
7499 | /* duration: SHRINK_TIME */ | ||
7500 | -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); | ||
7501 | animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1); } | ||
7502 | |||
7503 | @-webkit-keyframes fade-out { | ||
7504 | from { | ||
7505 | opacity: 1; } | ||
7506 | |||
7507 | to { | ||
7508 | opacity: 0; } } | ||
7509 | |||
7510 | @keyframes fade-out { | ||
7511 | from { | ||
7512 | opacity: 1; } | ||
7513 | |||
7514 | to { | ||
7515 | opacity: 0; } } | ||
7516 | |||
7517 | .slider { | ||
7518 | position: relative; | ||
7519 | height: 400px; | ||
7520 | width: 100%; } | ||
7521 | .slider.fullscreen { | ||
7522 | height: 100%; | ||
7523 | width: 100%; | ||
7524 | position: absolute; | ||
7525 | top: 0; | ||
7526 | left: 0; | ||
7527 | right: 0; | ||
7528 | bottom: 0; } | ||
7529 | .slider.fullscreen ul.slides { | ||
7530 | height: 100%; } | ||
7531 | .slider.fullscreen ul.indicators { | ||
7532 | z-index: 2; | ||
7533 | bottom: 30px; } | ||
7534 | .slider .slides { | ||
7535 | background-color: #9e9e9e; | ||
7536 | margin: 0; | ||
7537 | height: 400px; } | ||
7538 | .slider .slides li { | ||
7539 | opacity: 0; | ||
7540 | position: absolute; | ||
7541 | top: 0; | ||
7542 | left: 0; | ||
7543 | z-index: 1; | ||
7544 | width: 100%; | ||
7545 | height: inherit; | ||
7546 | overflow: hidden; } | ||
7547 | .slider .slides li img { | ||
7548 | height: 100%; | ||
7549 | width: 100%; | ||
7550 | background-size: cover; | ||
7551 | background-position: center; } | ||
7552 | .slider .slides li .caption { | ||
7553 | color: #fff; | ||
7554 | position: absolute; | ||
7555 | top: 15%; | ||
7556 | left: 15%; | ||
7557 | width: 70%; | ||
7558 | opacity: 0; } | ||
7559 | .slider .slides li .caption p { | ||
7560 | color: #e0e0e0; } | ||
7561 | .slider .slides li.active { | ||
7562 | z-index: 2; } | ||
7563 | .slider .indicators { | ||
7564 | position: absolute; | ||
7565 | text-align: center; | ||
7566 | left: 0; | ||
7567 | right: 0; | ||
7568 | bottom: 0; | ||
7569 | margin: 0; } | ||
7570 | .slider .indicators .indicator-item { | ||
7571 | display: inline-block; | ||
7572 | position: relative; | ||
7573 | cursor: pointer; | ||
7574 | height: 16px; | ||
7575 | width: 16px; | ||
7576 | margin: 0 12px; | ||
7577 | background-color: #e0e0e0; | ||
7578 | -webkit-transition: background-color .3s; | ||
7579 | -moz-transition: background-color .3s; | ||
7580 | -o-transition: background-color .3s; | ||
7581 | -ms-transition: background-color .3s; | ||
7582 | transition: background-color .3s; | ||
7583 | border-radius: 50%; } | ||
7584 | .slider .indicators .indicator-item.active { | ||
7585 | background-color: #4CAF50; } | ||
7586 | |||
7587 | /* ========================================================================== | ||
7588 | $BASE-PICKER | ||
7589 | ========================================================================== */ | ||
7590 | /** | ||
7591 | * Note: the root picker element should *NOT* be styled more than what's here. | ||
7592 | */ | ||
7593 | .picker { | ||
7594 | font-size: 16px; | ||
7595 | text-align: left; | ||
7596 | line-height: 1.2; | ||
7597 | color: #000000; | ||
7598 | position: absolute; | ||
7599 | z-index: 10000; | ||
7600 | -webkit-user-select: none; | ||
7601 | -moz-user-select: none; | ||
7602 | -ms-user-select: none; | ||
7603 | user-select: none; } | ||
7604 | |||
7605 | /** | ||
7606 | * The picker input element. | ||
7607 | */ | ||
7608 | .picker__input { | ||
7609 | cursor: default; } | ||
7610 | |||
7611 | /** | ||
7612 | * When the picker is opened, the input element is "activated". | ||
7613 | */ | ||
7614 | .picker__input.picker__input--active { | ||
7615 | border-color: #0089ec; } | ||
7616 | |||
7617 | /** | ||
7618 | * The holder is the only "scrollable" top-level container element. | ||
7619 | */ | ||
7620 | .picker__holder { | ||
7621 | width: 100%; | ||
7622 | overflow-y: auto; | ||
7623 | -webkit-overflow-scrolling: touch; } | ||
7624 | |||
7625 | /*! | ||
7626 | * Default mobile-first, responsive styling for pickadate.js | ||
7627 | * Demo: http://amsul.github.io/pickadate.js | ||
7628 | */ | ||
7629 | /** | ||
7630 | * Note: the root picker element should *NOT* be styled more than what's here. | ||
7631 | */ | ||
7632 | /** | ||
7633 | * Make the holder and frame fullscreen. | ||
7634 | */ | ||
7635 | .picker__holder, .picker__frame { | ||
7636 | bottom: 0; | ||
7637 | left: 0; | ||
7638 | right: 0; | ||
7639 | top: 100%; } | ||
7640 | |||
7641 | /** | ||
7642 | * The holder should overlay the entire screen. | ||
7643 | */ | ||
7644 | .picker__holder { | ||
7645 | position: fixed; | ||
7646 | -webkit-transition: background 0.15s ease-out, top 0s 0.15s; | ||
7647 | -moz-transition: background 0.15s ease-out, top 0s 0.15s; | ||
7648 | transition: background 0.15s ease-out, top 0s 0.15s; | ||
7649 | -webkit-backface-visibility: hidden; } | ||
7650 | |||
7651 | /** | ||
7652 | * The frame that bounds the box contents of the picker. | ||
7653 | */ | ||
7654 | .picker__frame { | ||
7655 | position: absolute; | ||
7656 | margin: 0 auto; | ||
7657 | min-width: 256px; | ||
7658 | width: 300px; | ||
7659 | max-height: 350px; | ||
7660 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; | ||
7661 | filter: alpha(opacity=0); | ||
7662 | -moz-opacity: 0; | ||
7663 | opacity: 0; | ||
7664 | -webkit-transition: all 0.15s ease-out; | ||
7665 | -moz-transition: all 0.15s ease-out; | ||
7666 | transition: all 0.15s ease-out; } | ||
7667 | |||
7668 | @media (min-height: 28.875em) { | ||
7669 | .picker__frame { | ||
7670 | overflow: visible; | ||
7671 | top: auto; | ||
7672 | bottom: -100%; | ||
7673 | max-height: 80%; } } | ||
7674 | |||
7675 | @media (min-height: 40.125em) { | ||
7676 | .picker__frame { | ||
7677 | margin-bottom: 7.5%; } } | ||
7678 | |||
7679 | /** | ||
7680 | * The wrapper sets the stage to vertically align the box contents. | ||
7681 | */ | ||
7682 | .picker__wrap { | ||
7683 | display: table; | ||
7684 | width: 100%; | ||
7685 | height: 100%; } | ||
7686 | |||
7687 | @media (min-height: 28.875em) { | ||
7688 | .picker__wrap { | ||
7689 | display: block; } } | ||
7690 | |||
7691 | /** | ||
7692 | * The box contains all the picker contents. | ||
7693 | */ | ||
7694 | .picker__box { | ||
7695 | background: #ffffff; | ||
7696 | display: table-cell; | ||
7697 | vertical-align: middle; } | ||
7698 | |||
7699 | @media (min-height: 28.875em) { | ||
7700 | .picker__box { | ||
7701 | display: block; | ||
7702 | border: 1px solid #777777; | ||
7703 | border-top-color: #898989; | ||
7704 | border-bottom-width: 0; | ||
7705 | -webkit-border-radius: 5px 5px 0 0; | ||
7706 | -moz-border-radius: 5px 5px 0 0; | ||
7707 | border-radius: 5px 5px 0 0; | ||
7708 | -webkit-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); | ||
7709 | -moz-box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); | ||
7710 | box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24); } } | ||
7711 | |||
7712 | /** | ||
7713 | * When the picker opens... | ||
7714 | */ | ||
7715 | .picker--opened .picker__holder { | ||
7716 | top: 0; | ||
7717 | background: transparent; | ||
7718 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)"; | ||
7719 | zoom: 1; | ||
7720 | background: rgba(0, 0, 0, 0.32); | ||
7721 | -webkit-transition: background 0.15s ease-out; | ||
7722 | -moz-transition: background 0.15s ease-out; | ||
7723 | transition: background 0.15s ease-out; } | ||
7724 | |||
7725 | .picker--opened .picker__frame { | ||
7726 | top: 0; | ||
7727 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; | ||
7728 | filter: alpha(opacity=100); | ||
7729 | -moz-opacity: 1; | ||
7730 | opacity: 1; } | ||
7731 | |||
7732 | @media (min-height: 35.875em) { | ||
7733 | .picker--opened .picker__frame { | ||
7734 | top: 10%; | ||
7735 | bottom: 20% auto; } } | ||
7736 | |||
7737 | /** | ||
7738 | * For `large` screens, transform into an inline picker. | ||
7739 | */ | ||
7740 | /* ========================================================================== | ||
7741 | CUSTOM MATERIALIZE STYLES | ||
7742 | ========================================================================== */ | ||
7743 | .picker__input.picker__input--active { | ||
7744 | border-color: #E3F2FD; } | ||
7745 | |||
7746 | .picker__frame { | ||
7747 | margin: 0 auto; | ||
7748 | max-width: 325px; } | ||
7749 | |||
7750 | @media (min-height: 38.875em) { | ||
7751 | .picker--opened .picker__frame { | ||
7752 | top: 10%; | ||
7753 | bottom: auto; } } | ||
7754 | |||
7755 | /* ========================================================================== | ||
7756 | $BASE-DATE-PICKER | ||
7757 | ========================================================================== */ | ||
7758 | /** | ||
7759 | * The picker box. | ||
7760 | */ | ||
7761 | .picker__box { | ||
7762 | padding: 0 1em; } | ||
7763 | |||
7764 | /** | ||
7765 | * The header containing the month and year stuff. | ||
7766 | */ | ||
7767 | .picker__header { | ||
7768 | text-align: center; | ||
7769 | position: relative; | ||
7770 | margin-top: .75em; } | ||
7771 | |||
7772 | /** | ||
7773 | * The month and year labels. | ||
7774 | */ | ||
7775 | .picker__month, .picker__year { | ||
7776 | display: inline-block; | ||
7777 | margin-left: .25em; | ||
7778 | margin-right: .25em; } | ||
7779 | |||
7780 | /** | ||
7781 | * The month and year selectors. | ||
7782 | */ | ||
7783 | .picker__select--month, .picker__select--year { | ||
7784 | height: 2em; | ||
7785 | padding: 0; | ||
7786 | margin-left: .25em; | ||
7787 | margin-right: .25em; } | ||
7788 | |||
7789 | .picker__select--month.browser-default { | ||
7790 | display: inline; | ||
7791 | background-color: #FFFFFF; | ||
7792 | width: 40%; } | ||
7793 | |||
7794 | .picker__select--year.browser-default { | ||
7795 | display: inline; | ||
7796 | background-color: #FFFFFF; | ||
7797 | width: 25%; } | ||
7798 | |||
7799 | .picker__select--month:focus, .picker__select--year:focus { | ||
7800 | border-color: rgba(0, 0, 0, 0.05); } | ||
7801 | |||
7802 | /** | ||
7803 | * The month navigation buttons. | ||
7804 | */ | ||
7805 | .picker__nav--prev, .picker__nav--next { | ||
7806 | position: absolute; | ||
7807 | padding: .5em 1.25em; | ||
7808 | width: 1em; | ||
7809 | height: 1em; | ||
7810 | box-sizing: content-box; | ||
7811 | top: -0.25em; } | ||
7812 | |||
7813 | .picker__nav--prev { | ||
7814 | left: -1em; | ||
7815 | padding-right: 1.25em; } | ||
7816 | |||
7817 | .picker__nav--next { | ||
7818 | right: -1em; | ||
7819 | padding-left: 1.25em; } | ||
7820 | |||
7821 | .picker__nav--disabled, .picker__nav--disabled:hover, .picker__nav--disabled:before, .picker__nav--disabled:before:hover { | ||
7822 | cursor: default; | ||
7823 | background: none; | ||
7824 | border-right-color: #f5f5f5; | ||
7825 | border-left-color: #f5f5f5; } | ||
7826 | |||
7827 | /** | ||
7828 | * The calendar table of dates | ||
7829 | */ | ||
7830 | .picker__table { | ||
7831 | text-align: center; | ||
7832 | border-collapse: collapse; | ||
7833 | border-spacing: 0; | ||
7834 | table-layout: fixed; | ||
7835 | font-size: 1rem; | ||
7836 | width: 100%; | ||
7837 | margin-top: .75em; | ||
7838 | margin-bottom: .5em; } | ||
7839 | |||
7840 | .picker__table th, .picker__table td { | ||
7841 | text-align: center; } | ||
7842 | |||
7843 | .picker__table td { | ||
7844 | margin: 0; | ||
7845 | padding: 0; } | ||
7846 | |||
7847 | /** | ||
7848 | * The weekday labels | ||
7849 | */ | ||
7850 | .picker__weekday { | ||
7851 | width: 14.285714286%; | ||
7852 | font-size: .75em; | ||
7853 | padding-bottom: .25em; | ||
7854 | color: #999999; | ||
7855 | font-weight: 500; | ||
7856 | /* Increase the spacing a tad */ } | ||
7857 | |||
7858 | @media (min-height: 33.875em) { | ||
7859 | .picker__weekday { | ||
7860 | padding-bottom: .5em; } } | ||
7861 | |||
7862 | /** | ||
7863 | * The days on the calendar | ||
7864 | */ | ||
7865 | .picker__day--today { | ||
7866 | position: relative; | ||
7867 | color: #595959; | ||
7868 | letter-spacing: -.3; | ||
7869 | padding: .75rem 0; | ||
7870 | font-weight: 400; | ||
7871 | border: 1px solid transparent; } | ||
7872 | |||
7873 | .picker__day--disabled:before { | ||
7874 | border-top-color: #aaaaaa; } | ||
7875 | |||
7876 | .picker__day--infocus:hover { | ||
7877 | cursor: pointer; | ||
7878 | color: #000; | ||
7879 | font-weight: 500; } | ||
7880 | |||
7881 | .picker__day--outfocus { | ||
7882 | display: none; | ||
7883 | padding: .75rem 0; | ||
7884 | color: #fff; } | ||
7885 | |||
7886 | .picker__day--outfocus:hover { | ||
7887 | cursor: pointer; | ||
7888 | color: #dddddd; | ||
7889 | font-weight: 500; } | ||
7890 | |||
7891 | .picker__day--highlighted:hover, .picker--focused .picker__day--highlighted { | ||
7892 | cursor: pointer; } | ||
7893 | |||
7894 | .picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { | ||
7895 | border-radius: 50%; | ||
7896 | -webkit-transform: scale(.75); | ||
7897 | -moz-transform: scale(.75); | ||
7898 | -ms-transform: scale(.75); | ||
7899 | -o-transform: scale(.75); | ||
7900 | transform: scale(.75); | ||
7901 | background: #0089ec; | ||
7902 | color: #ffffff; } | ||
7903 | |||
7904 | .picker__day--disabled, .picker__day--disabled:hover, .picker--focused .picker__day--disabled { | ||
7905 | background: #f5f5f5; | ||
7906 | border-color: #f5f5f5; | ||
7907 | color: #dddddd; | ||
7908 | cursor: default; } | ||
7909 | |||
7910 | .picker__day--highlighted.picker__day--disabled, .picker__day--highlighted.picker__day--disabled:hover { | ||
7911 | background: #bbbbbb; } | ||
7912 | |||
7913 | /** | ||
7914 | * The footer containing the "today", "clear", and "close" buttons. | ||
7915 | */ | ||
7916 | .picker__footer { | ||
7917 | text-align: center; | ||
7918 | display: flex; | ||
7919 | align-items: center; | ||
7920 | justify-content: space-between; } | ||
7921 | |||
7922 | .picker__button--today, .picker__button--clear, .picker__button--close { | ||
7923 | border: 1px solid #ffffff; | ||
7924 | background: #ffffff; | ||
7925 | font-size: .8em; | ||
7926 | padding: .66em 0; | ||
7927 | font-weight: bold; | ||
7928 | width: 33%; | ||
7929 | display: inline-block; | ||
7930 | vertical-align: bottom; } | ||
7931 | |||
7932 | .picker__button--today:hover, .picker__button--clear:hover, .picker__button--close:hover { | ||
7933 | cursor: pointer; | ||
7934 | color: #000000; | ||
7935 | background: #b1dcfb; | ||
7936 | border-bottom-color: #b1dcfb; } | ||
7937 | |||
7938 | .picker__button--today:focus, .picker__button--clear:focus, .picker__button--close:focus { | ||
7939 | background: #b1dcfb; | ||
7940 | border-color: rgba(0, 0, 0, 0.05); | ||
7941 | outline: none; } | ||
7942 | |||
7943 | .picker__button--today:before, .picker__button--clear:before, .picker__button--close:before { | ||
7944 | position: relative; | ||
7945 | display: inline-block; | ||
7946 | height: 0; } | ||
7947 | |||
7948 | .picker__button--today:before, .picker__button--clear:before { | ||
7949 | content: " "; | ||
7950 | margin-right: .45em; } | ||
7951 | |||
7952 | .picker__button--today:before { | ||
7953 | top: -0.05em; | ||
7954 | width: 0; | ||
7955 | border-top: 0.66em solid #0059bc; | ||
7956 | border-left: .66em solid transparent; } | ||
7957 | |||
7958 | .picker__button--clear:before { | ||
7959 | top: -0.25em; | ||
7960 | width: .66em; | ||
7961 | border-top: 3px solid #ee2200; } | ||
7962 | |||
7963 | .picker__button--close:before { | ||
7964 | content: "\D7"; | ||
7965 | top: -0.1em; | ||
7966 | vertical-align: top; | ||
7967 | font-size: 1.1em; | ||
7968 | margin-right: .35em; | ||
7969 | color: #777777; } | ||
7970 | |||
7971 | .picker__button--today[disabled], .picker__button--today[disabled]:hover { | ||
7972 | background: #f5f5f5; | ||
7973 | border-color: #f5f5f5; | ||
7974 | color: #dddddd; | ||
7975 | cursor: default; } | ||
7976 | |||
7977 | .picker__button--today[disabled]:before { | ||
7978 | border-top-color: #aaaaaa; } | ||
7979 | |||
7980 | /* ========================================================================== | ||
7981 | CUSTOM MATERIALIZE STYLES | ||
7982 | ========================================================================== */ | ||
7983 | .picker__box { | ||
7984 | border-radius: 2px; | ||
7985 | overflow: hidden; } | ||
7986 | |||
7987 | .picker__date-display { | ||
7988 | text-align: center; | ||
7989 | background-color: #26a69a; | ||
7990 | color: #fff; | ||
7991 | padding-bottom: 15px; | ||
7992 | font-weight: 300; } | ||
7993 | |||
7994 | .picker__nav--prev:hover, .picker__nav--next:hover { | ||
7995 | cursor: pointer; | ||
7996 | color: #000000; | ||
7997 | background: #a1ded8; } | ||
7998 | |||
7999 | .picker__weekday-display { | ||
8000 | background-color: #1f897f; | ||
8001 | padding: 10px; | ||
8002 | font-weight: 200; | ||
8003 | letter-spacing: .5; | ||
8004 | font-size: 1rem; | ||
8005 | margin-bottom: 15px; } | ||
8006 | |||
8007 | .picker__month-display { | ||
8008 | text-transform: uppercase; | ||
8009 | font-size: 2rem; } | ||
8010 | |||
8011 | .picker__day-display { | ||
8012 | font-size: 4.5rem; | ||
8013 | font-weight: 400; } | ||
8014 | |||
8015 | .picker__year-display { | ||
8016 | font-size: 1.8rem; | ||
8017 | color: rgba(255, 255, 255, 0.4); } | ||
8018 | |||
8019 | .picker__box { | ||
8020 | padding: 0; } | ||
8021 | |||
8022 | .picker__calendar-container { | ||
8023 | padding: 0 1rem; } | ||
8024 | .picker__calendar-container thead { | ||
8025 | border: none; } | ||
8026 | |||
8027 | .picker__table { | ||
8028 | margin-top: 0; | ||
8029 | margin-bottom: .5em; } | ||
8030 | |||
8031 | .picker__day--infocus { | ||
8032 | color: #595959; | ||
8033 | letter-spacing: -.3; | ||
8034 | padding: .75rem 0; | ||
8035 | font-weight: 400; | ||
8036 | border: 1px solid transparent; } | ||
8037 | |||
8038 | .picker__day.picker__day--today { | ||
8039 | color: #26a69a; } | ||
8040 | |||
8041 | .picker__day.picker__day--today.picker__day--selected { | ||
8042 | color: #fff; } | ||
8043 | |||
8044 | .picker__weekday { | ||
8045 | font-size: .9rem; } | ||
8046 | |||
8047 | .picker__day--selected, .picker__day--selected:hover, .picker--focused .picker__day--selected { | ||
8048 | border-radius: 50%; | ||
8049 | -webkit-transform: scale(.9); | ||
8050 | -moz-transform: scale(.9); | ||
8051 | -ms-transform: scale(.9); | ||
8052 | -o-transform: scale(.9); | ||
8053 | transform: scale(.9); | ||
8054 | background-color: #26a69a; | ||
8055 | color: #ffffff; } | ||
8056 | .picker__day--selected.picker__day--outfocus, .picker__day--selected:hover.picker__day--outfocus, .picker--focused .picker__day--selected.picker__day--outfocus { | ||
8057 | background-color: #a1ded8; } | ||
8058 | |||
8059 | .picker__footer { | ||
8060 | text-align: right; | ||
8061 | padding: 5px 10px; } | ||
8062 | |||
8063 | .picker__close, .picker__today { | ||
8064 | font-size: 1.1rem; | ||
8065 | padding: 0 1rem; | ||
8066 | color: #26a69a; } | ||
8067 | |||
8068 | .picker__nav--prev:before, .picker__nav--next:before { | ||
8069 | content: " "; | ||
8070 | border-top: .5em solid transparent; | ||
8071 | border-bottom: .5em solid transparent; | ||
8072 | border-right: 0.75em solid #676767; | ||
8073 | width: 0; | ||
8074 | height: 0; | ||
8075 | display: block; | ||
8076 | margin: 0 auto; } | ||
8077 | |||
8078 | .picker__nav--next:before { | ||
8079 | border-right: 0; | ||
8080 | border-left: 0.75em solid #676767; } | ||
8081 | |||
8082 | button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus { | ||
8083 | background-color: #a1ded8; } | ||
8084 | |||
8085 | /* ========================================================================== | ||
8086 | $BASE-TIME-PICKER | ||
8087 | ========================================================================== */ | ||
8088 | /** | ||
8089 | * The list of times. | ||
8090 | */ | ||
8091 | .picker__list { | ||
8092 | list-style: none; | ||
8093 | padding: 0.75em 0 4.2em; | ||
8094 | margin: 0; } | ||
8095 | |||
8096 | /** | ||
8097 | * The times on the clock. | ||
8098 | */ | ||
8099 | .picker__list-item { | ||
8100 | border-bottom: 1px solid #dddddd; | ||
8101 | border-top: 1px solid #dddddd; | ||
8102 | margin-bottom: -1px; | ||
8103 | position: relative; | ||
8104 | background: #ffffff; | ||
8105 | padding: .75em 1.25em; } | ||
8106 | |||
8107 | @media (min-height: 46.75em) { | ||
8108 | .picker__list-item { | ||
8109 | padding: .5em 1em; } } | ||
8110 | |||
8111 | /* Hovered time */ | ||
8112 | .picker__list-item:hover { | ||
8113 | cursor: pointer; | ||
8114 | color: #000000; | ||
8115 | background: #b1dcfb; | ||
8116 | border-color: #0089ec; | ||
8117 | z-index: 10; } | ||
8118 | |||
8119 | /* Highlighted and hovered/focused time */ | ||
8120 | .picker__list-item--highlighted { | ||
8121 | border-color: #0089ec; | ||
8122 | z-index: 10; } | ||
8123 | |||
8124 | .picker__list-item--highlighted:hover, .picker--focused .picker__list-item--highlighted { | ||
8125 | cursor: pointer; | ||
8126 | color: #000000; | ||
8127 | background: #b1dcfb; } | ||
8128 | |||
8129 | /* Selected and hovered/focused time */ | ||
8130 | .picker__list-item--selected, .picker__list-item--selected:hover, .picker--focused .picker__list-item--selected { | ||
8131 | background: #0089ec; | ||
8132 | color: #ffffff; | ||
8133 | z-index: 10; } | ||
8134 | |||
8135 | /* Disabled time */ | ||
8136 | .picker__list-item--disabled, .picker__list-item--disabled:hover, .picker--focused .picker__list-item--disabled { | ||
8137 | background: #f5f5f5; | ||
8138 | border-color: #f5f5f5; | ||
8139 | color: #dddddd; | ||
8140 | cursor: default; | ||
8141 | border-color: #dddddd; | ||
8142 | z-index: auto; } | ||
8143 | |||
8144 | /** | ||
8145 | * The clear button | ||
8146 | */ | ||
8147 | .picker--time .picker__button--clear { | ||
8148 | display: block; | ||
8149 | width: 80%; | ||
8150 | margin: 1em auto 0; | ||
8151 | padding: 1em 1.25em; | ||
8152 | background: none; | ||
8153 | border: 0; | ||
8154 | font-weight: 500; | ||
8155 | font-size: .67em; | ||
8156 | text-align: center; | ||
8157 | text-transform: uppercase; | ||
8158 | color: #666; } | ||
8159 | |||
8160 | .picker--time .picker__button--clear:hover, .picker--time .picker__button--clear:focus { | ||
8161 | color: #000000; | ||
8162 | background: #b1dcfb; | ||
8163 | background: #ee2200; | ||
8164 | border-color: #ee2200; | ||
8165 | cursor: pointer; | ||
8166 | color: #ffffff; | ||
8167 | outline: none; } | ||
8168 | |||
8169 | .picker--time .picker__button--clear:before { | ||
8170 | top: -0.25em; | ||
8171 | color: #666; | ||
8172 | font-size: 1.25em; | ||
8173 | font-weight: bold; } | ||
8174 | |||
8175 | .picker--time .picker__button--clear:hover:before, .picker--time .picker__button--clear:focus:before { | ||
8176 | color: #ffffff; } | ||
8177 | |||
8178 | /* ========================================================================== | ||
8179 | $DEFAULT-TIME-PICKER | ||
8180 | ========================================================================== */ | ||
8181 | /** | ||
8182 | * The frame the bounds the time picker. | ||
8183 | */ | ||
8184 | .picker--time .picker__frame { | ||
8185 | min-width: 256px; | ||
8186 | max-width: 320px; } | ||
8187 | |||
8188 | /** | ||
8189 | * The picker box. | ||
8190 | */ | ||
8191 | .picker--time .picker__box { | ||
8192 | font-size: 1em; | ||
8193 | background: #f2f2f2; | ||
8194 | padding: 0; } | ||
8195 | |||
8196 | @media (min-height: 40.125em) { | ||
8197 | .picker--time .picker__box { | ||
8198 | margin-bottom: 5em; } } | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/materialize.min.css b/src/Wallabag/CoreBundle/Resources/public/themes/material/css/materialize.min.css deleted file mode 100644 index f49bb0e1..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/materialize.min.css +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | /*! | ||
2 | * Materialize v0.97.1 (http://materializecss.com) | ||
3 | * Copyright 2014-2015 Materialize | ||
4 | * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) | ||
5 | */ | ||
6 | .materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#aa00ff !important}.purple-text.text-accent-4{color:#aa00ff !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ffff00 !important}.yellow-text.text-accent-2{color:#ffff00 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eeeeee !important}.grey-text.text-lighten-3{color:#eeeeee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.shades.black{background-color:#000000 !important}.shades-text.text-black{color:#000000 !important}.shades.white{background-color:#FFFFFF !important}.shades-text.text-white{color:#FFFFFF !important}.shades.transparent{background-color:transparent !important}.shades-text.text-transparent{color:transparent !important}.black{background-color:#000000 !important}.black-text{color:#000000 !important}.white{background-color:#FFFFFF !important}.white-text{color:#FFFFFF !important}.transparent{background-color:transparent !important}.transparent-text{color:transparent !important}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}html input[type="button"],button,input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}ul{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.valign-wrapper .valign{display:block}ul{padding:0}ul li{list-style-type:none}.clearfix{clear:both}.z-depth-0{box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15)}.z-depth-2{box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.z-depth-3{box-shadow:0 12px 15px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19)}.z-depth-4,.modal{box-shadow:0 16px 28px 0 rgba(0,0,0,0.22),0 25px 55px 0 rgba(0,0,0,0.21)}.z-depth-5{box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22)}.hoverable:hover{transition:box-shadow .25s;box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px;border-radius:2px;text-align:center}.pagination li a{color:#444}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width : 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;transform-origin:0 50%}@media only screen and (max-width : 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important;}}@media only screen and (max-width : 992px){.hide-on-med-and-down{display:none !important;}}@media only screen and (min-width : 601px){.hide-on-med-and-up{display:none !important;}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important;}}@media only screen and (min-width : 993px){.hide-on-large-only{display:none !important;}}@media only screen and (min-width : 993px){.show-on-large{display:initial !important;}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:initial !important;}}@media only screen and (max-width : 600px){.show-on-small{display:initial !important;}}@media only screen and (min-width : 601px){.show-on-medium-and-up{display:initial !important;}}@media only screen and (max-width : 992px){.show-on-medium-and-down{display:initial !important;}}@media only screen and (max-width : 600px){.center-on-small-only{text-align:center;}}footer.page-footer{margin-top:20px;padding-top:20px;background-color:#ee6e73}footer.page-footer .footer-copyright{overflow:hidden;height:50px;line-height:50px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0px}table.highlight>tbody>tr{-webkit-transition:background-color .25s ease;-moz-transition:background-color .25s ease;-o-transition:background-color .25s ease;-ms-transition:background-color .25s ease;transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width : 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.collection{margin:0.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar .circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;-webkit-transition:0.25s;-moz-transition:0.25s;-o-transition:0.25s;-ms-transition:0.25s;transition:0.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}span.badge{min-width:3rem;padding:0 6px;text-align:center;font-size:1rem;line-height:inherit;color:#757575;position:absolute;right:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}nav ul a span.badge{position:static;margin-left:4px;line-height:0}.video-container{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.video-container.no-controls{padding-top:0}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:0.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;background-color:inherit;top:0;left:0;bottom:0;background-color:#26a69a;-webkit-transition:width .3s linear;-moz-transition:width .3s linear;-o-transition:width .3s linear;-ms-transition:width .3s linear;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;-moz-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;-ms-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;-o-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-moz-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-ms-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-o-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;-moz-animation-delay:1.15s;-ms-animation-delay:1.15s;-o-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-moz-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@-moz-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}@font-face{font-family:"Material-Design-Icons";src:url("../font/material-design-icons/Material-Design-Icons.eot?#iefix") format("embedded-opentype"),url("../font/material-design-icons/Material-Design-Icons.woff2") format("woff2"),url("../font/material-design-icons/Material-Design-Icons.woff") format("woff"),url("../font/material-design-icons/Material-Design-Icons.ttf") format("truetype"),url("../font/material-design-icons/Material-Design-Icons.svg#Material-Design-Icons") format("svg");font-weight:normal;font-style:normal;}[class^="mdi-"],[class*="mdi-"]{speak:none;display:inline-block;font-family:"Material-Design-Icons";font-style:normal;font-weight:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}[class^="mdi-"]:before,[class*="mdi-"]:before{display:inline-block;speak:none;text-decoration:inherit}[class^="mdi-"].pull-left,[class*="mdi-"].pull-left{margin-right:.3em}[class^="mdi-"].pull-right,[class*="mdi-"].pull-right{margin-left:.3em}[class^="mdi-"].mdi-lg:before,[class^="mdi-"].mdi-lg:after,[class*="mdi-"].mdi-lg:before,[class*="mdi-"].mdi-lg:after{font-size:1.33333333em;line-height:0.75em;vertical-align:-15%}[class^="mdi-"].mdi-2x:before,[class^="mdi-"].mdi-2x:after,[class*="mdi-"].mdi-2x:before,[class*="mdi-"].mdi-2x:after{font-size:2em}[class^="mdi-"].mdi-3x:before,[class^="mdi-"].mdi-3x:after,[class*="mdi-"].mdi-3x:before,[class*="mdi-"].mdi-3x:after{font-size:3em}[class^="mdi-"].mdi-4x:before,[class^="mdi-"].mdi-4x:after,[class*="mdi-"].mdi-4x:before,[class*="mdi-"].mdi-4x:after{font-size:4em}[class^="mdi-"].mdi-5x:before,[class^="mdi-"].mdi-5x:after,[class*="mdi-"].mdi-5x:before,[class*="mdi-"].mdi-5x:after{font-size:5em}[class^="mdi-device-signal-cellular-"]:after,[class^="mdi-device-battery-"]:after,[class^="mdi-device-battery-charging-"]:after,[class^="mdi-device-signal-cellular-connected-no-internet-"]:after,[class^="mdi-device-signal-wifi-"]:after,[class^="mdi-device-signal-wifi-statusbar-not-connected"]:after,.mdi-device-network-wifi:after{opacity:.3;position:absolute;left:0;top:0;z-index:1;display:inline-block;speak:none;text-decoration:inherit}[class^="mdi-device-signal-cellular-"]:after{content:"\e758"}[class^="mdi-device-battery-"]:after{content:"\e735"}[class^="mdi-device-battery-charging-"]:after{content:"\e733"}[class^="mdi-device-signal-cellular-connected-no-internet-"]:after{content:"\e75d"}[class^="mdi-device-signal-wifi-"]:after,.mdi-device-network-wifi:after{content:"\e765"}[class^="mdi-device-signal-wifi-statusbasr-not-connected"]:after{content:"\e8f7"}.mdi-device-signal-cellular-off:after,.mdi-device-signal-cellular-null:after,.mdi-device-signal-cellular-no-sim:after,.mdi-device-signal-wifi-off:after,.mdi-device-signal-wifi-4-bar:after,.mdi-device-signal-cellular-4-bar:after,.mdi-device-battery-alert:after,.mdi-device-signal-cellular-connected-no-internet-4-bar:after,.mdi-device-battery-std:after,.mdi-device-battery-full .mdi-device-battery-unknown:after{content:""}.mdi-fw{width:1.28571429em;text-align:center}.mdi-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.mdi-ul>li{position:relative}.mdi-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:0.14285714em;text-align:center}.mdi-li.mdi-lg{left:-1.85714286em}.mdi-border{padding:.2em .25em .15em;border:solid 0.08em #eeeeee;border-radius:.1em}.mdi-spin{-webkit-animation:mdi-spin 2s infinite linear;animation:mdi-spin 2s infinite linear;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%}.mdi-pulse{-webkit-animation:mdi-spin 1s steps(8) infinite;animation:mdi-spin 1s steps(8) infinite;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%}@-webkit-keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes mdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.mdi-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.mdi-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.mdi-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.mdi-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.mdi-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .mdi-rotate-90,:root .mdi-rotate-180,:root .mdi-rotate-270,:root .mdi-flip-horizontal,:root .mdi-flip-vertical{filter:none}.mdi-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.mdi-stack-1x,.mdi-stack-2x{position:absolute;left:0;width:100%;text-align:center}.mdi-stack-1x{line-height:inherit}.mdi-stack-2x{font-size:2em}.mdi-inverse{color:#ffffff}.mdi-action-3d-rotation:before{content:"\e600"}.mdi-action-accessibility:before{content:"\e601"}.mdi-action-account-balance-wallet:before{content:"\e602"}.mdi-action-account-balance:before{content:"\e603"}.mdi-action-account-box:before{content:"\e604"}.mdi-action-account-child:before{content:"\e605"}.mdi-action-account-circle:before{content:"\e606"}.mdi-action-add-shopping-cart:before{content:"\e607"}.mdi-action-alarm-add:before{content:"\e608"}.mdi-action-alarm-off:before{content:"\e609"}.mdi-action-alarm-on:before{content:"\e60a"}.mdi-action-alarm:before{content:"\e60b"}.mdi-action-android:before{content:"\e60c"}.mdi-action-announcement:before{content:"\e60d"}.mdi-action-aspect-ratio:before{content:"\e60e"}.mdi-action-assessment:before{content:"\e60f"}.mdi-action-assignment-ind:before{content:"\e610"}.mdi-action-assignment-late:before{content:"\e611"}.mdi-action-assignment-return:before{content:"\e612"}.mdi-action-assignment-returned:before{content:"\e613"}.mdi-action-assignment-turned-in:before{content:"\e614"}.mdi-action-assignment:before{content:"\e615"}.mdi-action-autorenew:before{content:"\e616"}.mdi-action-backup:before{content:"\e617"}.mdi-action-book:before{content:"\e618"}.mdi-action-bookmark-outline:before{content:"\e619"}.mdi-action-bookmark:before{content:"\e61a"}.mdi-action-bug-report:before{content:"\e61b"}.mdi-action-cached:before{content:"\e61c"}.mdi-action-check-circle:before{content:"\e61d"}.mdi-action-class:before{content:"\e61e"}.mdi-action-credit-card:before{content:"\e61f"}.mdi-action-dashboard:before{content:"\e620"}.mdi-action-delete:before{content:"\e621"}.mdi-action-description:before{content:"\e622"}.mdi-action-dns:before{content:"\e623"}.mdi-action-done-all:before{content:"\e624"}.mdi-action-done:before{content:"\e625"}.mdi-action-event:before{content:"\e626"}.mdi-action-exit-to-app:before{content:"\e627"}.mdi-action-explore:before{content:"\e628"}.mdi-action-extension:before{content:"\e629"}.mdi-action-face-unlock:before{content:"\e62a"}.mdi-action-favorite-outline:before{content:"\e62b"}.mdi-action-favorite:before{content:"\e62c"}.mdi-action-find-in-page:before{content:"\e62d"}.mdi-action-find-replace:before{content:"\e62e"}.mdi-action-flip-to-back:before{content:"\e62f"}.mdi-action-flip-to-front:before{content:"\e630"}.mdi-action-get-app:before{content:"\e631"}.mdi-action-grade:before{content:"\e632"}.mdi-action-group-work:before{content:"\e633"}.mdi-action-help:before{content:"\e634"}.mdi-action-highlight-remove:before{content:"\e635"}.mdi-action-history:before{content:"\e636"}.mdi-action-home:before{content:"\e637"}.mdi-action-https:before{content:"\e638"}.mdi-action-info-outline:before{content:"\e639"}.mdi-action-info:before{content:"\e63a"}.mdi-action-input:before{content:"\e63b"}.mdi-action-invert-colors:before{content:"\e63c"}.mdi-action-label-outline:before{content:"\e63d"}.mdi-action-label:before{content:"\e63e"}.mdi-action-language:before{content:"\e63f"}.mdi-action-launch:before{content:"\e640"}.mdi-action-list:before{content:"\e641"}.mdi-action-lock-open:before{content:"\e642"}.mdi-action-lock-outline:before{content:"\e643"}.mdi-action-lock:before{content:"\e644"}.mdi-action-loyalty:before{content:"\e645"}.mdi-action-markunread-mailbox:before{content:"\e646"}.mdi-action-note-add:before{content:"\e647"}.mdi-action-open-in-browser:before{content:"\e648"}.mdi-action-open-in-new:before{content:"\e649"}.mdi-action-open-with:before{content:"\e64a"}.mdi-action-pageview:before{content:"\e64b"}.mdi-action-payment:before{content:"\e64c"}.mdi-action-perm-camera-mic:before{content:"\e64d"}.mdi-action-perm-contact-cal:before{content:"\e64e"}.mdi-action-perm-data-setting:before{content:"\e64f"}.mdi-action-perm-device-info:before{content:"\e650"}.mdi-action-perm-identity:before{content:"\e651"}.mdi-action-perm-media:before{content:"\e652"}.mdi-action-perm-phone-msg:before{content:"\e653"}.mdi-action-perm-scan-wifi:before{content:"\e654"}.mdi-action-picture-in-picture:before{content:"\e655"}.mdi-action-polymer:before{content:"\e656"}.mdi-action-print:before{content:"\e657"}.mdi-action-query-builder:before{content:"\e658"}.mdi-action-question-answer:before{content:"\e659"}.mdi-action-receipt:before{content:"\e65a"}.mdi-action-redeem:before{content:"\e65b"}.mdi-action-reorder:before{content:"\e65c"}.mdi-action-report-problem:before{content:"\e65d"}.mdi-action-restore:before{content:"\e65e"}.mdi-action-room:before{content:"\e65f"}.mdi-action-schedule:before{content:"\e660"}.mdi-action-search:before{content:"\e661"}.mdi-action-settings-applications:before{content:"\e662"}.mdi-action-settings-backup-restore:before{content:"\e663"}.mdi-action-settings-bluetooth:before{content:"\e664"}.mdi-action-settings-cell:before{content:"\e665"}.mdi-action-settings-display:before{content:"\e666"}.mdi-action-settings-ethernet:before{content:"\e667"}.mdi-action-settings-input-antenna:before{content:"\e668"}.mdi-action-settings-input-component:before{content:"\e669"}.mdi-action-settings-input-composite:before{content:"\e66a"}.mdi-action-settings-input-hdmi:before{content:"\e66b"}.mdi-action-settings-input-svideo:before{content:"\e66c"}.mdi-action-settings-overscan:before{content:"\e66d"}.mdi-action-settings-phone:before{content:"\e66e"}.mdi-action-settings-power:before{content:"\e66f"}.mdi-action-settings-remote:before{content:"\e670"}.mdi-action-settings-voice:before{content:"\e671"}.mdi-action-settings:before{content:"\e672"}.mdi-action-shop-two:before{content:"\e673"}.mdi-action-shop:before{content:"\e674"}.mdi-action-shopping-basket:before{content:"\e675"}.mdi-action-shopping-cart:before{content:"\e676"}.mdi-action-speaker-notes:before{content:"\e677"}.mdi-action-spellcheck:before{content:"\e678"}.mdi-action-star-rate:before{content:"\e679"}.mdi-action-stars:before{content:"\e67a"}.mdi-action-store:before{content:"\e67b"}.mdi-action-subject:before{content:"\e67c"}.mdi-action-supervisor-account:before{content:"\e67d"}.mdi-action-swap-horiz:before{content:"\e67e"}.mdi-action-swap-vert-circle:before{content:"\e67f"}.mdi-action-swap-vert:before{content:"\e680"}.mdi-action-system-update-tv:before{content:"\e681"}.mdi-action-tab-unselected:before{content:"\e682"}.mdi-action-tab:before{content:"\e683"}.mdi-action-theaters:before{content:"\e684"}.mdi-action-thumb-down:before{content:"\e685"}.mdi-action-thumb-up:before{content:"\e686"}.mdi-action-thumbs-up-down:before{content:"\e687"}.mdi-action-toc:before{content:"\e688"}.mdi-action-today:before{content:"\e689"}.mdi-action-track-changes:before{content:"\e68a"}.mdi-action-translate:before{content:"\e68b"}.mdi-action-trending-down:before{content:"\e68c"}.mdi-action-trending-neutral:before{content:"\e68d"}.mdi-action-trending-up:before{content:"\e68e"}.mdi-action-turned-in-not:before{content:"\e68f"}.mdi-action-turned-in:before{content:"\e690"}.mdi-action-verified-user:before{content:"\e691"}.mdi-action-view-agenda:before{content:"\e692"}.mdi-action-view-array:before{content:"\e693"}.mdi-action-view-carousel:before{content:"\e694"}.mdi-action-view-column:before{content:"\e695"}.mdi-action-view-day:before{content:"\e696"}.mdi-action-view-headline:before{content:"\e697"}.mdi-action-view-list:before{content:"\e698"}.mdi-action-view-module:before{content:"\e699"}.mdi-action-view-quilt:before{content:"\e69a"}.mdi-action-view-stream:before{content:"\e69b"}.mdi-action-view-week:before{content:"\e69c"}.mdi-action-visibility-off:before{content:"\e69d"}.mdi-action-visibility:before{content:"\e69e"}.mdi-action-wallet-giftcard:before{content:"\e69f"}.mdi-action-wallet-membership:before{content:"\e6a0"}.mdi-action-wallet-travel:before{content:"\e6a1"}.mdi-action-work:before{content:"\e6a2"}.mdi-alert-error:before{content:"\e6a3"}.mdi-alert-warning:before{content:"\e6a4"}.mdi-av-album:before{content:"\e6a5"}.mdi-av-closed-caption:before{content:"\e6a6"}.mdi-av-equalizer:before{content:"\e6a7"}.mdi-av-explicit:before{content:"\e6a8"}.mdi-av-fast-forward:before{content:"\e6a9"}.mdi-av-fast-rewind:before{content:"\e6aa"}.mdi-av-games:before{content:"\e6ab"}.mdi-av-hearing:before{content:"\e6ac"}.mdi-av-high-quality:before{content:"\e6ad"}.mdi-av-loop:before{content:"\e6ae"}.mdi-av-mic-none:before{content:"\e6af"}.mdi-av-mic-off:before{content:"\e6b0"}.mdi-av-mic:before{content:"\e6b1"}.mdi-av-movie:before{content:"\e6b2"}.mdi-av-my-library-add:before{content:"\e6b3"}.mdi-av-my-library-books:before{content:"\e6b4"}.mdi-av-my-library-music:before{content:"\e6b5"}.mdi-av-new-releases:before{content:"\e6b6"}.mdi-av-not-interested:before{content:"\e6b7"}.mdi-av-pause-circle-fill:before{content:"\e6b8"}.mdi-av-pause-circle-outline:before{content:"\e6b9"}.mdi-av-pause:before{content:"\e6ba"}.mdi-av-play-arrow:before{content:"\e6bb"}.mdi-av-play-circle-fill:before{content:"\e6bc"}.mdi-av-play-circle-outline:before{content:"\e6bd"}.mdi-av-play-shopping-bag:before{content:"\e6be"}.mdi-av-playlist-add:before{content:"\e6bf"}.mdi-av-queue-music:before{content:"\e6c0"}.mdi-av-queue:before{content:"\e6c1"}.mdi-av-radio:before{content:"\e6c2"}.mdi-av-recent-actors:before{content:"\e6c3"}.mdi-av-repeat-one:before{content:"\e6c4"}.mdi-av-repeat:before{content:"\e6c5"}.mdi-av-replay:before{content:"\e6c6"}.mdi-av-shuffle:before{content:"\e6c7"}.mdi-av-skip-next:before{content:"\e6c8"}.mdi-av-skip-previous:before{content:"\e6c9"}.mdi-av-snooze:before{content:"\e6ca"}.mdi-av-stop:before{content:"\e6cb"}.mdi-av-subtitles:before{content:"\e6cc"}.mdi-av-surround-sound:before{content:"\e6cd"}.mdi-av-timer:before{content:"\e6ce"}.mdi-av-video-collection:before{content:"\e6cf"}.mdi-av-videocam-off:before{content:"\e6d0"}.mdi-av-videocam:before{content:"\e6d1"}.mdi-av-volume-down:before{content:"\e6d2"}.mdi-av-volume-mute:before{content:"\e6d3"}.mdi-av-volume-off:before{content:"\e6d4"}.mdi-av-volume-up:before{content:"\e6d5"}.mdi-av-web:before{content:"\e6d6"}.mdi-communication-business:before{content:"\e6d7"}.mdi-communication-call-end:before{content:"\e6d8"}.mdi-communication-call-made:before{content:"\e6d9"}.mdi-communication-call-merge:before{content:"\e6da"}.mdi-communication-call-missed:before{content:"\e6db"}.mdi-communication-call-received:before{content:"\e6dc"}.mdi-communication-call-split:before{content:"\e6dd"}.mdi-communication-call:before{content:"\e6de"}.mdi-communication-chat:before{content:"\e6df"}.mdi-communication-clear-all:before{content:"\e6e0"}.mdi-communication-comment:before{content:"\e6e1"}.mdi-communication-contacts:before{content:"\e6e2"}.mdi-communication-dialer-sip:before{content:"\e6e3"}.mdi-communication-dialpad:before{content:"\e6e4"}.mdi-communication-dnd-on:before{content:"\e6e5"}.mdi-communication-email:before{content:"\e6e6"}.mdi-communication-forum:before{content:"\e6e7"}.mdi-communication-import-export:before{content:"\e6e8"}.mdi-communication-invert-colors-off:before{content:"\e6e9"}.mdi-communication-invert-colors-on:before{content:"\e6ea"}.mdi-communication-live-help:before{content:"\e6eb"}.mdi-communication-location-off:before{content:"\e6ec"}.mdi-communication-location-on:before{content:"\e6ed"}.mdi-communication-message:before{content:"\e6ee"}.mdi-communication-messenger:before{content:"\e6ef"}.mdi-communication-no-sim:before{content:"\e6f0"}.mdi-communication-phone:before{content:"\e6f1"}.mdi-communication-portable-wifi-off:before{content:"\e6f2"}.mdi-communication-quick-contacts-dialer:before{content:"\e6f3"}.mdi-communication-quick-contacts-mail:before{content:"\e6f4"}.mdi-communication-ring-volume:before{content:"\e6f5"}.mdi-communication-stay-current-landscape:before{content:"\e6f6"}.mdi-communication-stay-current-portrait:before{content:"\e6f7"}.mdi-communication-stay-primary-landscape:before{content:"\e6f8"}.mdi-communication-stay-primary-portrait:before{content:"\e6f9"}.mdi-communication-swap-calls:before{content:"\e6fa"}.mdi-communication-textsms:before{content:"\e6fb"}.mdi-communication-voicemail:before{content:"\e6fc"}.mdi-communication-vpn-key:before{content:"\e6fd"}.mdi-content-add-box:before{content:"\e6fe"}.mdi-content-add-circle-outline:before{content:"\e6ff"}.mdi-content-add-circle:before{content:"\e700"}.mdi-content-add:before{content:"\e701"}.mdi-content-archive:before{content:"\e702"}.mdi-content-backspace:before{content:"\e703"}.mdi-content-block:before{content:"\e704"}.mdi-content-clear:before{content:"\e705"}.mdi-content-content-copy:before{content:"\e706"}.mdi-content-content-cut:before{content:"\e707"}.mdi-content-content-paste:before{content:"\e708"}.mdi-content-create:before{content:"\e709"}.mdi-content-drafts:before{content:"\e70a"}.mdi-content-filter-list:before{content:"\e70b"}.mdi-content-flag:before{content:"\e70c"}.mdi-content-forward:before{content:"\e70d"}.mdi-content-gesture:before{content:"\e70e"}.mdi-content-inbox:before{content:"\e70f"}.mdi-content-link:before{content:"\e710"}.mdi-content-mail:before{content:"\e711"}.mdi-content-markunread:before{content:"\e712"}.mdi-content-redo:before{content:"\e713"}.mdi-content-remove-circle-outline:before{content:"\e714"}.mdi-content-remove-circle:before{content:"\e715"}.mdi-content-remove:before{content:"\e716"}.mdi-content-reply-all:before{content:"\e717"}.mdi-content-reply:before{content:"\e718"}.mdi-content-report:before{content:"\e719"}.mdi-content-save:before{content:"\e71a"}.mdi-content-select-all:before{content:"\e71b"}.mdi-content-send:before{content:"\e71c"}.mdi-content-sort:before{content:"\e71d"}.mdi-content-text-format:before{content:"\e71e"}.mdi-content-undo:before{content:"\e71f"}.mdi-editor-attach-file:before{content:"\e776"}.mdi-editor-attach-money:before{content:"\e777"}.mdi-editor-border-all:before{content:"\e778"}.mdi-editor-border-bottom:before{content:"\e779"}.mdi-editor-border-clear:before{content:"\e77a"}.mdi-editor-border-color:before{content:"\e77b"}.mdi-editor-border-horizontal:before{content:"\e77c"}.mdi-editor-border-inner:before{content:"\e77d"}.mdi-editor-border-left:before{content:"\e77e"}.mdi-editor-border-outer:before{content:"\e77f"}.mdi-editor-border-right:before{content:"\e780"}.mdi-editor-border-style:before{content:"\e781"}.mdi-editor-border-top:before{content:"\e782"}.mdi-editor-border-vertical:before{content:"\e783"}.mdi-editor-format-align-center:before{content:"\e784"}.mdi-editor-format-align-justify:before{content:"\e785"}.mdi-editor-format-align-left:before{content:"\e786"}.mdi-editor-format-align-right:before{content:"\e787"}.mdi-editor-format-bold:before{content:"\e788"}.mdi-editor-format-clear:before{content:"\e789"}.mdi-editor-format-color-fill:before{content:"\e78a"}.mdi-editor-format-color-reset:before{content:"\e78b"}.mdi-editor-format-color-text:before{content:"\e78c"}.mdi-editor-format-indent-decrease:before{content:"\e78d"}.mdi-editor-format-indent-increase:before{content:"\e78e"}.mdi-editor-format-italic:before{content:"\e78f"}.mdi-editor-format-line-spacing:before{content:"\e790"}.mdi-editor-format-list-bulleted:before{content:"\e791"}.mdi-editor-format-list-numbered:before{content:"\e792"}.mdi-editor-format-paint:before{content:"\e793"}.mdi-editor-format-quote:before{content:"\e794"}.mdi-editor-format-size:before{content:"\e795"}.mdi-editor-format-strikethrough:before{content:"\e796"}.mdi-editor-format-textdirection-l-to-r:before{content:"\e797"}.mdi-editor-format-textdirection-r-to-l:before{content:"\e798"}.mdi-editor-format-underline:before{content:"\e799"}.mdi-editor-functions:before{content:"\e79a"}.mdi-editor-insert-chart:before{content:"\e79b"}.mdi-editor-insert-comment:before{content:"\e79c"}.mdi-editor-insert-drive-file:before{content:"\e79d"}.mdi-editor-insert-emoticon:before{content:"\e79e"}.mdi-editor-insert-invitation:before{content:"\e79f"}.mdi-editor-insert-link:before{content:"\e7a0"}.mdi-editor-insert-photo:before{content:"\e7a1"}.mdi-editor-merge-type:before{content:"\e7a2"}.mdi-editor-mode-comment:before{content:"\e7a3"}.mdi-editor-mode-edit:before{content:"\e7a4"}.mdi-editor-publish:before{content:"\e7a5"}.mdi-editor-vertical-align-bottom:before{content:"\e7a6"}.mdi-editor-vertical-align-center:before{content:"\e7a7"}.mdi-editor-vertical-align-top:before{content:"\e7a8"}.mdi-editor-wrap-text:before{content:"\e7a9"}.mdi-file-attachment:before{content:"\e7aa"}.mdi-file-cloud-circle:before{content:"\e7ab"}.mdi-file-cloud-done:before{content:"\e7ac"}.mdi-file-cloud-download:before{content:"\e7ad"}.mdi-file-cloud-off:before{content:"\e7ae"}.mdi-file-cloud-queue:before{content:"\e7af"}.mdi-file-cloud-upload:before{content:"\e7b0"}.mdi-file-cloud:before{content:"\e7b1"}.mdi-file-file-download:before{content:"\e7b2"}.mdi-file-file-upload:before{content:"\e7b3"}.mdi-file-folder-open:before{content:"\e7b4"}.mdi-file-folder-shared:before{content:"\e7b5"}.mdi-file-folder:before{content:"\e7b6"}.mdi-device-access-alarm:before{content:"\e720"}.mdi-device-access-alarms:before{content:"\e721"}.mdi-device-access-time:before{content:"\e722"}.mdi-device-add-alarm:before{content:"\e723"}.mdi-device-airplanemode-off:before{content:"\e724"}.mdi-device-airplanemode-on:before{content:"\e725"}.mdi-device-battery-20:before{content:"\e726"}.mdi-device-battery-30:before{content:"\e727"}.mdi-device-battery-50:before{content:"\e728"}.mdi-device-battery-60:before{content:"\e729"}.mdi-device-battery-80:before{content:"\e72a"}.mdi-device-battery-90:before{content:"\e72b"}.mdi-device-battery-alert:before{content:"\e72c"}.mdi-device-battery-charging-20:before{content:"\e72d"}.mdi-device-battery-charging-30:before{content:"\e72e"}.mdi-device-battery-charging-50:before{content:"\e72f"}.mdi-device-battery-charging-60:before{content:"\e730"}.mdi-device-battery-charging-80:before{content:"\e731"}.mdi-device-battery-charging-90:before{content:"\e732"}.mdi-device-battery-charging-full:before{content:"\e733"}.mdi-device-battery-full:before{content:"\e734"}.mdi-device-battery-std:before{content:"\e735"}.mdi-device-battery-unknown:before{content:"\e736"}.mdi-device-bluetooth-connected:before{content:"\e737"}.mdi-device-bluetooth-disabled:before{content:"\e738"}.mdi-device-bluetooth-searching:before{content:"\e739"}.mdi-device-bluetooth:before{content:"\e73a"}.mdi-device-brightness-auto:before{content:"\e73b"}.mdi-device-brightness-high:before{content:"\e73c"}.mdi-device-brightness-low:before{content:"\e73d"}.mdi-device-brightness-medium:before{content:"\e73e"}.mdi-device-data-usage:before{content:"\e73f"}.mdi-device-developer-mode:before{content:"\e740"}.mdi-device-devices:before{content:"\e741"}.mdi-device-dvr:before{content:"\e742"}.mdi-device-gps-fixed:before{content:"\e743"}.mdi-device-gps-not-fixed:before{content:"\e744"}.mdi-device-gps-off:before{content:"\e745"}.mdi-device-location-disabled:before{content:"\e746"}.mdi-device-location-searching:before{content:"\e747"}.mdi-device-multitrack-audio:before{content:"\e748"}.mdi-device-network-cell:before{content:"\e749"}.mdi-device-network-wifi:before{content:"\e74a"}.mdi-device-nfc:before{content:"\e74b"}.mdi-device-now-wallpaper:before{content:"\e74c"}.mdi-device-now-widgets:before{content:"\e74d"}.mdi-device-screen-lock-landscape:before{content:"\e74e"}.mdi-device-screen-lock-portrait:before{content:"\e74f"}.mdi-device-screen-lock-rotation:before{content:"\e750"}.mdi-device-screen-rotation:before{content:"\e751"}.mdi-device-sd-storage:before{content:"\e752"}.mdi-device-settings-system-daydream:before{content:"\e753"}.mdi-device-signal-cellular-0-bar:before{content:"\e754"}.mdi-device-signal-cellular-1-bar:before{content:"\e755"}.mdi-device-signal-cellular-2-bar:before{content:"\e756"}.mdi-device-signal-cellular-3-bar:before{content:"\e757"}.mdi-device-signal-cellular-4-bar:before{content:"\e758"}.mdi-signal-wifi-statusbar-connected-no-internet-after:before{content:"\e8f6"}.mdi-device-signal-cellular-connected-no-internet-0-bar:before{content:"\e759"}.mdi-device-signal-cellular-connected-no-internet-1-bar:before{content:"\e75a"}.mdi-device-signal-cellular-connected-no-internet-2-bar:before{content:"\e75b"}.mdi-device-signal-cellular-connected-no-internet-3-bar:before{content:"\e75c"}.mdi-device-signal-cellular-connected-no-internet-4-bar:before{content:"\e75d"}.mdi-device-signal-cellular-no-sim:before{content:"\e75e"}.mdi-device-signal-cellular-null:before{content:"\e75f"}.mdi-device-signal-cellular-off:before{content:"\e760"}.mdi-device-signal-wifi-0-bar:before{content:"\e761"}.mdi-device-signal-wifi-1-bar:before{content:"\e762"}.mdi-device-signal-wifi-2-bar:before{content:"\e763"}.mdi-device-signal-wifi-3-bar:before{content:"\e764"}.mdi-device-signal-wifi-4-bar:before{content:"\e765"}.mdi-device-signal-wifi-off:before{content:"\e766"}.mdi-device-signal-wifi-statusbar-1-bar:before{content:"\e767"}.mdi-device-signal-wifi-statusbar-2-bar:before{content:"\e768"}.mdi-device-signal-wifi-statusbar-3-bar:before{content:"\e769"}.mdi-device-signal-wifi-statusbar-4-bar:before{content:"\e76a"}.mdi-device-signal-wifi-statusbar-connected-no-internet-:before{content:"\e76b"}.mdi-device-signal-wifi-statusbar-connected-no-internet:before{content:"\e76f"}.mdi-device-signal-wifi-statusbar-connected-no-internet-2:before{content:"\e76c"}.mdi-device-signal-wifi-statusbar-connected-no-internet-3:before{content:"\e76d"}.mdi-device-signal-wifi-statusbar-connected-no-internet-4:before{content:"\e76e"}.mdi-signal-wifi-statusbar-not-connected-after:before{content:"\e8f7"}.mdi-device-signal-wifi-statusbar-not-connected:before{content:"\e770"}.mdi-device-signal-wifi-statusbar-null:before{content:"\e771"}.mdi-device-storage:before{content:"\e772"}.mdi-device-usb:before{content:"\e773"}.mdi-device-wifi-lock:before{content:"\e774"}.mdi-device-wifi-tethering:before{content:"\e775"}.mdi-hardware-cast-connected:before{content:"\e7b7"}.mdi-hardware-cast:before{content:"\e7b8"}.mdi-hardware-computer:before{content:"\e7b9"}.mdi-hardware-desktop-mac:before{content:"\e7ba"}.mdi-hardware-desktop-windows:before{content:"\e7bb"}.mdi-hardware-dock:before{content:"\e7bc"}.mdi-hardware-gamepad:before{content:"\e7bd"}.mdi-hardware-headset-mic:before{content:"\e7be"}.mdi-hardware-headset:before{content:"\e7bf"}.mdi-hardware-keyboard-alt:before{content:"\e7c0"}.mdi-hardware-keyboard-arrow-down:before{content:"\e7c1"}.mdi-hardware-keyboard-arrow-left:before{content:"\e7c2"}.mdi-hardware-keyboard-arrow-right:before{content:"\e7c3"}.mdi-hardware-keyboard-arrow-up:before{content:"\e7c4"}.mdi-hardware-keyboard-backspace:before{content:"\e7c5"}.mdi-hardware-keyboard-capslock:before{content:"\e7c6"}.mdi-hardware-keyboard-control:before{content:"\e7c7"}.mdi-hardware-keyboard-hide:before{content:"\e7c8"}.mdi-hardware-keyboard-return:before{content:"\e7c9"}.mdi-hardware-keyboard-tab:before{content:"\e7ca"}.mdi-hardware-keyboard-voice:before{content:"\e7cb"}.mdi-hardware-keyboard:before{content:"\e7cc"}.mdi-hardware-laptop-chromebook:before{content:"\e7cd"}.mdi-hardware-laptop-mac:before{content:"\e7ce"}.mdi-hardware-laptop-windows:before{content:"\e7cf"}.mdi-hardware-laptop:before{content:"\e7d0"}.mdi-hardware-memory:before{content:"\e7d1"}.mdi-hardware-mouse:before{content:"\e7d2"}.mdi-hardware-phone-android:before{content:"\e7d3"}.mdi-hardware-phone-iphone:before{content:"\e7d4"}.mdi-hardware-phonelink-off:before{content:"\e7d5"}.mdi-hardware-phonelink:before{content:"\e7d6"}.mdi-hardware-security:before{content:"\e7d7"}.mdi-hardware-sim-card:before{content:"\e7d8"}.mdi-hardware-smartphone:before{content:"\e7d9"}.mdi-hardware-speaker:before{content:"\e7da"}.mdi-hardware-tablet-android:before{content:"\e7db"}.mdi-hardware-tablet-mac:before{content:"\e7dc"}.mdi-hardware-tablet:before{content:"\e7dd"}.mdi-hardware-tv:before{content:"\e7de"}.mdi-hardware-watch:before{content:"\e7df"}.mdi-image-add-to-photos:before{content:"\e7e0"}.mdi-image-adjust:before{content:"\e7e1"}.mdi-image-assistant-photo:before{content:"\e7e2"}.mdi-image-audiotrack:before{content:"\e7e3"}.mdi-image-blur-circular:before{content:"\e7e4"}.mdi-image-blur-linear:before{content:"\e7e5"}.mdi-image-blur-off:before{content:"\e7e6"}.mdi-image-blur-on:before{content:"\e7e7"}.mdi-image-brightness-1:before{content:"\e7e8"}.mdi-image-brightness-2:before{content:"\e7e9"}.mdi-image-brightness-3:before{content:"\e7ea"}.mdi-image-brightness-4:before{content:"\e7eb"}.mdi-image-brightness-5:before{content:"\e7ec"}.mdi-image-brightness-6:before{content:"\e7ed"}.mdi-image-brightness-7:before{content:"\e7ee"}.mdi-image-brush:before{content:"\e7ef"}.mdi-image-camera-alt:before{content:"\e7f0"}.mdi-image-camera-front:before{content:"\e7f1"}.mdi-image-camera-rear:before{content:"\e7f2"}.mdi-image-camera-roll:before{content:"\e7f3"}.mdi-image-camera:before{content:"\e7f4"}.mdi-image-center-focus-strong:before{content:"\e7f5"}.mdi-image-center-focus-weak:before{content:"\e7f6"}.mdi-image-collections:before{content:"\e7f7"}.mdi-image-color-lens:before{content:"\e7f8"}.mdi-image-colorize:before{content:"\e7f9"}.mdi-image-compare:before{content:"\e7fa"}.mdi-image-control-point-duplicate:before{content:"\e7fb"}.mdi-image-control-point:before{content:"\e7fc"}.mdi-image-crop-3-2:before{content:"\e7fd"}.mdi-image-crop-5-4:before{content:"\e7fe"}.mdi-image-crop-7-5:before{content:"\e7ff"}.mdi-image-crop-16-9:before{content:"\e800"}.mdi-image-crop-din:before{content:"\e801"}.mdi-image-crop-free:before{content:"\e802"}.mdi-image-crop-landscape:before{content:"\e803"}.mdi-image-crop-original:before{content:"\e804"}.mdi-image-crop-portrait:before{content:"\e805"}.mdi-image-crop-square:before{content:"\e806"}.mdi-image-crop:before{content:"\e807"}.mdi-image-dehaze:before{content:"\e808"}.mdi-image-details:before{content:"\e809"}.mdi-image-edit:before{content:"\e80a"}.mdi-image-exposure-minus-1:before{content:"\e80b"}.mdi-image-exposure-minus-2:before{content:"\e80c"}.mdi-image-exposure-plus-1:before{content:"\e80d"}.mdi-image-exposure-plus-2:before{content:"\e80e"}.mdi-image-exposure-zero:before{content:"\e80f"}.mdi-image-exposure:before{content:"\e810"}.mdi-image-filter-1:before{content:"\e811"}.mdi-image-filter-2:before{content:"\e812"}.mdi-image-filter-3:before{content:"\e813"}.mdi-image-filter-4:before{content:"\e814"}.mdi-image-filter-5:before{content:"\e815"}.mdi-image-filter-6:before{content:"\e816"}.mdi-image-filter-7:before{content:"\e817"}.mdi-image-filter-8:before{content:"\e818"}.mdi-image-filter-9-plus:before{content:"\e819"}.mdi-image-filter-9:before{content:"\e81a"}.mdi-image-filter-b-and-w:before{content:"\e81b"}.mdi-image-filter-center-focus:before{content:"\e81c"}.mdi-image-filter-drama:before{content:"\e81d"}.mdi-image-filter-frames:before{content:"\e81e"}.mdi-image-filter-hdr:before{content:"\e81f"}.mdi-image-filter-none:before{content:"\e820"}.mdi-image-filter-tilt-shift:before{content:"\e821"}.mdi-image-filter-vintage:before{content:"\e822"}.mdi-image-filter:before{content:"\e823"}.mdi-image-flare:before{content:"\e824"}.mdi-image-flash-auto:before{content:"\e825"}.mdi-image-flash-off:before{content:"\e826"}.mdi-image-flash-on:before{content:"\e827"}.mdi-image-flip:before{content:"\e828"}.mdi-image-gradient:before{content:"\e829"}.mdi-image-grain:before{content:"\e82a"}.mdi-image-grid-off:before{content:"\e82b"}.mdi-image-grid-on:before{content:"\e82c"}.mdi-image-hdr-off:before{content:"\e82d"}.mdi-image-hdr-on:before{content:"\e82e"}.mdi-image-hdr-strong:before{content:"\e82f"}.mdi-image-hdr-weak:before{content:"\e830"}.mdi-image-healing:before{content:"\e831"}.mdi-image-image-aspect-ratio:before{content:"\e832"}.mdi-image-image:before{content:"\e833"}.mdi-image-iso:before{content:"\e834"}.mdi-image-landscape:before{content:"\e835"}.mdi-image-leak-add:before{content:"\e836"}.mdi-image-leak-remove:before{content:"\e837"}.mdi-image-lens:before{content:"\e838"}.mdi-image-looks-3:before{content:"\e839"}.mdi-image-looks-4:before{content:"\e83a"}.mdi-image-looks-5:before{content:"\e83b"}.mdi-image-looks-6:before{content:"\e83c"}.mdi-image-looks-one:before{content:"\e83d"}.mdi-image-looks-two:before{content:"\e83e"}.mdi-image-looks:before{content:"\e83f"}.mdi-image-loupe:before{content:"\e840"}.mdi-image-movie-creation:before{content:"\e841"}.mdi-image-nature-people:before{content:"\e842"}.mdi-image-nature:before{content:"\e843"}.mdi-image-navigate-before:before{content:"\e844"}.mdi-image-navigate-next:before{content:"\e845"}.mdi-image-palette:before{content:"\e846"}.mdi-image-panorama-fisheye:before{content:"\e847"}.mdi-image-panorama-horizontal:before{content:"\e848"}.mdi-image-panorama-vertical:before{content:"\e849"}.mdi-image-panorama-wide-angle:before{content:"\e84a"}.mdi-image-panorama:before{content:"\e84b"}.mdi-image-photo-album:before{content:"\e84c"}.mdi-image-photo-camera:before{content:"\e84d"}.mdi-image-photo-library:before{content:"\e84e"}.mdi-image-photo:before{content:"\e84f"}.mdi-image-portrait:before{content:"\e850"}.mdi-image-remove-red-eye:before{content:"\e851"}.mdi-image-rotate-left:before{content:"\e852"}.mdi-image-rotate-right:before{content:"\e853"}.mdi-image-slideshow:before{content:"\e854"}.mdi-image-straighten:before{content:"\e855"}.mdi-image-style:before{content:"\e856"}.mdi-image-switch-camera:before{content:"\e857"}.mdi-image-switch-video:before{content:"\e858"}.mdi-image-tag-faces:before{content:"\e859"}.mdi-image-texture:before{content:"\e85a"}.mdi-image-timelapse:before{content:"\e85b"}.mdi-image-timer-3:before{content:"\e85c"}.mdi-image-timer-10:before{content:"\e85d"}.mdi-image-timer-auto:before{content:"\e85e"}.mdi-image-timer-off:before{content:"\e85f"}.mdi-image-timer:before{content:"\e860"}.mdi-image-tonality:before{content:"\e861"}.mdi-image-transform:before{content:"\e862"}.mdi-image-tune:before{content:"\e863"}.mdi-image-wb-auto:before{content:"\e864"}.mdi-image-wb-cloudy:before{content:"\e865"}.mdi-image-wb-incandescent:before{content:"\e866"}.mdi-image-wb-irradescent:before{content:"\e867"}.mdi-image-wb-sunny:before{content:"\e868"}.mdi-maps-beenhere:before{content:"\e869"}.mdi-maps-directions-bike:before{content:"\e86a"}.mdi-maps-directions-bus:before{content:"\e86b"}.mdi-maps-directions-car:before{content:"\e86c"}.mdi-maps-directions-ferry:before{content:"\e86d"}.mdi-maps-directions-subway:before{content:"\e86e"}.mdi-maps-directions-train:before{content:"\e86f"}.mdi-maps-directions-transit:before{content:"\e870"}.mdi-maps-directions-walk:before{content:"\e871"}.mdi-maps-directions:before{content:"\e872"}.mdi-maps-flight:before{content:"\e873"}.mdi-maps-hotel:before{content:"\e874"}.mdi-maps-layers-clear:before{content:"\e875"}.mdi-maps-layers:before{content:"\e876"}.mdi-maps-local-airport:before{content:"\e877"}.mdi-maps-local-atm:before{content:"\e878"}.mdi-maps-local-attraction:before{content:"\e879"}.mdi-maps-local-bar:before{content:"\e87a"}.mdi-maps-local-cafe:before{content:"\e87b"}.mdi-maps-local-car-wash:before{content:"\e87c"}.mdi-maps-local-convenience-store:before{content:"\e87d"}.mdi-maps-local-drink:before{content:"\e87e"}.mdi-maps-local-florist:before{content:"\e87f"}.mdi-maps-local-gas-station:before{content:"\e880"}.mdi-maps-local-grocery-store:before{content:"\e881"}.mdi-maps-local-hospital:before{content:"\e882"}.mdi-maps-local-hotel:before{content:"\e883"}.mdi-maps-local-laundry-service:before{content:"\e884"}.mdi-maps-local-library:before{content:"\e885"}.mdi-maps-local-mall:before{content:"\e886"}.mdi-maps-local-movies:before{content:"\e887"}.mdi-maps-local-offer:before{content:"\e888"}.mdi-maps-local-parking:before{content:"\e889"}.mdi-maps-local-pharmacy:before{content:"\e88a"}.mdi-maps-local-phone:before{content:"\e88b"}.mdi-maps-local-pizza:before{content:"\e88c"}.mdi-maps-local-play:before{content:"\e88d"}.mdi-maps-local-post-office:before{content:"\e88e"}.mdi-maps-local-print-shop:before{content:"\e88f"}.mdi-maps-local-restaurant:before{content:"\e890"}.mdi-maps-local-see:before{content:"\e891"}.mdi-maps-local-shipping:before{content:"\e892"}.mdi-maps-local-taxi:before{content:"\e893"}.mdi-maps-location-history:before{content:"\e894"}.mdi-maps-map:before{content:"\e895"}.mdi-maps-my-location:before{content:"\e896"}.mdi-maps-navigation:before{content:"\e897"}.mdi-maps-pin-drop:before{content:"\e898"}.mdi-maps-place:before{content:"\e899"}.mdi-maps-rate-review:before{content:"\e89a"}.mdi-maps-restaurant-menu:before{content:"\e89b"}.mdi-maps-satellite:before{content:"\e89c"}.mdi-maps-store-mall-directory:before{content:"\e89d"}.mdi-maps-terrain:before{content:"\e89e"}.mdi-maps-traffic:before{content:"\e89f"}.mdi-navigation-apps:before{content:"\e8a0"}.mdi-navigation-arrow-back:before{content:"\e8a1"}.mdi-navigation-arrow-drop-down-circle:before{content:"\e8a2"}.mdi-navigation-arrow-drop-down:before{content:"\e8a3"}.mdi-navigation-arrow-drop-up:before{content:"\e8a4"}.mdi-navigation-arrow-forward:before{content:"\e8a5"}.mdi-navigation-cancel:before{content:"\e8a6"}.mdi-navigation-check:before{content:"\e8a7"}.mdi-navigation-chevron-left:before{content:"\e8a8"}.mdi-navigation-chevron-right:before{content:"\e8a9"}.mdi-navigation-close:before{content:"\e8aa"}.mdi-navigation-expand-less:before{content:"\e8ab"}.mdi-navigation-expand-more:before{content:"\e8ac"}.mdi-navigation-fullscreen-exit:before{content:"\e8ad"}.mdi-navigation-fullscreen:before{content:"\e8ae"}.mdi-navigation-menu:before{content:"\e8af"}.mdi-navigation-more-horiz:before{content:"\e8b0"}.mdi-navigation-more-vert:before{content:"\e8b1"}.mdi-navigation-refresh:before{content:"\e8b2"}.mdi-navigation-unfold-less:before{content:"\e8b3"}.mdi-navigation-unfold-more:before{content:"\e8b4"}.mdi-notification-adb:before{content:"\e8b5"}.mdi-notification-bluetooth-audio:before{content:"\e8b6"}.mdi-notification-disc-full:before{content:"\e8b7"}.mdi-notification-dnd-forwardslash:before{content:"\e8b8"}.mdi-notification-do-not-disturb:before{content:"\e8b9"}.mdi-notification-drive-eta:before{content:"\e8ba"}.mdi-notification-event-available:before{content:"\e8bb"}.mdi-notification-event-busy:before{content:"\e8bc"}.mdi-notification-event-note:before{content:"\e8bd"}.mdi-notification-folder-special:before{content:"\e8be"}.mdi-notification-mms:before{content:"\e8bf"}.mdi-notification-more:before{content:"\e8c0"}.mdi-notification-network-locked:before{content:"\e8c1"}.mdi-notification-phone-bluetooth-speaker:before{content:"\e8c2"}.mdi-notification-phone-forwarded:before{content:"\e8c3"}.mdi-notification-phone-in-talk:before{content:"\e8c4"}.mdi-notification-phone-locked:before{content:"\e8c5"}.mdi-notification-phone-missed:before{content:"\e8c6"}.mdi-notification-phone-paused:before{content:"\e8c7"}.mdi-notification-play-download:before{content:"\e8c8"}.mdi-notification-play-install:before{content:"\e8c9"}.mdi-notification-sd-card:before{content:"\e8ca"}.mdi-notification-sim-card-alert:before{content:"\e8cb"}.mdi-notification-sms-failed:before{content:"\e8cc"}.mdi-notification-sms:before{content:"\e8cd"}.mdi-notification-sync-disabled:before{content:"\e8ce"}.mdi-notification-sync-problem:before{content:"\e8cf"}.mdi-notification-sync:before{content:"\e8d0"}.mdi-notification-system-update:before{content:"\e8d1"}.mdi-notification-tap-and-play:before{content:"\e8d2"}.mdi-notification-time-to-leave:before{content:"\e8d3"}.mdi-notification-vibration:before{content:"\e8d4"}.mdi-notification-voice-chat:before{content:"\e8d5"}.mdi-notification-vpn-lock:before{content:"\e8d6"}.mdi-social-cake:before{content:"\e8d7"}.mdi-social-domain:before{content:"\e8d8"}.mdi-social-group-add:before{content:"\e8d9"}.mdi-social-group:before{content:"\e8da"}.mdi-social-location-city:before{content:"\e8db"}.mdi-social-mood:before{content:"\e8dc"}.mdi-social-notifications-none:before{content:"\e8dd"}.mdi-social-notifications-off:before{content:"\e8de"}.mdi-social-notifications-on:before{content:"\e8df"}.mdi-social-notifications-paused:before{content:"\e8e0"}.mdi-social-notifications:before{content:"\e8e1"}.mdi-social-pages:before{content:"\e8e2"}.mdi-social-party-mode:before{content:"\e8e3"}.mdi-social-people-outline:before{content:"\e8e4"}.mdi-social-people:before{content:"\e8e5"}.mdi-social-person-add:before{content:"\e8e6"}.mdi-social-person-outline:before{content:"\e8e7"}.mdi-social-person:before{content:"\e8e8"}.mdi-social-plus-one:before{content:"\e8e9"}.mdi-social-poll:before{content:"\e8ea"}.mdi-social-public:before{content:"\e8eb"}.mdi-social-school:before{content:"\e8ec"}.mdi-social-share:before{content:"\e8ed"}.mdi-social-whatshot:before{content:"\e8ee"}.mdi-toggle-check-box-outline-blank:before{content:"\e8ef"}.mdi-toggle-check-box:before{content:"\e8f0"}.mdi-toggle-radio-button-off:before{content:"\e8f1"}.mdi-toggle-radio-button-on:before{content:"\e8f2"}.mdi-toggle-star-half:before{content:"\e8f3"}.mdi-toggle-star-outline:before{content:"\e8f4"}.mdi-toggle-star:before{content:"\e8f5"}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width : 601px){.container{width:85%}}@media only screen and (min-width : 993px){.container{width:70%}}.container .row{margin-left:-0.75rem;margin-right:-0.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0 0.75rem}.row .col.s1{width:8.33333%;margin-left:0}.row .col.s2{width:16.66667%;margin-left:0}.row .col.s3{width:25%;margin-left:0}.row .col.s4{width:33.33333%;margin-left:0}.row .col.s5{width:41.66667%;margin-left:0}.row .col.s6{width:50%;margin-left:0}.row .col.s7{width:58.33333%;margin-left:0}.row .col.s8{width:66.66667%;margin-left:0}.row .col.s9{width:75%;margin-left:0}.row .col.s10{width:83.33333%;margin-left:0}.row .col.s11{width:91.66667%;margin-left:0}.row .col.s12{width:100%;margin-left:0}.row .col.offset-s1{margin-left:8.33333%}.row .col.offset-s2{margin-left:16.66667%}.row .col.offset-s3{margin-left:25%}.row .col.offset-s4{margin-left:33.33333%}.row .col.offset-s5{margin-left:41.66667%}.row .col.offset-s6{margin-left:50%}.row .col.offset-s7{margin-left:58.33333%}.row .col.offset-s8{margin-left:66.66667%}.row .col.offset-s9{margin-left:75%}.row .col.offset-s10{margin-left:83.33333%}.row .col.offset-s11{margin-left:91.66667%}.row .col.offset-s12{margin-left:100%}@media only screen and (min-width : 601px){.row .col.m1{width:8.33333%;margin-left:0}.row .col.m2{width:16.66667%;margin-left:0}.row .col.m3{width:25%;margin-left:0}.row .col.m4{width:33.33333%;margin-left:0}.row .col.m5{width:41.66667%;margin-left:0}.row .col.m6{width:50%;margin-left:0}.row .col.m7{width:58.33333%;margin-left:0}.row .col.m8{width:66.66667%;margin-left:0}.row .col.m9{width:75%;margin-left:0}.row .col.m10{width:83.33333%;margin-left:0}.row .col.m11{width:91.66667%;margin-left:0}.row .col.m12{width:100%;margin-left:0}.row .col.offset-m1{margin-left:8.33333%}.row .col.offset-m2{margin-left:16.66667%}.row .col.offset-m3{margin-left:25%}.row .col.offset-m4{margin-left:33.33333%}.row .col.offset-m5{margin-left:41.66667%}.row .col.offset-m6{margin-left:50%}.row .col.offset-m7{margin-left:58.33333%}.row .col.offset-m8{margin-left:66.66667%}.row .col.offset-m9{margin-left:75%}.row .col.offset-m10{margin-left:83.33333%}.row .col.offset-m11{margin-left:91.66667%}.row .col.offset-m12{margin-left:100%}}@media only screen and (min-width : 993px){.row .col.l1{width:8.33333%;margin-left:0}.row .col.l2{width:16.66667%;margin-left:0}.row .col.l3{width:25%;margin-left:0}.row .col.l4{width:33.33333%;margin-left:0}.row .col.l5{width:41.66667%;margin-left:0}.row .col.l6{width:50%;margin-left:0}.row .col.l7{width:58.33333%;margin-left:0}.row .col.l8{width:66.66667%;margin-left:0}.row .col.l9{width:75%;margin-left:0}.row .col.l10{width:83.33333%;margin-left:0}.row .col.l11{width:91.66667%;margin-left:0}.row .col.l12{width:100%;margin-left:0}.row .col.offset-l1{margin-left:8.33333%}.row .col.offset-l2{margin-left:16.66667%}.row .col.offset-l3{margin-left:25%}.row .col.offset-l4{margin-left:33.33333%}.row .col.offset-l5{margin-left:41.66667%}.row .col.offset-l6{margin-left:50%}.row .col.offset-l7{margin-left:58.33333%}.row .col.offset-l8{margin-left:66.66667%}.row .col.offset-l9{margin-left:75%}.row .col.offset-l10{margin-left:83.33333%}.row .col.offset-l11{margin-left:91.66667%}.row .col.offset-l12{margin-left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav a{color:#fff}nav .nav-wrapper{position:relative;height:100%}nav .nav-wrapper i{display:block;font-size:2rem}@media only screen and (min-width : 993px){nav a.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px}nav .button-collapse i{font-size:2.7rem;height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width : 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav ul{margin:0}nav ul li{-webkit-transition:background-color .3s;-moz-transition:background-color .3s;-o-transition:background-color .3s;-ms-transition:background-color .3s;transition:background-color .3s;float:left;padding:0}nav ul li:hover,nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{font-size:1rem;color:#fff;display:block;padding:0 15px}nav ul.left{float:left}nav .input-field{margin:0}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);-webkit-transition:color .3s;-moz-transition:color .3s;-o-transition:color .3s;-ms-transition:color .3s;transition:color .3s}nav .input-field label.active i{color:#fff}nav .input-field label.active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.navbar-fixed{position:relative;height:56px;z-index:998}.navbar-fixed nav{position:fixed}@media only screen and (min-width : 601px){nav,nav .nav-wrapper i,nav a.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}.navbar-fixed{height:64px}}@font-face{font-family:"Roboto";src:local(Roboto Thin),url("../font/roboto/Roboto-Thin.woff2") format("woff2"),url("../font/roboto/Roboto-Thin.woff") format("woff"),url("../font/roboto/Roboto-Thin.ttf") format("truetype");font-weight:200;}@font-face{font-family:"Roboto";src:local(Roboto Light),url("../font/roboto/Roboto-Light.woff2") format("woff2"),url("../font/roboto/Roboto-Light.woff") format("woff"),url("../font/roboto/Roboto-Light.ttf") format("truetype");font-weight:300;}@font-face{font-family:"Roboto";src:local(Roboto Regular),url("../font/roboto/Roboto-Regular.woff2") format("woff2"),url("../font/roboto/Roboto-Regular.woff") format("woff"),url("../font/roboto/Roboto-Regular.ttf") format("truetype");font-weight:400;}@font-face{font-family:"Roboto";src:url("../font/roboto/Roboto-Medium.woff2") format("woff2"),url("../font/roboto/Roboto-Medium.woff") format("woff"),url("../font/roboto/Roboto-Medium.ttf") format("truetype");font-weight:500;}@font-face{font-family:"Roboto";src:url("../font/roboto/Roboto-Bold.woff2") format("woff2"),url("../font/roboto/Roboto-Bold.woff") format("woff"),url("../font/roboto/Roboto-Bold.ttf") format("truetype");font-weight:700;}a{text-decoration:none}html{line-height:1.5;font-family:"Roboto", sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px;}}@media only screen and (min-width: 992px){html{font-size:14.5px;}}@media only screen and (min-width: 1200px){html{font-size:15px;}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.1}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.1rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 0.912rem 0}h5{font-size:1.64rem;line-height:110%;margin:0.82rem 0 0.656rem 0}h6{font-size:1rem;line-height:110%;margin:0.5rem 0 0.4rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light,footer.page-footer .footer-copyright{font-weight:300}.thin{font-weight:200}.flow-text{font-weight:300}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem;}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem;}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem;}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem;}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem;}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem;}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem;}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem;}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem;}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem;}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem;}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem;}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem;}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem;}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem;}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem;}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem;}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem;}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem;}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem;}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem;}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem;}}.card-panel{transition:box-shadow .25s;padding:20px;margin:0.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;overflow:hidden;margin:0.5rem 0 1rem 0;background-color:#fff;transition:box-shadow .25s;border-radius:2px}.card .card-title{color:#fff;font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{overflow:hidden}.card.small .card-content,.card.medium .card-content,.card.large .card-content{overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.small .card-image{height:150px}.card.small .card-content{height:150px}.card.medium{height:400px}.card.medium .card-image{height:250px}.card.medium .card-content{height:150px}.card.large{height:500px}.card.large .card-image{height:330px}.card.large .card-content{height:170px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{position:absolute;bottom:0;left:0;padding:20px}.card .card-content{padding:20px;border-radius:0 0 2px 2px}.card .card-content p{margin:0;color:inherit}.card .card-content .card-title{line-height:48px}.card .card-action{border-top:1px solid rgba(160,160,160,0.2);padding:20px}.card .card-action a{color:#ffab40;margin-right:20px;-webkit-transition:color .3s ease;-moz-transition:color .3s ease;-o-transition:color .3s ease;-ms-transition:color .3s ease;transition:color .3s ease;text-transform:uppercase}.card .card-action a:hover{color:#ffd8a6}.card .card-reveal{padding:20px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;top:100%;height:100%;z-index:1;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width : 600px){#toast-container{min-width:100%;bottom:0%;}}@media only screen and (min-width : 601px) and (max-width : 992px){#toast-container{min-width:30%;left:5%;bottom:7%;}}@media only screen and (min-width : 993px){#toast-container{min-width:8%;top:10%;right:7%;}}.toast{border-radius:2px;top:0;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:48px;line-height:48px;background-color:#323232;padding:0 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-justify-content:space-between;justify-content:space-between}.toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width : 600px){.toast{width:100%;border-radius:0;}}@media only screen and (min-width : 601px) and (max-width : 992px){.toast{float:left;}}@media only screen and (min-width : 993px){.toast{float:right;}}.tabs{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;position:relative;height:48px;background-color:#fff;margin:0 auto;width:100%;white-space:nowrap}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;display:block;float:left;text-align:center;line-height:48px;height:48px;padding:0 20px;margin:0;text-transform:uppercase;letter-spacing:.8px;width:15%}.tabs .tab a{color:#ee6e73;display:block;width:100%;height:100%;-webkit-transition:color .28s ease;-moz-transition:color .28s ease;-o-transition:color .28s ease;-ms-transition:color .28s ease;transition:color .28s ease}.tabs .tab a:hover{color:#f9c9cb}.tabs .tab.disabled a{color:#f9c9cb;cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}.tabs .tab{padding:0}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:1rem;opacity:0;display:none;position:absolute;text-align:center;overflow:hidden;left:0;top:0;will-change:top, left}.backdrop{position:absolute;opacity:0;display:none;height:7px;width:14px;border-radius:0 0 14px 14px;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 10%;-moz-transform-origin:50% 10%;-ms-transform-origin:50% 10%;-o-transform-origin:50% 10%;transform-origin:50% 10%;will-change:transform, opacity}.btn,.btn-large,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;outline:0;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn:disabled,.btn-large:disabled,.btn-large:disabled,.btn-floating:disabled{background-color:#DFDFDF !important;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled *,.disabled.btn-large *,.btn-floating.disabled *,.btn-large.disabled *,.btn:disabled *,.btn-large:disabled *,.btn-large:disabled *,.btn-floating:disabled *{pointer-events:none}.btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover{background-color:#DFDFDF;color:#9F9F9F}.btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn,.btn-large{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;-webkit-transition:.2s ease-out;-moz-transition:.2s ease-out;-o-transition:.2s ease-out;-ms-transition:.2s ease-out;transition:.2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:37px;height:37px;line-height:37px;padding:0;background-color:#26a69a;border-radius:50%;transition:.3s;cursor:pointer;vertical-align:middle}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:37px}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:55.5px;height:55.5px}.btn-floating.btn-large i{line-height:55.5px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:998}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.btn-flat{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer}.btn-flat.disabled{color:#b3b3b3;cursor:default}.btn-large{height:54px;line-height:56px}.btn-large i{font-size:1.6rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width, height}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;line-height:1.5rem;width:100%;text-align:left;text-transform:none}.dropdown-content li:hover,.dropdown-content li.active{background-color:#eee}.dropdown-content li>a,.dropdown-content li>span{font-size:1.2rem;color:#26a69a;display:block;padding:1rem 1rem}.dropdown-content li>a>i{height:inherit;line-height:inherit}/*! | ||
7 | * Waves v0.6.0 | ||
8 | * http://fian.my.id/Waves | ||
9 | * | ||
10 | * Copyright 2014 Alfiana E. Sibuea and other contributors | ||
11 | * Released under the MIT license | ||
12 | * https://github.com/fians/Waves/blob/master/LICENSE | ||
13 | */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;will-change:opacity, transform;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;-ms-transition:all .3s ease-out;transition:all .3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);-webkit-transition:all 0.7s ease-out;-moz-transition:all 0.7s ease-out;-o-transition:all 0.7s ease-out;-ms-transition:all 0.7s ease-out;transition:all 0.7s ease-out;-webkit-transition-property:-webkit-transform, opacity;-moz-transition-property:-moz-transform, opacity;-o-transition-property:-o-transform, opacity;transition-property:transform, opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;-ms-transition:none !important;transition:none !important}.waves-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, white 100%, black 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}a.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}@media only screen and (max-width : 992px){.modal{width:80%;}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-flat{float:right;margin:6px 0}.lean-overlay{position:fixed;z-index:999;top:-100px;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:0.5rem 0 1rem 0}.collapsible-header{display:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.collapsible-body p{margin:0;padding:2rem}.side-nav .collapsible{border:none;box-shadow:none}.side-nav .collapsible li{padding:0}.side-nav .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;margin:0 1rem}.side-nav .collapsible-header i{line-height:inherit}.side-nav .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a{margin:0 1rem 0 2rem}.collapsible.popout{border:none;box-shadow:none}.collapsible.popout>li{box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;transition:margin .35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#E4E4E4}.chip img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip i.material-icons{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.materialboxed{display:block;cursor:zoom-in;position:relative;-webkit-transition:opacity .4s;-moz-transition:opacity .4s;-o-transition:opacity .4s;-ms-transition:opacity .4s;transition:opacity .4s}.materialboxed:hover{will-change:left, top, width, height}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#292929;z-index:999;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:0.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}:-moz-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:1rem;margin:0 0 15px 0;padding:0;box-shadow:none;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;transition:all .3s}input[type=text]:disabled,input[type=text][readonly="readonly"],input[type=password]:disabled,input[type=password][readonly="readonly"],input[type=email]:disabled,input[type=email][readonly="readonly"],input[type=url]:disabled,input[type=url][readonly="readonly"],input[type=time]:disabled,input[type=time][readonly="readonly"],input[type=date]:disabled,input[type=date][readonly="readonly"],input[type=datetime-local]:disabled,input[type=datetime-local][readonly="readonly"],input[type=tel]:disabled,input[type=tel][readonly="readonly"],input[type=number]:disabled,input[type=number][readonly="readonly"],input[type=search]:disabled,input[type=search][readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26)}input[type=text]:disabled+label,input[type=text][readonly="readonly"]+label,input[type=password]:disabled+label,input[type=password][readonly="readonly"]+label,input[type=email]:disabled+label,input[type=email][readonly="readonly"]+label,input[type=url]:disabled+label,input[type=url][readonly="readonly"]+label,input[type=time]:disabled+label,input[type=time][readonly="readonly"]+label,input[type=date]:disabled+label,input[type=date][readonly="readonly"]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly="readonly"]+label,input[type=tel]:disabled+label,input[type=tel][readonly="readonly"]+label,input[type=number]:disabled+label,input[type=number][readonly="readonly"]+label,input[type=search]:disabled+label,input[type=search][readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.26)}input[type=text]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=url]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=search]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}input[type=text]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input[type=text].valid,input[type=text]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4CAF50;opacity:1}input[type=text].invalid,input[type=text]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #F44336;box-shadow:0 1px 0 0 #F44336}input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#F44336;opacity:1}input[type=text]+label:after,input[type=password]+label:after,input[type=email]+label:after,input[type=url]+label:after,input[type=time]+label:after,input[type=date]+label:after,input[type=datetime-local]+label:after,input[type=tel]+label:after,input[type=number]+label:after,input[type=search]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:65px;opacity:0;transition:.2s opacity ease-out,.2s color ease-out}.input-field{position:relative;margin-top:1rem}.input-field label{color:#9e9e9e;position:absolute;top:0.8rem;left:0.75rem;font-size:1rem;cursor:text;-webkit-transition:.2s ease-out;-moz-transition:.2s ease-out;-o-transition:.2s ease-out;-ms-transition:.2s ease-out;transition:.2s ease-out}.input-field label.active{font-size:0.8rem;-webkit-transform:translateY(-140%);-moz-transform:translateY(-140%);-ms-transform:translateY(-140%);-o-transform:translateY(-140%);transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;-webkit-transition:color .2s;-moz-transition:color .2s;-o-transition:color .2s;-ms-transition:color .2s;transition:color .2s}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ textarea{padding-top:.8rem}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width : 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width : 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus ~ .mdi-navigation-close,.input-field input[type=search]:focus ~ .material-icons{color:#444}.input-field input[type=search]+label{left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:1.6rem 0;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;left:-9999px;visibility:hidden}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;-moz-transition:.28s ease;-o-transition:.28s ease;-ms-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type="radio"]+label:before,[type="radio"]+label:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;-webkit-transition:.28s ease;-moz-transition:.28s ease;-o-transition:.28s ease;-ms-transition:.28s ease;transition:.28s ease}[type="radio"]:not(:checked)+label:before{border-radius:50%;border:2px solid #5a5a5a}[type="radio"]:not(:checked)+label:after{border-radius:50%;border:2px solid #5a5a5a;z-index:-1;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}[type="radio"]:checked+label:before{border-radius:50%;border:2px solid transparent}[type="radio"]:checked+label:after{border-radius:50%;border:2px solid #26a69a;background-color:#26a69a;z-index:0;-webkit-transform:scale(1.02);-moz-transform:scale(1.02);-ms-transform:scale(1.02);-o-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+label:before{border-radius:50%;border:2px solid #26a69a}[type="radio"].with-gap:checked+label:after{border-radius:50%;border:2px solid #26a69a;background-color:#26a69a;z-index:0;-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}[type="radio"].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,0.26)}[type="radio"].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before,[type="radio"]:disabled:checked+label:before{background-color:transparent;border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled+label{color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:checked+label:after{background-color:rgba(0,0,0,0.26);border-color:#BDBDBD}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px;visibility:hidden}[type="checkbox"]{}[type="checkbox"]+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}[type="checkbox"]+label:before{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;-webkit-transition:0.2s;-moz-transition:0.2s;-o-transition:0.2s;-ms-transition:0.2s;transition:0.2s}[type="checkbox"]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,0.26)}[type="checkbox"]:checked+label:before{top:-4px;left:-3px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);border-bottom:2px solid rgba(0,0,0,0.26)}[type="checkbox"]:indeterminate+label:before{left:-10px;top:-11px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+label:before{border-right:2px solid rgba(0,0,0,0.26);background-color:transparent}[type="checkbox"].filled-in+label:after{border-radius:2px}[type="checkbox"].filled-in+label:before,[type="checkbox"].filled-in+label:after{content:'';left:0;position:absolute;transition:border .25s,background-color .25s,width .2s .1s,height .2s .1s,top .2s .1s,left .2s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+label:before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+label:after{top:0px;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}[type="checkbox"].filled-in:disabled:checked+label:before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,0.4);left:-5px;top:-3px;transition:left 0.3s ease,background .3s ease,box-shadow 0.1s ease}input[type=checkbox]:checked:not(:disabled) ~ .lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(38,166,154,0.1)}input[type=checkbox]:not(:disabled) ~ .lever:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}.switch label input[type=checkbox]:checked+.lever:after{left:24px}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:1rem;margin:0 0 15px 0;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:16px;font-size:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,0.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:0.8rem}select{display:none}select.browser-default{display:block}select:disabled{color:rgba(0,0,0,0.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,0.3)}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled{color:rgba(0,0,0,0.3);background-color:transparent}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0px;padding:0}input[type=range]+.thumb{position:absolute;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;top:10px;margin-left:-6px;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;-o-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]:focus{outline:none}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:14px;width:14px;border-radius:50%;background-color:#26a69a;transform-origin:50% 50%;margin:-5px 0 0 0;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;-ms-transition:0.3s;transition:0.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:none}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid white;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ea4a4f}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ea4a4f}.side-nav{position:fixed;width:240px;left:-105%;top:0;margin:0;height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:left}.side-nav.right-aligned{will-change:right;right:-105%;left:auto}.side-nav .collapsible{margin:0}.side-nav li{float:none;padding:0 15px}.side-nav li:hover,.side-nav li.active{background-color:#ddd}.side-nav a{color:#444;display:block;font-size:1rem;height:64px;line-height:64px;padding:0 15px}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed a{display:block;padding:0 15px;color:#444}.side-nav.fixed{left:0;position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width : 992px){.side-nav.fixed{left:-105%}.side-nav.fixed.right-aligned{right:-105%;left:auto}}.side-nav .collapsible-body li.active,.side-nav.fixed .collapsible-body li.active{background-color:#ee6e73}.side-nav .collapsible-body li.active a,.side-nav.fixed .collapsible-body li.active a{color:#fff}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{transform:rotate(130deg)}50%{transform:rotate(-5deg)}to{transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{transform:rotate(-130deg)}50%{transform:rotate(5deg)}to{transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;-webkit-transition:background-color .3s;-moz-transition:background-color .3s;-o-transition:background-color .3s;-ms-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! | ||
14 | * Default mobile-first, responsive styling for pickadate.js | ||
15 | * Demo: http://amsul.github.io/pickadate.js | ||
16 | */.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;-webkit-transition:background 0.15s ease-out,top 0s 0.15s;-moz-transition:background 0.15s ease-out,top 0s 0.15s;transition:background 0.15s ease-out,top 0s 0.15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;-webkit-transition:all 0.15s ease-out;-moz-transition:all 0.15s ease-out;transition:all 0.15s ease-out}@media (min-height: 28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height: 40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height: 28.875em){.picker__wrap{display:block}}.picker__box{background:#ffffff;display:table-cell;vertical-align:middle}@media (min-height: 28.875em){.picker__box{display:block;border:1px solid #777777;border-top-color:#898989;border-bottom-width:0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;-webkit-box-shadow:0 12px 36px 16px rgba(0,0,0,0.24);-moz-box-shadow:0 12px 36px 16px rgba(0,0,0,0.24);box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);-webkit-transition:background 0.15s ease-out;-moz-transition:background 0.15s ease-out;transition:background 0.15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height: 35.875em){.picker--opened .picker__frame{top:10%;bottom:20% auto}}.picker__input.picker__input--active{border-color:#E3F2FD}.picker__frame{margin:0 auto;max-width:325px}@media (min-height: 38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#FFFFFF;width:40%}.picker__select--year.browser-default{display:inline;background-color:#FFFFFF;width:25%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999999;font-weight:500}@media (min-height: 33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaaaaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#dddddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(.75);-moz-transform:scale(.75);-ms-transform:scale(.75);-o-transform:scale(.75);transform:scale(.75);background:#0089ec;color:#ffffff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbbbbb}.picker__footer{text-align:center;display:flex;align-items:center;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #ffffff;background:#ffffff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:none}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:0.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #ee2200}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaaaaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(.9);-moz-transform:scale(.9);-ms-transform:scale(.9);-o-transform:scale(.9);transform:scale(.9);background-color:#26a69a;color:#ffffff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#26a69a}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:0.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:0.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:0.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;margin-bottom:-1px;position:relative;background:#ffffff;padding:.75em 1.25em}@media (min-height: 46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#ffffff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default;border-color:#dddddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000000;background:#b1dcfb;background:#ee2200;border-color:#ee2200;cursor:pointer;color:#ffffff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#ffffff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height: 40.125em){.picker--time .picker__box{margin-bottom:5em}} \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/print.css b/src/Wallabag/CoreBundle/Resources/public/themes/material/css/print.css deleted file mode 100755 index 2a799c44..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/css/print.css +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* ### Layout ### */ | ||
2 | |||
3 | body { | ||
4 | font-family: Serif; | ||
5 | background-color: #fff; | ||
6 | } | ||
7 | |||
8 | @page { | ||
9 | margin: 1cm; | ||
10 | } | ||
11 | |||
12 | img { | ||
13 | max-width: 100% !important; | ||
14 | } | ||
15 | |||
16 | /* ### Content ### */ | ||
17 | |||
18 | /* Hide useless blocks */ | ||
19 | body > header, | ||
20 | #article_toolbar, | ||
21 | #links, | ||
22 | #sort, | ||
23 | body > footer, | ||
24 | .top_link, | ||
25 | div.tools, | ||
26 | header div, | ||
27 | .messages, | ||
28 | .entry + .results { | ||
29 | display: none !important; | ||
30 | } | ||
31 | |||
32 | article { | ||
33 | border: none !important; | ||
34 | } | ||
35 | |||
36 | /* Add URL after links */ | ||
37 | .vieworiginal a:after { | ||
38 | content: " (" attr(href) ")"; | ||
39 | } | ||
40 | |||
41 | /* Add explanation after abbr */ | ||
42 | abbr[title]:after { | ||
43 | content: " (" attr(title) ")"; | ||
44 | } | ||
45 | |||
46 | /* Change border on current pager item */ | ||
47 | .pagination span.current { | ||
48 | border-style: dashed; | ||
49 | } | ||
50 | |||
51 | #main { | ||
52 | width: 100%; | ||
53 | padding: 0; | ||
54 | margin: 0; | ||
55 | margin-left: 0; | ||
56 | padding-right: 0; | ||
57 | padding-bottom: 0; | ||
58 | } | ||
59 | |||
60 | #article { | ||
61 | width: 100%; | ||
62 | } | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.eot b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.eot deleted file mode 100644 index 7318414e..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.eot +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.svg b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.svg deleted file mode 100644 index 365c0c42..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.svg +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | <?xml version="1.0" standalone="no"?> | ||
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > | ||
3 | <svg xmlns="http://www.w3.org/2000/svg"> | ||
4 | <metadata>Generated by IcoMoon</metadata> | ||
5 | <defs> | ||
6 | <font id="icomoon" horiz-adv-x="1024"> | ||
7 | <font-face units-per-em="1024" ascent="960" descent="-64" /> | ||
8 | <missing-glyph horiz-adv-x="1024" /> | ||
9 | <glyph unicode=" " horiz-adv-x="512" d="" /> | ||
10 | <glyph unicode="" glyph-name="google-plus2" d="M0.806 90.336c-0.244 2.532-0.452 5.070-0.584 7.63 0.13-2.56 0.34-5.098 0.584-7.63zM235.908 394.852c92.010-2.738 153.734 92.698 137.862 213.198-15.894 120.48-103.396 217.168-195.408 219.922-92.026 2.73-153.74-89.482-137.852-210 15.882-120.468 103.352-220.374 195.398-223.12zM1024 704v85.31c0 93.88-76.782 170.69-170.658 170.69h-682.656c-92.276 0-168.012-74.232-170.564-165.926 58.362 51.386 139.324 94.316 222.874 94.316 89.304 0 357.244 0 357.244 0l-79.948-67.618h-113.268c75.13-28.804 115.156-116.124 115.156-205.722 0-75.248-41.81-139.954-100.888-185.968-57.644-44.902-68.572-63.708-68.572-101.878 0-32.578 61.746-88 94.032-110.788 94.382-66.538 124.916-128.312 124.916-231.456 0-16.428-2.042-32.83-6.066-48.96h307.742c93.874 0 170.656 76.75 170.656 170.69v533.308h-192v-191.998h-64v192h-191.998v64h191.998v192h64v-192h192zM185.886 194.064c21.614 0 41.422 0.59 61.936 0.59-27.146 26.334-48.626 58.6-48.626 98.38 0 23.608 7.564 46.336 18.134 66.52-10.782-0.77-21.79-0.994-33.126-0.994-74.356 0-137.506 24.076-184.204 63.854v-67.242l0.006-201.73c53.44 25.374 116.888 40.622 185.88 40.622zM3.42 72.742c-1.112 5.458-1.966 11.006-2.542 16.634 0.574-5.628 1.43-11.176 2.542-16.634zM455.45 7.154c-15.058 58.806-68.454 87.964-142.888 139.568-27.072 8.732-56.894 13.874-88.894 14.208-89.618 0.964-173.108-34.942-220.216-88.372 15.92-77.706 85.034-136.558 167.234-136.558h286.444c1.816 11.128 2.696 22.632 2.696 34.432 0 12.534-1.534 24.792-4.376 36.722z" /> | ||
11 | <glyph unicode="" glyph-name="facebook2" d="M853.35 960h-682.702c-94.25 0-170.648-76.42-170.648-170.686v-682.63c0-94.266 76.398-170.684 170.648-170.684h341.352v448h-128v128h128v96c0 88.366 71.634 160 160 160h160v-128h-160c-17.674 0-32-14.328-32-32v-96h176l-32-128h-144v-448h213.35c94.25 0 170.65 76.418 170.65 170.684v682.63c0 94.266-76.4 170.686-170.65 170.686z" /> | ||
12 | <glyph unicode="" glyph-name="twitter" d="M1024 765.582c-37.676-16.708-78.164-28.002-120.66-33.080 43.372 26 76.686 67.17 92.372 116.23-40.596-24.078-85.556-41.56-133.41-50.98-38.32 40.83-92.922 66.34-153.346 66.34-116.022 0-210.088-94.058-210.088-210.078 0-16.466 1.858-32.5 5.44-47.878-174.6 8.764-329.402 92.4-433.018 219.506-18.084-31.028-28.446-67.116-28.446-105.618 0-72.888 37.088-137.192 93.46-174.866-34.438 1.092-66.832 10.542-95.154 26.278-0.020-0.876-0.020-1.756-0.020-2.642 0-101.788 72.418-186.696 168.522-206-17.626-4.8-36.188-7.372-55.348-7.372-13.538 0-26.698 1.32-39.528 3.772 26.736-83.46 104.32-144.206 196.252-145.896-71.9-56.35-162.486-89.934-260.916-89.934-16.958 0-33.68 0.994-50.116 2.94 92.972-59.61 203.402-94.394 322.042-94.394 386.422 0 597.736 320.124 597.736 597.744 0 9.108-0.206 18.168-0.61 27.18 41.056 29.62 76.672 66.62 104.836 108.748z" /> | ||
13 | <glyph unicode="" glyph-name="apple" d="M791.498 415.908c-1.294 129.682 105.758 191.876 110.542 194.966-60.152 88.020-153.85 100.078-187.242 101.472-79.742 8.074-155.596-46.948-196.066-46.948-40.368 0-102.818 45.754-168.952 44.552-86.916-1.292-167.058-50.538-211.812-128.38-90.304-156.698-23.126-388.84 64.89-515.926 43.008-62.204 94.292-132.076 161.626-129.58 64.842 2.588 89.362 41.958 167.756 41.958s100.428-41.958 169.050-40.67c69.774 1.296 113.982 63.398 156.692 125.796 49.39 72.168 69.726 142.038 70.924 145.626-1.548 0.706-136.060 52.236-137.408 207.134zM662.562 796.478c35.738 43.358 59.86 103.512 53.28 163.522-51.478-2.096-113.878-34.29-150.81-77.55-33.142-38.376-62.148-99.626-54.374-158.436 57.466-4.484 116.128 29.204 151.904 72.464z" /> | ||
14 | <glyph unicode="" glyph-name="android" d="M896 576c-35.2 0-64-28.8-64-64v-256c0-35.2 28.8-64 64-64s64 28.8 64 64v256c0 35.2-28.8 64-64 64zM128 576c-35.2 0-64-28.8-64-64v-256c0-35.2 28.8-64 64-64s64 28.8 64 64v256c0 35.2-28.802 64-64 64zM224 224c0-53.020 42.98-96 96-96v0-128c0-35.2 28.8-64 64-64s64 28.8 64 64v128h128v-128c0-35.2 28.8-64 64-64s64 28.8 64 64v128c53.020 0 96 42.98 96 96v352h-576v-352zM798.216 639.998c-9.716 87.884-59.004 163.792-129.62 209.646l32.024 64.046c7.904 15.806 1.496 35.028-14.31 42.932s-35.030 1.496-42.932-14.312l-32.142-64.286-8.35 3.316c-28.568 9.502-59.122 14.66-90.886 14.66-31.762 0-62.316-5.158-90.888-14.656l-8.348-3.316-32.142 64.282c-7.904 15.808-27.128 22.212-42.932 14.312-15.808-7.904-22.214-27.126-14.312-42.932l32.022-64.046c-70.616-45.852-119.904-121.762-129.622-209.644v-32h574.222v31.998h-1.784zM416 704c-17.674 0-32 14.328-32 32 0 17.648 14.288 31.958 31.93 31.996 0.032 0 0.062-0.002 0.094-0.002 0.018 0 0.036 0.002 0.052 0.002 17.638-0.042 31.924-14.35 31.924-31.996 0-17.672-14.326-32-32-32zM608 704c-17.674 0-32 14.328-32 32 0 17.646 14.286 31.954 31.924 31.996 0.016 0 0.034-0.002 0.050-0.002 0.032 0 0.064 0.002 0.096 0.002 17.64-0.038 31.93-14.348 31.93-31.996 0-17.672-14.326-32-32-32z" /> | ||
15 | <glyph unicode="" glyph-name="chrome" d="M258.278 513.458l-146.532 253.802c93.818 117.464 238.234 192.74 400.254 192.74 187.432 0 351.31-100.736 440.532-251h-417.77c-7.504 0.65-15.092 1-22.762 1-121.874 0-224.578-83.644-253.722-196.542zM695.306 635h293.46c22.74-57.93 35.234-121.004 35.234-187 0-280.826-226.1-508.804-506.186-511.926l209.394 362.678c29.48 42.378 46.792 93.826 46.792 149.248 0 73.17-30.164 139.42-78.694 187zM326 448c0 102.56 83.44 186 186 186s186-83.44 186-186c0-102.56-83.44-186-186-186s-186 83.44-186 186zM582.182 195.558l-146.578-253.878c-246.532 36.884-435.604 249.516-435.604 506.32 0 91.218 23.884 176.846 65.696 251.024l209.030-362.054c41.868-89.112 132.476-150.97 237.274-150.97 24.3 0 47.836 3.34 70.182 9.558z" /> | ||
16 | <glyph unicode="" glyph-name="firefox" d="M1022.526 625.86l-11.86-76.080c0 0-16.954 140.856-37.732 193.514-31.846 80.688-46.014 80.040-46.108 79.922 21.33-54.204 17.462-83.324 17.462-83.324s-37.792 102.998-137.712 135.768c-110.686 36.282-170.57 26.364-177.488 24.486-1.050 0.008-2.064 0.010-3.030 0.010 0.818-0.062 1.612-0.146 2.426-0.212-0.034-0.020-0.090-0.042-0.082-0.052 0.45-0.548 122.306-21.302 143.916-50.996 0 0-51.76 0-103.272-14.842-2.328-0.666 189.524-23.964 228.746-215.674 0 0-21.030 43.876-47.040 51.328 17.106-52.036 12.714-150.776-3.576-199.85-2.096-6.312-4.24 27.282-36.328 41.75 10.28-73.646-0.616-190.456-51.708-222.632-3.982-2.504 32.030 115.31 7.242 69.762-142.708-218.802-311.404-100.972-387.248-49.11 38.866-8.462 112.654 1.318 145.314 25.612 0.042 0.030 0.078 0.056 0.118 0.086 35.468 24.252 56.472 41.964 75.334 37.772 18.874-4.214 31.438 14.726 16.78 31.53-14.676 16.838-50.314 39.978-98.524 27.366-34-8.904-76.134-46.522-140.448-8.432-49.364 29.25-54.012 53.546-54.45 70.376 1.218 5.966 2.754 11.536 4.576 16.624 5.682 15.87 22.912 20.658 32.494 24.438 16.256-2.792 30.262-7.862 44.968-15.406 0.19 4.894 0.252 11.39-0.018 18.76 1.41 2.802 0.538 11.252-1.722 21.58-1.302 10.308-3.42 20.974-6.752 30.692 0.012 0.002 0.020 0.010 0.030 0.014 0.056 0.018 0.108 0.040 0.156 0.070 0.078 0.044 0.146 0.112 0.208 0.19 0.012 0.020 0.030 0.034 0.044 0.052 0.082 0.124 0.154 0.272 0.198 0.466 1.020 4.618 12.022 13.524 25.718 23.1 12.272 8.58 26.702 17.696 38.068 24.752 10.060 6.248 17.72 10.882 19.346 12.098 0.618 0.466 1.358 1.012 2.164 1.636 0.15 0.116 0.3 0.232 0.454 0.354 0.094 0.074 0.19 0.148 0.286 0.226 5.41 4.308 13.484 12.448 15.178 29.578 0.004 0.042 0.010 0.080 0.012 0.122 0.050 0.504 0.092 1.014 0.13 1.534 0.028 0.362 0.050 0.726 0.072 1.096 0.014 0.284 0.032 0.566 0.044 0.856 0.030 0.674 0.050 1.364 0.060 2.064 0 0.040 0.002 0.076 0.004 0.116 0.022 1.658-0.006 3.386-0.104 5.202-0.054 1.014-0.126 1.93-0.298 2.762-0.008 0.044-0.018 0.092-0.028 0.136-0.018 0.082-0.036 0.164-0.058 0.244-0.036 0.146-0.076 0.292-0.122 0.43-0.006 0.018-0.010 0.032-0.016 0.046-0.052 0.16-0.112 0.314-0.174 0.464-0.004 0.006-0.004 0.010-0.006 0.016-1.754 4.108-8.32 5.658-35.442 6.118-0.026 0.002-0.050 0.002-0.076 0.002v0c-11.066 0.188-25.538 0.194-44.502 0.118-33.25-0.134-51.628 32.504-57.494 45.132 8.040 44.46 31.276 76.142 69.45 97.626 0.722 0.406 0.58 0.742-0.274 0.978 7.464 4.514-90.246 0.124-135.186-57.036-39.888 9.914-74.654 9.246-104.616 2.214-5.754 0.162-12.924 0.88-21.434 2.652-19.924 18.056-48.448 51.402-49.976 91.208 0 0-0.092-0.072-0.252-0.204-0.020 0.382-0.056 0.76-0.072 1.142 0 0-60.716-46.664-51.628-173.882-0.022-2.036-0.064-3.986-0.12-5.874-16.432-22.288-24.586-41.020-25.192-45.156-14.56-29.644-29.334-74.254-41.356-141.98 0 0 8.408 26.666 25.284 56.866-12.412-38.022-22.164-97.156-16.436-185.856 0 0 1.514 19.666 6.874 47.994 4.186-55.010 22.518-122.924 68.858-202.788 88.948-153.32 225.67-230.74 376.792-242.616 26.836-2.212 54.050-2.264 81.424-0.186 2.516 0.178 5.032 0.364 7.55 0.574 30.964 2.174 62.134 6.852 93.238 14.366 425.172 102.798 378.942 616.198 378.942 616.198z" /> | ||
17 | </font></defs></svg> \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.ttf deleted file mode 100644 index fff65bca..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.woff b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.woff deleted file mode 100644 index f3fe2a46..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/icomoon/icomoon.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/LICENSE.txt b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/LICENSE.txt deleted file mode 100644 index 542f6537..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/LICENSE.txt +++ /dev/null | |||
@@ -1,428 +0,0 @@ | |||
1 | https://github.com/google/material-design-icons/blob/master/LICENSE | ||
2 | https://github.com/FezVrasta/bootstrap-material-design/blob/master/fonts/LICENSE.txt | ||
3 | |||
4 | Attribution-ShareAlike 4.0 International | ||
5 | |||
6 | ======================================================================= | ||
7 | |||
8 | Creative Commons Corporation ("Creative Commons") is not a law firm and | ||
9 | does not provide legal services or legal advice. Distribution of | ||
10 | Creative Commons public licenses does not create a lawyer-client or | ||
11 | other relationship. Creative Commons makes its licenses and related | ||
12 | information available on an "as-is" basis. Creative Commons gives no | ||
13 | warranties regarding its licenses, any material licensed under their | ||
14 | terms and conditions, or any related information. Creative Commons | ||
15 | disclaims all liability for damages resulting from their use to the | ||
16 | fullest extent possible. | ||
17 | |||
18 | Using Creative Commons Public Licenses | ||
19 | |||
20 | Creative Commons public licenses provide a standard set of terms and | ||
21 | conditions that creators and other rights holders may use to share | ||
22 | original works of authorship and other material subject to copyright | ||
23 | and certain other rights specified in the public license below. The | ||
24 | following considerations are for informational purposes only, are not | ||
25 | exhaustive, and do not form part of our licenses. | ||
26 | |||
27 | Considerations for licensors: Our public licenses are | ||
28 | intended for use by those authorized to give the public | ||
29 | permission to use material in ways otherwise restricted by | ||
30 | copyright and certain other rights. Our licenses are | ||
31 | irrevocable. Licensors should read and understand the terms | ||
32 | and conditions of the license they choose before applying it. | ||
33 | Licensors should also secure all rights necessary before | ||
34 | applying our licenses so that the public can reuse the | ||
35 | material as expected. Licensors should clearly mark any | ||
36 | material not subject to the license. This includes other CC- | ||
37 | licensed material, or material used under an exception or | ||
38 | limitation to copyright. More considerations for licensors: | ||
39 | wiki.creativecommons.org/Considerations_for_licensors | ||
40 | |||
41 | Considerations for the public: By using one of our public | ||
42 | licenses, a licensor grants the public permission to use the | ||
43 | licensed material under specified terms and conditions. If | ||
44 | the licensor's permission is not necessary for any reason--for | ||
45 | example, because of any applicable exception or limitation to | ||
46 | copyright--then that use is not regulated by the license. Our | ||
47 | licenses grant only permissions under copyright and certain | ||
48 | other rights that a licensor has authority to grant. Use of | ||
49 | the licensed material may still be restricted for other | ||
50 | reasons, including because others have copyright or other | ||
51 | rights in the material. A licensor may make special requests, | ||
52 | such as asking that all changes be marked or described. | ||
53 | Although not required by our licenses, you are encouraged to | ||
54 | respect those requests where reasonable. More_considerations | ||
55 | for the public: | ||
56 | wiki.creativecommons.org/Considerations_for_licensees | ||
57 | |||
58 | ======================================================================= | ||
59 | |||
60 | Creative Commons Attribution-ShareAlike 4.0 International Public | ||
61 | License | ||
62 | |||
63 | By exercising the Licensed Rights (defined below), You accept and agree | ||
64 | to be bound by the terms and conditions of this Creative Commons | ||
65 | Attribution-ShareAlike 4.0 International Public License ("Public | ||
66 | License"). To the extent this Public License may be interpreted as a | ||
67 | contract, You are granted the Licensed Rights in consideration of Your | ||
68 | acceptance of these terms and conditions, and the Licensor grants You | ||
69 | such rights in consideration of benefits the Licensor receives from | ||
70 | making the Licensed Material available under these terms and | ||
71 | conditions. | ||
72 | |||
73 | |||
74 | Section 1 -- Definitions. | ||
75 | |||
76 | a. Adapted Material means material subject to Copyright and Similar | ||
77 | Rights that is derived from or based upon the Licensed Material | ||
78 | and in which the Licensed Material is translated, altered, | ||
79 | arranged, transformed, or otherwise modified in a manner requiring | ||
80 | permission under the Copyright and Similar Rights held by the | ||
81 | Licensor. For purposes of this Public License, where the Licensed | ||
82 | Material is a musical work, performance, or sound recording, | ||
83 | Adapted Material is always produced where the Licensed Material is | ||
84 | synched in timed relation with a moving image. | ||
85 | |||
86 | b. Adapter's License means the license You apply to Your Copyright | ||
87 | and Similar Rights in Your contributions to Adapted Material in | ||
88 | accordance with the terms and conditions of this Public License. | ||
89 | |||
90 | c. BY-SA Compatible License means a license listed at | ||
91 | creativecommons.org/compatiblelicenses, approved by Creative | ||
92 | Commons as essentially the equivalent of this Public License. | ||
93 | |||
94 | d. Copyright and Similar Rights means copyright and/or similar rights | ||
95 | closely related to copyright including, without limitation, | ||
96 | performance, broadcast, sound recording, and Sui Generis Database | ||
97 | Rights, without regard to how the rights are labeled or | ||
98 | categorized. For purposes of this Public License, the rights | ||
99 | specified in Section 2(b)(1)-(2) are not Copyright and Similar | ||
100 | Rights. | ||
101 | |||
102 | e. Effective Technological Measures means those measures that, in the | ||
103 | absence of proper authority, may not be circumvented under laws | ||
104 | fulfilling obligations under Article 11 of the WIPO Copyright | ||
105 | Treaty adopted on December 20, 1996, and/or similar international | ||
106 | agreements. | ||
107 | |||
108 | f. Exceptions and Limitations means fair use, fair dealing, and/or | ||
109 | any other exception or limitation to Copyright and Similar Rights | ||
110 | that applies to Your use of the Licensed Material. | ||
111 | |||
112 | g. License Elements means the license attributes listed in the name | ||
113 | of a Creative Commons Public License. The License Elements of this | ||
114 | Public License are Attribution and ShareAlike. | ||
115 | |||
116 | h. Licensed Material means the artistic or literary work, database, | ||
117 | or other material to which the Licensor applied this Public | ||
118 | License. | ||
119 | |||
120 | i. Licensed Rights means the rights granted to You subject to the | ||
121 | terms and conditions of this Public License, which are limited to | ||
122 | all Copyright and Similar Rights that apply to Your use of the | ||
123 | Licensed Material and that the Licensor has authority to license. | ||
124 | |||
125 | j. Licensor means the individual(s) or entity(ies) granting rights | ||
126 | under this Public License. | ||
127 | |||
128 | k. Share means to provide material to the public by any means or | ||
129 | process that requires permission under the Licensed Rights, such | ||
130 | as reproduction, public display, public performance, distribution, | ||
131 | dissemination, communication, or importation, and to make material | ||
132 | available to the public including in ways that members of the | ||
133 | public may access the material from a place and at a time | ||
134 | individually chosen by them. | ||
135 | |||
136 | l. Sui Generis Database Rights means rights other than copyright | ||
137 | resulting from Directive 96/9/EC of the European Parliament and of | ||
138 | the Council of 11 March 1996 on the legal protection of databases, | ||
139 | as amended and/or succeeded, as well as other essentially | ||
140 | equivalent rights anywhere in the world. | ||
141 | |||
142 | m. You means the individual or entity exercising the Licensed Rights | ||
143 | under this Public License. Your has a corresponding meaning. | ||
144 | |||
145 | |||
146 | Section 2 -- Scope. | ||
147 | |||
148 | a. License grant. | ||
149 | |||
150 | 1. Subject to the terms and conditions of this Public License, | ||
151 | the Licensor hereby grants You a worldwide, royalty-free, | ||
152 | non-sublicensable, non-exclusive, irrevocable license to | ||
153 | exercise the Licensed Rights in the Licensed Material to: | ||
154 | |||
155 | a. reproduce and Share the Licensed Material, in whole or | ||
156 | in part; and | ||
157 | |||
158 | b. produce, reproduce, and Share Adapted Material. | ||
159 | |||
160 | 2. Exceptions and Limitations. For the avoidance of doubt, where | ||
161 | Exceptions and Limitations apply to Your use, this Public | ||
162 | License does not apply, and You do not need to comply with | ||
163 | its terms and conditions. | ||
164 | |||
165 | 3. Term. The term of this Public License is specified in Section | ||
166 | 6(a). | ||
167 | |||
168 | 4. Media and formats; technical modifications allowed. The | ||
169 | Licensor authorizes You to exercise the Licensed Rights in | ||
170 | all media and formats whether now known or hereafter created, | ||
171 | and to make technical modifications necessary to do so. The | ||
172 | Licensor waives and/or agrees not to assert any right or | ||
173 | authority to forbid You from making technical modifications | ||
174 | necessary to exercise the Licensed Rights, including | ||
175 | technical modifications necessary to circumvent Effective | ||
176 | Technological Measures. For purposes of this Public License, | ||
177 | simply making modifications authorized by this Section 2(a) | ||
178 | (4) never produces Adapted Material. | ||
179 | |||
180 | 5. Downstream recipients. | ||
181 | |||
182 | a. Offer from the Licensor -- Licensed Material. Every | ||
183 | recipient of the Licensed Material automatically | ||
184 | receives an offer from the Licensor to exercise the | ||
185 | Licensed Rights under the terms and conditions of this | ||
186 | Public License. | ||
187 | |||
188 | b. Additional offer from the Licensor -- Adapted Material. | ||
189 | Every recipient of Adapted Material from You | ||
190 | automatically receives an offer from the Licensor to | ||
191 | exercise the Licensed Rights in the Adapted Material | ||
192 | under the conditions of the Adapter's License You apply. | ||
193 | |||
194 | c. No downstream restrictions. You may not offer or impose | ||
195 | any additional or different terms or conditions on, or | ||
196 | apply any Effective Technological Measures to, the | ||
197 | Licensed Material if doing so restricts exercise of the | ||
198 | Licensed Rights by any recipient of the Licensed | ||
199 | Material. | ||
200 | |||
201 | 6. No endorsement. Nothing in this Public License constitutes or | ||
202 | may be construed as permission to assert or imply that You | ||
203 | are, or that Your use of the Licensed Material is, connected | ||
204 | with, or sponsored, endorsed, or granted official status by, | ||
205 | the Licensor or others designated to receive attribution as | ||
206 | provided in Section 3(a)(1)(A)(i). | ||
207 | |||
208 | b. Other rights. | ||
209 | |||
210 | 1. Moral rights, such as the right of integrity, are not | ||
211 | licensed under this Public License, nor are publicity, | ||
212 | privacy, and/or other similar personality rights; however, to | ||
213 | the extent possible, the Licensor waives and/or agrees not to | ||
214 | assert any such rights held by the Licensor to the limited | ||
215 | extent necessary to allow You to exercise the Licensed | ||
216 | Rights, but not otherwise. | ||
217 | |||
218 | 2. Patent and trademark rights are not licensed under this | ||
219 | Public License. | ||
220 | |||
221 | 3. To the extent possible, the Licensor waives any right to | ||
222 | collect royalties from You for the exercise of the Licensed | ||
223 | Rights, whether directly or through a collecting society | ||
224 | under any voluntary or waivable statutory or compulsory | ||
225 | licensing scheme. In all other cases the Licensor expressly | ||
226 | reserves any right to collect such royalties. | ||
227 | |||
228 | |||
229 | Section 3 -- License Conditions. | ||
230 | |||
231 | Your exercise of the Licensed Rights is expressly made subject to the | ||
232 | following conditions. | ||
233 | |||
234 | a. Attribution. | ||
235 | |||
236 | 1. If You Share the Licensed Material (including in modified | ||
237 | form), You must: | ||
238 | |||
239 | a. retain the following if it is supplied by the Licensor | ||
240 | with the Licensed Material: | ||
241 | |||
242 | i. identification of the creator(s) of the Licensed | ||
243 | Material and any others designated to receive | ||
244 | attribution, in any reasonable manner requested by | ||
245 | the Licensor (including by pseudonym if | ||
246 | designated); | ||
247 | |||
248 | ii. a copyright notice; | ||
249 | |||
250 | iii. a notice that refers to this Public License; | ||
251 | |||
252 | iv. a notice that refers to the disclaimer of | ||
253 | warranties; | ||
254 | |||
255 | v. a URI or hyperlink to the Licensed Material to the | ||
256 | extent reasonably practicable; | ||
257 | |||
258 | b. indicate if You modified the Licensed Material and | ||
259 | retain an indication of any previous modifications; and | ||
260 | |||
261 | c. indicate the Licensed Material is licensed under this | ||
262 | Public License, and include the text of, or the URI or | ||
263 | hyperlink to, this Public License. | ||
264 | |||
265 | 2. You may satisfy the conditions in Section 3(a)(1) in any | ||
266 | reasonable manner based on the medium, means, and context in | ||
267 | which You Share the Licensed Material. For example, it may be | ||
268 | reasonable to satisfy the conditions by providing a URI or | ||
269 | hyperlink to a resource that includes the required | ||
270 | information. | ||
271 | |||
272 | 3. If requested by the Licensor, You must remove any of the | ||
273 | information required by Section 3(a)(1)(A) to the extent | ||
274 | reasonably practicable. | ||
275 | |||
276 | b. ShareAlike. | ||
277 | |||
278 | In addition to the conditions in Section 3(a), if You Share | ||
279 | Adapted Material You produce, the following conditions also apply. | ||
280 | |||
281 | 1. The Adapter's License You apply must be a Creative Commons | ||
282 | license with the same License Elements, this version or | ||
283 | later, or a BY-SA Compatible License. | ||
284 | |||
285 | 2. You must include the text of, or the URI or hyperlink to, the | ||
286 | Adapter's License You apply. You may satisfy this condition | ||
287 | in any reasonable manner based on the medium, means, and | ||
288 | context in which You Share Adapted Material. | ||
289 | |||
290 | 3. You may not offer or impose any additional or different terms | ||
291 | or conditions on, or apply any Effective Technological | ||
292 | Measures to, Adapted Material that restrict exercise of the | ||
293 | rights granted under the Adapter's License You apply. | ||
294 | |||
295 | |||
296 | Section 4 -- Sui Generis Database Rights. | ||
297 | |||
298 | Where the Licensed Rights include Sui Generis Database Rights that | ||
299 | apply to Your use of the Licensed Material: | ||
300 | |||
301 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right | ||
302 | to extract, reuse, reproduce, and Share all or a substantial | ||
303 | portion of the contents of the database; | ||
304 | |||
305 | b. if You include all or a substantial portion of the database | ||
306 | contents in a database in which You have Sui Generis Database | ||
307 | Rights, then the database in which You have Sui Generis Database | ||
308 | Rights (but not its individual contents) is Adapted Material, | ||
309 | |||
310 | including for purposes of Section 3(b); and | ||
311 | c. You must comply with the conditions in Section 3(a) if You Share | ||
312 | all or a substantial portion of the contents of the database. | ||
313 | |||
314 | For the avoidance of doubt, this Section 4 supplements and does not | ||
315 | replace Your obligations under this Public License where the Licensed | ||
316 | Rights include other Copyright and Similar Rights. | ||
317 | |||
318 | |||
319 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. | ||
320 | |||
321 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE | ||
322 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS | ||
323 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF | ||
324 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, | ||
325 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, | ||
326 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||
327 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, | ||
328 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT | ||
329 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT | ||
330 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. | ||
331 | |||
332 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE | ||
333 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, | ||
334 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, | ||
335 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, | ||
336 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR | ||
337 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN | ||
338 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR | ||
339 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR | ||
340 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. | ||
341 | |||
342 | c. The disclaimer of warranties and limitation of liability provided | ||
343 | above shall be interpreted in a manner that, to the extent | ||
344 | possible, most closely approximates an absolute disclaimer and | ||
345 | waiver of all liability. | ||
346 | |||
347 | |||
348 | Section 6 -- Term and Termination. | ||
349 | |||
350 | a. This Public License applies for the term of the Copyright and | ||
351 | Similar Rights licensed here. However, if You fail to comply with | ||
352 | this Public License, then Your rights under this Public License | ||
353 | terminate automatically. | ||
354 | |||
355 | b. Where Your right to use the Licensed Material has terminated under | ||
356 | Section 6(a), it reinstates: | ||
357 | |||
358 | 1. automatically as of the date the violation is cured, provided | ||
359 | it is cured within 30 days of Your discovery of the | ||
360 | violation; or | ||
361 | |||
362 | 2. upon express reinstatement by the Licensor. | ||
363 | |||
364 | For the avoidance of doubt, this Section 6(b) does not affect any | ||
365 | right the Licensor may have to seek remedies for Your violations | ||
366 | of this Public License. | ||
367 | |||
368 | c. For the avoidance of doubt, the Licensor may also offer the | ||
369 | Licensed Material under separate terms or conditions or stop | ||
370 | distributing the Licensed Material at any time; however, doing so | ||
371 | will not terminate this Public License. | ||
372 | |||
373 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public | ||
374 | License. | ||
375 | |||
376 | |||
377 | Section 7 -- Other Terms and Conditions. | ||
378 | |||
379 | a. The Licensor shall not be bound by any additional or different | ||
380 | terms or conditions communicated by You unless expressly agreed. | ||
381 | |||
382 | b. Any arrangements, understandings, or agreements regarding the | ||
383 | Licensed Material not stated herein are separate from and | ||
384 | independent of the terms and conditions of this Public License. | ||
385 | |||
386 | |||
387 | Section 8 -- Interpretation. | ||
388 | |||
389 | a. For the avoidance of doubt, this Public License does not, and | ||
390 | shall not be interpreted to, reduce, limit, restrict, or impose | ||
391 | conditions on any use of the Licensed Material that could lawfully | ||
392 | be made without permission under this Public License. | ||
393 | |||
394 | b. To the extent possible, if any provision of this Public License is | ||
395 | deemed unenforceable, it shall be automatically reformed to the | ||
396 | minimum extent necessary to make it enforceable. If the provision | ||
397 | cannot be reformed, it shall be severed from this Public License | ||
398 | without affecting the enforceability of the remaining terms and | ||
399 | conditions. | ||
400 | |||
401 | c. No term or condition of this Public License will be waived and no | ||
402 | failure to comply consented to unless expressly agreed to by the | ||
403 | Licensor. | ||
404 | |||
405 | d. Nothing in this Public License constitutes or may be interpreted | ||
406 | as a limitation upon, or waiver of, any privileges and immunities | ||
407 | that apply to the Licensor or You, including from the legal | ||
408 | processes of any jurisdiction or authority. | ||
409 | |||
410 | |||
411 | ======================================================================= | ||
412 | |||
413 | Creative Commons is not a party to its public licenses. | ||
414 | Notwithstanding, Creative Commons may elect to apply one of its public | ||
415 | licenses to material it publishes and in those instances will be | ||
416 | considered the "Licensor." Except for the limited purpose of indicating | ||
417 | that material is shared under a Creative Commons public license or as | ||
418 | otherwise permitted by the Creative Commons policies published at | ||
419 | creativecommons.org/policies, Creative Commons does not authorize the | ||
420 | use of the trademark "Creative Commons" or any other trademark or logo | ||
421 | of Creative Commons without its prior written consent including, | ||
422 | without limitation, in connection with any unauthorized modifications | ||
423 | to any of its public licenses or any other arrangements, | ||
424 | understandings, or agreements concerning use of licensed material. For | ||
425 | the avoidance of doubt, this paragraph does not form part of the public | ||
426 | licenses. | ||
427 | |||
428 | Creative Commons may be contacted at creativecommons.org. | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.eot b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.eot deleted file mode 100644 index d9c296e4..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.eot +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.svg b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.svg deleted file mode 100644 index def1e9b5..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.svg +++ /dev/null | |||
@@ -1,769 +0,0 @@ | |||
1 | <?xml version="1.0" standalone="no"?> | ||
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > | ||
3 | <svg xmlns="http://www.w3.org/2000/svg"> | ||
4 | <metadata>Generated by IcoMoon</metadata> | ||
5 | <defs> | ||
6 | <font id="Material-Design-Icons" horiz-adv-x="1024"> | ||
7 | <font-face units-per-em="1024" ascent="960" descent="-64" /> | ||
8 | <missing-glyph horiz-adv-x="1024" /> | ||
9 | <glyph unicode=" " d="" horiz-adv-x="512" /> | ||
10 | <glyph unicode="" d="M320.853 22.187c-139.52 65.707-239.36 201.387-254.72 361.813h-64c21.76-262.827 241.493-469.333 509.867-469.333l28.16 1.28-162.56 162.56-56.747-56.32zM358.827 300.374c-8.107 0-15.787 1.28-22.187 3.413-6.827 2.56-12.373 5.547-17.067 10.24-4.693 4.267-8.533 9.387-11.093 15.787-2.56 5.973-3.84 12.8-3.84 20.053h-55.467c0-15.36 2.987-29.013 8.96-40.533s14.080-21.333 23.893-29.44c10.24-7.68 21.76-13.653 34.987-17.493 12.8-4.267 26.453-6.4 40.96-6.4 15.787 0 30.72 2.133 43.947 6.4 13.653 4.267 25.6 10.667 35.413 18.773s17.92 18.347 23.467 30.72c5.547 12.373 8.533 26.027 8.533 41.387 0 8.107-0.853 16.213-2.987 23.893s-5.12 14.933-9.813 21.76c-4.267 6.827-10.24 12.8-17.067 18.347-7.253 5.547-15.787 9.813-26.027 13.227 8.533 3.84 15.787 8.533 22.187 14.080s11.52 11.52 15.787 17.92c4.267 6.4 7.253 12.8 9.387 19.627s2.987 13.653 2.987 20.48c0 15.36-2.56 29.013-7.68 40.96s-12.373 21.76-21.76 29.44c-8.533 8.107-20.053 14.080-32.853 18.347-13.227 3.84-27.733 5.973-43.52 5.973-15.36 0-29.44-2.133-42.667-6.827-12.8-4.693-24.32-11.093-33.707-19.2-8.96-8.107-16.213-17.493-21.76-28.587-5.12-11.093-7.68-23.040-7.68-36.267h55.467c0 7.253 1.28 13.653 3.84 19.2s5.973 10.667 10.667 14.507c4.693 3.84 9.813 7.253 16.213 9.387s12.8 3.413 20.48 3.413c17.067 0 29.867-4.267 37.973-13.227 8.107-8.533 12.373-20.907 12.373-36.693 0-7.68-1.28-14.507-3.413-20.907s-5.973-11.52-10.667-15.787c-4.693-4.267-10.667-7.68-17.493-10.24s-15.36-3.84-24.747-3.84h-32.853v-43.947h32.853c9.387 0 17.92-0.853 25.6-2.987s14.080-5.547 19.2-9.813c5.12-4.693 9.387-10.24 12.373-17.067s4.267-14.933 4.267-24.32c0-17.493-5.12-30.72-14.933-39.68-9.813-9.813-23.467-14.080-40.533-14.080zM723.627 552.96c-13.653 14.080-29.867 25.173-48.64 32.853-18.347 7.68-39.253 11.52-62.293 11.52h-100.693v-341.333h98.133c23.467 0 45.227 3.84 64.427 11.52s35.84 18.347 49.493 32.427c13.653 14.080 24.32 31.147 31.573 50.773 7.253 20.053 11.093 42.24 11.093 66.987v17.067c0 24.747-3.84 46.933-11.093 66.987-7.68 20.053-18.347 37.12-32 51.2zM706.987 418.134c0-17.92-2.133-33.707-5.973-48.213-4.267-14.080-10.24-26.453-18.347-36.267s-18.347-17.493-30.293-22.613c-12.373-5.12-26.453-7.68-42.24-7.68h-38.827v246.187h41.387c30.72 0 54.187-9.813 69.973-29.44 16.213-19.627 24.32-47.787 24.32-84.907v-17.067zM512 938.667l-28.16-1.28 162.56-162.56 56.747 56.747c139.52-66.133 239.36-201.387 254.293-361.813h64c-21.333 262.4-241.067 468.907-509.44 468.907z" /> | ||
11 | <glyph unicode="" d="M512 853.334c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333-85.333 38.4-85.333 85.333 38.4 85.333 85.333 85.333zM896 554.667h-256v-554.667h-85.333v256h-85.333v-256h-85.333v554.667h-256v85.333h768v-85.333z" /> | ||
12 | <glyph unicode="" d="M896 170.667v-42.667c0-46.933-38.4-85.333-85.333-85.333h-597.333c-47.36 0-85.333 38.4-85.333 85.333v597.333c0 46.933 37.973 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-42.667h-384c-47.36 0-85.333-38.4-85.333-85.333v-341.333c0-46.933 37.973-85.333 85.333-85.333h384zM512 256h426.667v341.333h-426.667v-341.333zM682.667 362.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64z" /> | ||
13 | <glyph unicode="" d="M170.667 512v-298.667h128v298.667h-128zM426.667 512v-298.667h128v298.667h-128zM85.333-0h810.667v128h-810.667v-128zM682.667 512v-298.667h128v298.667h-128zM490.667 896l-405.333-213.333v-85.333h810.667v85.333l-405.333 213.333z" /> | ||
14 | <glyph unicode="" d="M128 725.334v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-47.36 0-85.333-38.4-85.333-85.333zM640 554.667c0-70.827-57.173-128-128-128s-128 57.173-128 128 57.173 128 128 128 128-57.173 128-128zM256 213.334c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267v-42.667h-512v42.667z" /> | ||
15 | <glyph unicode="" d="M576 363.094c0-35.346-28.654-64-64-64s-64 28.654-64 64c0 35.346 28.654 64 64 64s64-28.654 64-64zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 746.667c52.907 0 96-43.093 96-96s-43.093-96-96-96-96 43.093-96 96 43.093 96 96 96zM725.333 296.107v-106.667c-19.2-17.493-40.96-32.853-64-44.8v29.013c0 14.507-7.253 27.733-19.627 39.253-27.733 26.453-80.64 43.52-129.707 43.52-40.96 0-83.627-11.947-113.067-31.147l-7.253-5.12-8.96-7.253c33.28-20.053 69.547-30.72 108.373-34.987l56.747-6.4c15.787-1.707 28.16-15.36 28.16-32 0-12.373-6.827-22.613-17.067-28.16-11.947-6.4-27.307-3.84-40.533-3.84-14.933 0-29.44 0.427-43.947 2.133-21.333 2.56-42.24 7.253-62.293 14.080-20.907 6.827-41.387 16.213-60.587 27.307-9.387 5.547-18.773 11.52-27.733 18.347l-13.227 10.24c-1.707 0.853-11.947 7.68-11.947 9.813v182.613c0 67.413 112.213 118.613 213.333 118.613s213.333-51.2 213.333-118.613v-75.947z" /> | ||
16 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 725.334c70.827 0 128-57.173 128-128s-57.173-128-128-128-128 57.173-128 128 57.173 128 128 128zM512 119.467c-106.667 0-200.96 54.613-256 137.387 1.28 84.907 170.667 131.413 256 131.413 84.907 0 254.72-46.507 256-131.413-55.040-82.773-149.333-137.387-256-137.387z" /> | ||
17 | <glyph unicode="" d="M469.333 554.667h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128zM298.667 170.667c-46.933 0-84.907-38.4-84.907-85.333s37.973-85.333 84.907-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM725.333 170.667c-46.933 0-84.907-38.4-84.907-85.333s37.973-85.333 84.907-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM305.92 309.334l1.28 5.12 38.4 69.547h317.867c32 0 60.16 17.493 74.667 43.947l164.693 299.093-74.24 40.96h-0.427l-46.933-85.333-117.76-213.333h-299.52l-5.547 11.52-95.573 201.813-40.533 85.333-40.107 85.333h-139.52v-85.333h85.333l153.6-323.84-57.6-104.533c-6.827-11.947-10.667-26.027-10.667-40.96 0-46.933 38.4-85.333 85.333-85.333h512v85.333h-494.080c-5.547 0-10.667 4.693-10.667 10.667z" /> | ||
18 | <glyph unicode="" d="M336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667zM554.667 554.667h-85.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128v128z" /> | ||
19 | <glyph unicode="" d="M512 682.667c165.12 0 298.667-133.547 298.667-298.667 0-35.84-6.827-70.4-18.347-102.4l64.853-64.853c24.747 50.773 38.827 107.093 38.827 167.253 0 212.053-171.947 384-384 384-60.16 0-116.48-14.080-167.253-38.827l64.853-64.853c32 11.52 66.56 18.347 102.4 18.347zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM124.587 840.96l-54.187-54.613 56.747-56.747-47.36-39.68 60.587-60.587 47.36 40.107 34.133-34.133c-58.453-67.413-93.867-155.307-93.867-251.307 0-212.053 171.52-384 384-384 96 0 183.893 35.413 251.307 93.867l93.867-93.867 54.187 54.187-786.773 786.773zM702.72 154.027c-51.627-42.667-118.187-68.693-190.72-68.693-165.12 0-298.667 133.547-298.667 298.667 0 72.533 26.027 139.093 68.693 190.72l420.693-420.693zM342.187 798.72l-60.587 60.587-36.693-30.293 60.587-60.587 36.693 30.293z" /> | ||
20 | <glyph unicode="" d="M938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667zM449.707 318.72l-90.88 90.88-45.227-45.227 135.68-135.68 256 256-45.227 45.227-210.347-211.2z" /> | ||
21 | <glyph unicode="" d="M938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM533.333 597.334h-64v-256l202.667-121.6 32 52.48-170.667 101.12v224zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667z" /> | ||
22 | <glyph unicode="" d="M256 170.667c0-23.467 19.2-42.667 42.667-42.667h42.667v-149.333c0-35.413 28.587-64 64-64s64 28.587 64 64v149.333h85.333v-149.333c0-35.413 28.587-64 64-64s64 28.587 64 64v149.333h42.667c23.467 0 42.667 19.2 42.667 42.667v426.667h-512v-426.667zM149.333 597.334c-35.413 0-64-28.587-64-64v-298.667c0-35.413 28.587-64 64-64s64 28.587 64 64v298.667c0 35.413-28.587 64-64 64zM874.667 597.334c-35.413 0-64-28.587-64-64v-298.667c0-35.413 28.587-64 64-64s64 28.587 64 64v298.667c0 35.413-28.587 64-64 64zM662.613 846.507l55.467 55.467c8.533 8.533 8.533 21.76 0 30.293s-21.76 8.533-30.293 0l-63.147-63.147c-33.707 17.067-72.107 26.88-112.64 26.88-40.96 0-79.36-9.813-113.493-26.88l-63.573 63.147c-8.533 8.533-21.76 8.533-30.293 0s-8.533-21.76 0-30.293l55.893-55.893c-63.147-46.507-104.533-121.173-104.533-206.080h512c0 84.907-41.387 160-105.387 206.507zM426.667 725.334h-42.667v42.667h42.667v-42.667zM640 725.334h-42.667v42.667h42.667v-42.667z" /> | ||
23 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM554.667 469.334h-85.333v256h85.333v-256zM554.667 298.667h-85.333v85.333h85.333v-85.333z" /> | ||
24 | <glyph unicode="" d="M810.667 426.667h-85.333v-128h-128v-85.333h213.333v213.333zM298.667 554.667h128v85.333h-213.333v-213.333h85.333v128zM896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 127.574h-768v598.187h768v-598.187z" /> | ||
25 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM384 213.334h-85.333v298.667h85.333v-298.667zM554.667 213.334h-85.333v426.667h85.333v-426.667zM725.333 213.334h-85.333v170.667h85.333v-170.667z" /> | ||
26 | <glyph unicode="" d="M810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM512 640c70.827 0 128-57.173 128-128s-57.173-128-128-128-128 57.173-128 128 57.173 128 128 128zM768 128h-512v59.733c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267v-59.733z" /> | ||
27 | <glyph unicode="" d="M810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM554.667 170.667h-85.333v85.333h85.333v-85.333zM554.667 341.334h-85.333v256h85.333v-256zM512 725.334c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667z" /> | ||
28 | <glyph unicode="" d="M810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM682.667 298.667h-170.667v-128l-213.333 213.333 213.333 213.333v-128h170.667v-170.667z" /> | ||
29 | <glyph unicode="" d="M810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM512 170.667l-213.333 213.333h128v170.667h170.667v-170.667h128l-213.333-213.333z" /> | ||
30 | <glyph unicode="" d="M810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM426.667 213.334l-170.667 170.667 60.16 60.16 110.507-110.080 281.173 281.173 60.16-60.587-341.333-341.333z" /> | ||
31 | <glyph unicode="" d="M810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM597.333 213.334h-298.667v85.333h298.667v-85.333zM725.333 384h-426.667v85.333h426.667v-85.333zM725.333 554.667h-426.667v85.333h426.667v-85.333z" /> | ||
32 | <glyph unicode="" d="M512 682.667v-128l170.667 170.667-170.667 170.667v-128c-188.587 0-341.333-152.747-341.333-341.333 0-66.987 19.627-129.28 52.907-181.76l62.293 62.293c-19.2 35.413-29.867 76.373-29.867 119.467 0 141.227 114.773 256 256 256zM800.427 608.427l-62.293-62.293c18.773-35.84 29.867-76.373 29.867-119.467 0-141.227-114.773-256-256-256v128l-170.667-170.667 170.667-170.667v128c188.587 0 341.333 152.747 341.333 341.333 0 66.987-19.627 129.28-52.907 181.76z" /> | ||
33 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-230.4-69.973-283.733-172.373-128.427-13.653-228.267-122.453-228.267-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627zM597.333 384v-170.667h-170.667v170.667h-128l213.333 213.333 213.333-213.333h-128z" /> | ||
34 | <glyph unicode="" d="M768 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM256 768h213.333v-341.333l-106.667 64-106.667-64v341.333z" /> | ||
35 | <glyph unicode="" d="M725.333 810.667h-426.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667 298.667 128 298.667-128v682.667c0 46.933-38.4 85.333-85.333 85.333zM725.333 170.667l-213.333 93.013-213.333-93.013v554.667h426.667v-554.667z" /> | ||
36 | <glyph unicode="" d="M725.333 810.667h-426.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667 298.667 128 298.667-128v682.667c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
37 | <glyph unicode="" d="M853.333 597.334h-119.893c-19.2 33.28-45.653 61.867-77.653 83.627l69.547 69.547-60.16 60.16-92.587-92.587c-19.627 4.693-39.68 7.253-60.587 7.253s-40.96-2.56-60.16-7.253l-93.013 92.587-60.16-60.16 69.12-69.547c-31.573-21.76-58.027-50.347-77.227-83.627h-119.893v-85.333h89.173c-2.133-14.080-3.84-28.16-3.84-42.667v-42.667h-85.333v-85.333h85.333v-42.667c0-14.507 1.707-28.587 3.84-42.667h-89.173v-85.333h119.893c44.373-76.373 126.72-128 221.44-128s177.067 51.627 221.44 128h119.893v85.333h-89.173c2.133 14.080 3.84 28.16 3.84 42.667v42.667h85.333v85.333h-85.333v42.667c0 14.507-1.707 28.587-3.84 42.667h89.173v85.333zM597.333 256h-170.667v85.333h170.667v-85.333zM597.333 426.667h-170.667v85.333h170.667v-85.333z" /> | ||
38 | <glyph unicode="" d="M810.667 597.334l-170.667-170.667h128c0-141.227-114.773-256-256-256-43.093 0-84.053 10.667-119.467 29.867l-62.293-62.293c52.48-33.28 114.773-52.907 181.76-52.907 188.587 0 341.333 152.747 341.333 341.333h128l-170.667 170.667zM256 426.667c0 141.227 114.773 256 256 256 43.093 0 84.053-10.667 119.467-29.867l62.293 62.293c-52.48 33.28-114.773 52.907-181.76 52.907-188.587 0-341.333-152.747-341.333-341.333h-128l170.667-170.667 170.667 170.667h-128z" /> | ||
39 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM426.667 213.334l-213.333 213.333 60.16 60.16 153.173-152.747 323.84 323.84 60.16-60.587-384-384z" /> | ||
40 | <glyph unicode="" d="M768 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM256 768h213.333v-341.333l-106.667 64-106.667-64v341.333z" /> | ||
41 | <glyph unicode="" d="M853.333 768h-682.667c-47.36 0-84.907-37.973-84.907-85.333l-0.427-512c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v512c0 47.36-37.973 85.333-85.333 85.333zM853.333 170.667h-682.667v256h682.667v-256zM853.333 597.334h-682.667v85.333h682.667v-85.333z" /> | ||
42 | <glyph unicode="" d="M128 384h341.333v426.667h-341.333v-426.667zM128 42.667h341.333v256h-341.333v-256zM554.667 42.667h341.333v426.667h-341.333v-426.667zM554.667 810.667v-256h341.333v256h-341.333z" /> | ||
43 | <glyph unicode="" d="M256 128c0-46.933 38.4-85.333 85.333-85.333h341.333c46.933 0 85.333 38.4 85.333 85.333v512h-512v-512zM810.667 768h-149.333l-42.667 42.667h-213.333l-42.667-42.667h-149.333v-85.333h597.333v85.333z" /> | ||
44 | <glyph unicode="" d="M597.333 853.334h-341.333c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667c0-46.933 37.973-85.333 84.907-85.333h512.427c46.933 0 85.333 38.4 85.333 85.333v512l-256 256zM682.667 170.667h-341.333v85.333h341.333v-85.333zM682.667 341.334h-341.333v85.333h341.333v-85.333zM554.667 554.667v234.667l234.667-234.667h-234.667z" /> | ||
45 | <glyph unicode="" d="M853.333 384h-682.667c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h682.667c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667zM298.667 128c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333zM853.333 810.667h-682.667c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h682.667c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667zM298.667 554.667c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333z" /> | ||
46 | <glyph unicode="" d="M768 640l-60.16 60.16-270.507-270.507 60.16-60.16 270.507 270.507zM948.907 700.16l-451.413-451.413-178.347 177.92-60.16-60.16 238.507-238.507 512 512-60.587 60.16zM17.493 366.507l238.507-238.507 60.16 60.16-238.080 238.507-60.587-60.16z" /> | ||
47 | <glyph unicode="" d="M384 248.747l-177.92 177.92-60.587-60.16 238.507-238.507 512 512-60.16 60.16z" /> | ||
48 | <glyph unicode="" d="M725.333 426.667h-213.333v-213.333h213.333v213.333zM682.667 896v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-42.667v85.333h-85.333zM810.667 128h-597.333v469.333h597.333v-469.333z" /> | ||
49 | <glyph unicode="" d="M430.507 273.494l60.16-60.16 213.333 213.333-213.333 213.333-60.16-60.16 110.080-110.507h-412.587v-85.333h412.587l-110.080-110.507zM810.667 810.667h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-170.667h85.333v170.667h597.333v-597.333h-597.333v170.667h-85.333v-170.667c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
50 | <glyph unicode="" d="M512 473.6c-26.027 0-46.933-20.907-46.933-46.933s20.907-46.933 46.933-46.933c26.027 0 46.933 20.907 46.933 46.933s-20.907 46.933-46.933 46.933zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM605.44 333.227l-349.44-162.56 162.56 349.44 349.44 162.56-162.56-349.44z" /> | ||
51 | <glyph unicode="" d="M874.667 469.334h-64v170.667c0 46.933-38.4 85.333-85.333 85.333h-170.667v64c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667v-64h-170.667c-46.933 0-84.907-38.4-84.907-85.333v-162.133h63.573c63.573 0 115.2-51.627 115.2-115.2s-51.627-115.2-115.2-115.2h-64v-162.133c0-46.933 38.4-85.333 85.333-85.333h162.133v64c0 63.573 51.627 115.2 115.2 115.2s115.2-51.627 115.2-115.2v-64h162.133c46.933 0 85.333 38.4 85.333 85.333v170.667h64c58.88 0 106.667 47.787 106.667 106.667s-47.787 106.667-106.667 106.667z" /> | ||
52 | <glyph unicode="" d="M626.773 209.067c-31.573-24.747-72.533-38.4-114.773-38.4s-83.2 13.653-114.773 38.4c-9.387 7.253-22.613 5.547-29.867-3.84s-5.547-22.613 3.84-29.867c38.827-30.72 89.173-47.36 140.8-47.36s101.973 16.64 141.227 46.933c9.387 7.253 11.093 20.48 3.84 29.867-7.253 9.813-20.907 11.093-30.293 4.267zM405.333 405.334c0-23.564-19.103-42.667-42.667-42.667s-42.667 19.103-42.667 42.667c0 23.564 19.103 42.667 42.667 42.667s42.667-19.103 42.667-42.667zM512 938.667c-282.88 0-512-229.12-512-512s229.12-512 512-512 512 229.12 512 512-229.12 512-512 512zM851.627 306.347c-46.507-159.573-182.187-275.627-343.040-275.627-161.28 0-296.96 116.053-343.040 276.053-50.773 4.693-90.88 50.347-90.88 107.52 0 54.187 36.267 98.56 84.053 106.667 89.173 62.293 162.133 148.907 174.507 215.467v0.427c57.6-112.213 268.8-221.44 504.747-215.893l12.8 1.28c54.613 0 98.56-48.64 98.56-108.373 0-58.88-43.52-107.093-97.707-107.52zM704 405.334c0-23.564-19.103-42.667-42.667-42.667s-42.667 19.103-42.667 42.667c0 23.564 19.103 42.667 42.667 42.667s42.667-19.103 42.667-42.667z" /> | ||
53 | <glyph unicode="" d="M704 810.667c-74.24 0-145.493-34.56-192-89.173-46.507 54.613-117.76 89.173-192 89.173-131.413 0-234.667-103.253-234.667-234.667 0-161.28 145.067-292.693 364.8-492.373l61.867-55.893 61.867 56.32c219.733 199.253 364.8 330.667 364.8 491.947 0 131.413-103.253 234.667-234.667 234.667zM516.267 147.2l-4.267-4.267-4.267 4.267c-203.093 183.893-337.067 305.493-337.067 428.8 0 85.333 64 149.333 149.333 149.333 65.707 0 129.707-42.24 152.32-100.693h79.787c22.187 58.453 86.187 100.693 151.893 100.693 85.333 0 149.333-64 149.333-149.333 0-123.307-133.973-244.907-337.067-428.8z" /> | ||
54 | <glyph unicode="" d="M512 27.734l-61.867 56.32c-219.733 199.253-364.8 330.667-364.8 491.947 0 131.413 103.253 234.667 234.667 234.667 74.24 0 145.493-34.56 192-89.173 46.507 54.613 117.76 89.173 192 89.173 131.413 0 234.667-103.253 234.667-234.667 0-161.28-145.067-292.693-364.8-492.373l-61.867-55.893z" /> | ||
55 | <glyph unicode="" d="M853.333 102.827v494.507l-256 256h-341.333c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667c0-46.933 37.973-85.333 84.907-85.333h512.427c19.2 0 36.267 6.4 50.773 17.067l-189.013 189.013c-34.133-22.187-74.24-35.413-117.76-35.413-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333c0-43.52-13.227-83.627-35.413-117.333l163.413-163.84zM384 384c0-70.827 57.173-128 128-128s128 57.173 128 128-57.173 128-128 128-128-57.173-128-128z" /> | ||
56 | <glyph unicode="" d="M469.333 682.667c58.88 0 112.213-23.893 151.040-62.293l-108.373-108.373h256v256l-87.467-87.467c-54.187 54.187-128.853 87.467-211.2 87.467-150.613 0-274.347-111.36-295.253-256h86.187c19.627 97.28 105.813 170.667 209.067 170.667zM709.973 292.694c28.16 38.4 47.787 84.053 54.613 133.973h-86.187c-19.627-97.28-105.813-170.667-209.067-170.667-58.88 0-112.213 23.893-151.040 62.293l108.373 108.373h-256v-256l87.467 87.467c54.187-54.187 128.853-87.467 211.2-87.467 66.133 0 127.147 21.76 176.64 58.027l207.36-206.933 63.573 63.573-206.933 207.36z" /> | ||
57 | <glyph unicode="" d="M384 640h-85.333v-85.333h85.333v85.333zM384 469.334h-85.333v-85.333h85.333v85.333zM384 810.667c-47.36 0-85.333-38.4-85.333-85.333h85.333v85.333zM554.667 298.667h-85.333v-85.333h85.333v85.333zM810.667 810.667v-85.333h85.333c0 46.933-38.4 85.333-85.333 85.333zM554.667 810.667h-85.333v-85.333h85.333v85.333zM384 213.334v85.333h-85.333c0-46.933 37.973-85.333 85.333-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM810.667 213.334c46.933 0 85.333 38.4 85.333 85.333h-85.333v-85.333zM213.333 640h-85.333v-512c0-46.933 37.973-85.333 85.333-85.333h512v85.333h-512v512zM640 725.334h85.333v85.333h-85.333v-85.333zM640 213.334h85.333v85.333h-85.333v-85.333z" /> | ||
58 | <glyph unicode="" d="M128 384h85.333v85.333h-85.333v-85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM213.333 42.667v85.333h-85.333c0-46.933 37.973-85.333 85.333-85.333zM128 554.667h85.333v85.333h-85.333v-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM810.667 810.667h-426.667c-47.36 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 37.973-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 298.667h-426.667v426.667h426.667v-426.667zM469.333 42.667h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333z" /> | ||
59 | <glyph unicode="" d="M810.667 554.667h-170.667v256h-256v-256h-170.667l298.667-298.667 298.667 298.667zM213.333 170.667v-85.333h597.333v85.333h-597.333z" /> | ||
60 | <glyph unicode="" d="M512 201.814l263.68-159.147-69.973 299.947 232.96 201.813-306.773 26.027-119.893 282.88-119.893-282.88-306.773-26.027 232.96-201.813-69.973-299.947z" /> | ||
61 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM341.333 192c-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667 106.667-47.787 106.667-106.667-47.787-106.667-106.667-106.667zM405.333 597.334c0 58.88 47.787 106.667 106.667 106.667s106.667-47.787 106.667-106.667-47.787-106.667-106.667-106.667-106.667 47.787-106.667 106.667zM682.667 192c-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667 106.667-47.787 106.667-106.667-47.787-106.667-106.667-106.667z" /> | ||
62 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM554.667 128h-85.333v85.333h85.333v-85.333zM642.987 458.667l-38.4-39.253c-30.72-31.147-49.92-56.747-49.92-120.747h-85.333v21.333c0 46.933 19.2 89.6 49.92 120.747l52.907 53.76c15.787 15.36 25.173 36.693 25.173 60.16 0 46.933-38.4 85.333-85.333 85.333s-85.333-38.4-85.333-85.333h-85.333c0 94.293 76.373 170.667 170.667 170.667s170.667-76.373 170.667-170.667c0-37.547-15.36-71.68-39.68-96z" /> | ||
63 | <glyph unicode="" d="M622.507 597.334l-110.507-110.507-110.507 110.507-60.16-60.16 110.507-110.507-110.507-110.507 60.16-60.16 110.507 110.507 110.507-110.507 60.16 60.16-110.507 110.507 110.507 110.507-60.16 60.16zM512 853.334c-235.947 0-426.667-190.72-426.667-426.667s190.72-426.667 426.667-426.667 426.667 190.72 426.667 426.667-190.72 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333z" /> | ||
64 | <glyph unicode="" d="M554.667 810.667c-212.053 0-384-171.947-384-384h-128l165.973-165.973 2.987-5.973 172.373 171.947h-128c0 165.12 133.547 298.667 298.667 298.667s298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667c-82.347 0-157.013 33.707-210.773 87.893l-60.587-60.587c69.547-69.547 165.12-112.64 271.36-112.64 212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 597.334v-213.333l182.613-108.373 30.72 51.627-149.333 88.747v181.333h-64z" /> | ||
65 | <glyph unicode="" d="M426.667 85.334v256h170.667v-256h213.333v341.333h128l-426.667 384-426.667-384h128v-341.333z" /> | ||
66 | <glyph unicode="" d="M768 597.334h-42.667v85.333c0 117.76-95.573 213.333-213.333 213.333s-213.333-95.573-213.333-213.333v-85.333h-42.667c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM512 213.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333zM644.267 597.334h-264.533v85.333c0 72.96 59.307 132.267 132.267 132.267s132.267-59.307 132.267-132.267v-85.333z" /> | ||
67 | <glyph unicode="" d="M469.333 213.334h85.333v256h-85.333v-256zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333zM469.333 554.667h85.333v85.333h-85.333v-85.333z" /> | ||
68 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM554.667 213.334h-85.333v256h85.333v-256zM554.667 554.667h-85.333v85.333h85.333v-85.333z" /> | ||
69 | <glyph unicode="" d="M896 810.24h-768c-46.933 0-85.333-38.4-85.333-85.333v-170.24h85.333v171.093h768v-598.613h-768v171.52h-85.333v-171.093c0-46.933 38.4-84.48 85.333-84.48h768c46.933 0 85.333 37.547 85.333 84.48v597.333c0 47.36-38.4 85.333-85.333 85.333zM469.333 256l170.667 170.667-170.667 170.667v-128h-426.667v-85.333h426.667v-128z" /> | ||
70 | <glyph unicode="" d="M753.493 600.32l-241.493 241.493-241.493-241.493c-133.12-133.12-133.12-349.44 0-482.56 66.56-66.56 154.027-99.84 241.493-99.84s174.933 33.28 241.493 99.84c133.12 133.12 133.12 349.44 0 482.56zM512 102.827c-68.267 0-132.693 26.453-180.907 75.093-48.64 48.64-75.093 112.64-75.093 180.907s26.453 132.693 75.093 180.907l180.907 181.333v-618.24z" /> | ||
71 | <glyph unicode="" d="M752.213 689.494c-15.36 21.76-40.96 35.84-69.547 35.84l-469.333-0.427c-46.933 0-85.333-37.973-85.333-84.907v-426.667c0-46.933 38.4-84.907 85.333-84.907l469.333-0.427c28.587 0 54.187 14.080 69.547 35.84l186.453 262.827-186.453 262.827zM682.667 213.334h-469.333v426.667h469.333l151.467-213.333-151.467-213.333z" /> | ||
72 | <glyph unicode="" d="M752.213 689.494c-15.36 21.76-40.96 35.84-69.547 35.84l-469.333-0.427c-46.933 0-85.333-37.973-85.333-84.907v-426.667c0-46.933 38.4-84.907 85.333-84.907l469.333-0.427c28.587 0 54.187 14.080 69.547 35.84l186.453 262.827-186.453 262.827z" /> | ||
73 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM807.253 597.334h-125.867c-13.653 53.333-33.28 104.533-58.88 151.893 78.507-26.88 143.787-81.493 184.747-151.893zM512 766.294c35.413-51.2 63.147-107.947 81.493-168.96h-162.987c18.347 61.013 46.080 117.76 81.493 168.96zM181.76 341.334c-6.827 27.307-11.093 55.893-11.093 85.333s4.267 58.027 11.093 85.333h144.213c-3.413-28.16-5.973-56.32-5.973-85.333s2.56-57.173 5.973-85.333h-144.213zM216.747 256h125.867c13.653-53.333 33.28-104.533 58.88-151.893-78.507 26.88-143.787 81.067-184.747 151.893zM342.613 597.334h-125.867c40.96 70.827 106.24 125.013 184.747 151.893-25.6-47.36-45.227-98.56-58.88-151.893zM512 87.040c-35.413 51.2-63.147 107.947-81.493 168.96h162.987c-18.347-61.013-46.080-117.76-81.493-168.96zM611.84 341.334h-199.68c-3.84 28.16-6.827 56.32-6.827 85.333s2.987 57.6 6.827 85.333h199.68c3.84-27.733 6.827-56.32 6.827-85.333s-2.987-57.173-6.827-85.333zM622.507 104.107c25.6 47.36 45.227 98.56 58.88 151.893h125.867c-40.96-70.4-106.24-125.013-184.747-151.893zM698.027 341.334c3.413 28.16 5.973 56.32 5.973 85.333s-2.56 57.173-5.973 85.333h144.213c6.827-27.307 11.093-55.893 11.093-85.333s-4.267-58.027-11.093-85.333h-144.213z" /> | ||
74 | <glyph unicode="" d="M810.667 128h-597.333v597.333h298.667v85.333h-298.667c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v298.667h-85.333v-298.667zM597.333 810.667v-85.333h153.173l-419.413-419.413 60.16-60.16 419.413 419.413v-153.173h85.333v298.667h-298.667z" /> | ||
75 | <glyph unicode="" d="M128 384h85.333v85.333h-85.333v-85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM128 554.667h85.333v85.333h-85.333v-85.333zM298.667 384h597.333v85.333h-597.333v-85.333zM298.667 213.334h597.333v85.333h-597.333v-85.333zM298.667 640v-85.333h597.333v85.333h-597.333z" /> | ||
76 | <glyph unicode="" d="M512 213.334c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333-85.333-38.4-85.333-85.333 38.4-85.333 85.333-85.333zM768 597.334h-42.667v85.333c0 117.76-95.573 213.333-213.333 213.333s-213.333-95.573-213.333-213.333h81.067c0 72.96 59.307 132.267 132.267 132.267s132.267-59.307 132.267-132.267v-85.333h-388.267c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM768 85.334h-512v426.667h512v-426.667z" /> | ||
77 | <glyph unicode="" d="M768 597.334h-42.667v85.333c0 117.76-95.573 213.333-213.333 213.333s-213.333-95.573-213.333-213.333v-85.333h-42.667c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM512 814.934c72.96 0 132.267-59.307 132.267-132.267v-85.333h-260.267v85.333h-4.267c0 72.96 59.307 132.267 132.267 132.267zM768 85.334h-512v426.667h512v-426.667zM512 213.334c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333-85.333-38.4-85.333-85.333 38.4-85.333 85.333-85.333z" /> | ||
78 | <glyph unicode="" d="M768 597.334h-42.667v85.333c0 117.76-95.573 213.333-213.333 213.333s-213.333-95.573-213.333-213.333v-85.333h-42.667c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM512 213.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333zM644.267 597.334h-264.533v85.333c0 72.96 59.307 132.267 132.267 132.267s132.267-59.307 132.267-132.267v-85.333z" /> | ||
79 | <glyph unicode="" d="M913.493 444.587l-384 384c-15.36 15.36-36.693 24.747-60.16 24.747h-298.667c-46.933 0-85.333-38.4-85.333-85.333v-298.667c0-23.467 9.387-44.8 25.173-60.587l384-384c15.36-15.36 36.693-24.747 60.16-24.747s44.8 9.387 60.16 25.173l298.667 298.667c15.787 15.36 25.173 36.693 25.173 60.16s-9.813 45.227-25.173 60.587zM234.667 640c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM736.853 287.147l-182.187-182.187-182.187 182.187c-19.2 19.627-31.147 46.080-31.147 75.52 0 58.88 47.787 106.667 106.667 106.667 29.44 0 56.32-11.947 75.52-31.573l31.147-30.72 31.147 31.147c19.2 19.2 46.080 31.147 75.52 31.147 58.88 0 106.667-47.787 106.667-106.667 0-29.44-11.947-56.32-31.147-75.52z" /> | ||
80 | <glyph unicode="" d="M853.333 682.667h-426.667v-256h-85.333v341.333h256v170.667h-341.333v-256h-85.333c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
81 | <glyph unicode="" d="M597.333 853.334h-341.333c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667c0-46.933 37.973-85.333 84.907-85.333h512.427c46.933 0 85.333 38.4 85.333 85.333v512l-256 256zM682.667 256h-128v-128h-85.333v128h-128v85.333h128v128h85.333v-128h128v-85.333zM554.667 554.667v234.667l234.667-234.667h-234.667z" /> | ||
82 | <glyph unicode="" d="M810.667 768h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-512c0-46.933 37.973-85.333 85.333-85.333h170.667v85.333h-170.667v426.667h597.333v-426.667h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-37.973 85.333-85.333 85.333zM512 512l-170.667-170.667h128v-256h85.333v256h128l-170.667 170.667z" /> | ||
83 | <glyph unicode="" d="M810.667 128h-597.333v597.333h298.667v85.333h-298.667c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v298.667h-85.333v-298.667zM597.333 810.667v-85.333h153.173l-419.413-419.413 60.16-60.16 419.413 419.413v-153.173h85.333v298.667h-298.667z" /> | ||
84 | <glyph unicode="" d="M426.667 554.667h170.667v128h128l-213.333 213.333-213.333-213.333h128v-128zM384 512h-128v128l-213.333-213.333 213.333-213.333v128h128v170.667zM981.333 426.667l-213.333 213.333v-128h-128v-170.667h128v-128l213.333 213.333zM597.333 298.667h-170.667v-128h-128l213.333-213.333 213.333 213.333h-128v128z" /> | ||
85 | <glyph unicode="" d="M469.333 597.334c-70.827 0-128-57.173-128-128s57.173-128 128-128 128 57.173 128 128-57.173 128-128 128zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM750.507 128l-163.413 163.413c-34.133-22.187-74.24-35.413-117.76-35.413-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333c0-43.52-13.227-83.627-35.413-117.333l163.413-163.84-60.16-60.16z" /> | ||
86 | <glyph unicode="" d="M853.333 768h-682.667c-47.36 0-84.907-37.973-84.907-85.333l-0.427-512c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v512c0 47.36-37.973 85.333-85.333 85.333zM853.333 170.667h-682.667v256h682.667v-256zM853.333 597.334h-682.667v85.333h682.667v-85.333z" /> | ||
87 | <glyph unicode="" d="M853.333 725.334h-135.253l-78.080 85.333h-256l-78.080-85.333h-135.253c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h298.667v89.173c-120.747 20.48-213.333 125.44-213.333 252.16h85.333c0-94.293 76.373-170.667 170.667-170.667s170.667 76.373 170.667 170.667h85.333c0-126.72-92.587-231.68-213.333-252.16v-89.173h298.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM597.333 384c0-46.933-38.4-85.333-85.333-85.333s-85.333 38.4-85.333 85.333v170.667c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333v-170.667z" /> | ||
88 | <glyph unicode="" d="M810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 682.667c70.827 0 128-57.173 128-128s-57.173-128-128-128-128 57.173-128 128 57.173 128 128 128zM768 170.667h-512v42.667c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267v-42.667z" /> | ||
89 | <glyph unicode="" d="M810.24 448c14.507 0 28.587-1.28 42.667-2.987l0.427 493.653-853.333-853.333h493.227c-1.707 14.080-2.987 28.16-2.987 42.667 0 176.64 143.36 320 320 320zM968.533 107.094c0.853 6.827 1.707 13.653 1.707 20.907s-0.427 14.080-1.707 20.907l45.227 35.413c3.84 3.413 5.12 8.96 2.56 13.653l-42.667 73.813c-2.56 4.693-8.107 6.4-13.227 4.693l-52.907-21.333c-11.093 8.533-23.040 15.787-36.267 20.907l-8.107 56.32c-0.427 5.12-5.12 8.96-10.24 8.96h-85.333c-5.12 0-9.813-3.84-10.667-8.96l-8.107-56.32c-12.8-5.547-25.173-12.373-36.267-20.907l-52.907 21.333c-4.693 1.707-10.24 0-13.227-4.693l-42.667-73.813c-2.56-4.693-1.707-10.24 2.56-13.653l45.227-35.413c-0.853-6.827-1.28-13.653-1.28-20.907s0.427-14.080 1.28-20.907l-45.227-35.413c-3.84-3.413-5.12-8.96-2.56-13.653l42.667-73.813c2.56-4.693 8.107-6.4 13.227-4.693l52.907 21.333c11.093-8.533 23.040-15.787 36.267-20.907l8.107-56.32c0.853-5.12 5.12-8.96 10.667-8.96h85.333c5.12 0 9.813 3.84 10.667 8.96l8.107 56.32c12.8 5.547 25.173 12.373 35.84 20.907l53.333-21.333c4.693-1.707 10.24 0 13.227 4.693l42.667 73.813c2.56 4.693 1.28 10.24-2.56 13.653l-45.653 35.413zM810.24 64c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64z" /> | ||
90 | <glyph unicode="" d="M554.667 640h-85.333v-85.333h85.333v85.333zM554.667 469.334h-85.333v-256h85.333v256zM725.333 895.574l-426.667 0.427c-46.933 0-85.333-38.4-85.333-85.333v-768c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v768c0 46.933-38.4 84.907-85.333 84.907zM725.333 128h-426.667v597.333h426.667v-597.333z" /> | ||
91 | <glyph unicode="" d="M512 686.934c49.493 0 89.6-40.107 89.6-89.6s-40.107-89.6-89.6-89.6-89.6 40.107-89.6 89.6 40.107 89.6 89.6 89.6zM512 302.934c126.72 0 260.267-62.293 260.267-89.6v-46.933h-520.533v46.933c0 27.307 133.547 89.6 260.267 89.6zM512 768c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM512 384c-113.92 0-341.333-57.173-341.333-170.667v-128h682.667v128c0 113.493-227.413 170.667-341.333 170.667z" /> | ||
92 | <glyph unicode="" d="M85.333 682.667h-85.333v-213.333h0.427l-0.427-384c0-46.933 38.4-85.333 85.333-85.333h768v85.333h-768v597.333zM938.667 768h-341.333l-85.333 85.333h-256c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM298.667 298.667l192 256 149.333-192.427 106.667 128.427 149.333-192h-597.333z" /> | ||
93 | <glyph unicode="" d="M853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.52-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 280.747l93.867 94.293c11.947 11.52 15.36 28.16 10.667 43.093-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667zM512 810.667v-426.667l128 128h256v298.667h-384z" /> | ||
94 | <glyph unicode="" d="M512 810.667c-215.467 0-377.6-78.933-512-180.48l512-630.187 512 629.333c-134.4 101.547-296.533 181.333-512 181.333zM554.667 256h-85.333v256h85.333v-256zM469.333 597.334v85.333h85.333v-85.333h-85.333z" /> | ||
95 | <glyph unicode="" d="M810.667 640h-341.333v-256h341.333v256zM896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-84.48 85.333-84.48h768c46.933 0 85.333 37.547 85.333 84.48v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 127.574h-768v598.613h768v-598.613z" /> | ||
96 | <glyph unicode="" d="M810.667 768h-170.667l-336.64-538.88-111.36 197.547 192 341.333h-170.667l-192-341.333 192-341.333h170.667l336.64 538.88 111.36-197.547-192-341.333h170.667l192 341.333z" /> | ||
97 | <glyph unicode="" d="M810.667 597.334h-597.333c-70.827 0-128-57.173-128-128v-256h170.667v-170.667h512v170.667h170.667v256c0 70.827-57.173 128-128 128zM682.667 128h-341.333v213.333h341.333v-213.333zM810.667 426.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667zM768 810.667h-512v-170.667h512v170.667z" /> | ||
98 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333zM533.333 640h-64v-256l224-134.4 32 52.48-192 113.92z" /> | ||
99 | <glyph unicode="" d="M896 682.667h-85.333v-384h-554.667v-85.333c0-23.467 19.2-42.667 42.667-42.667h469.333l170.667-170.667v640c0 23.467-19.2 42.667-42.667 42.667zM725.333 426.667v384c0 23.467-19.2 42.667-42.667 42.667h-554.667c-23.467 0-42.667-19.2-42.667-42.667v-597.333l170.667 170.667h426.667c23.467 0 42.667 19.2 42.667 42.667z" /> | ||
100 | <glyph unicode="" d="M768 213.334h-512v85.333h512v-85.333zM768 384h-512v85.333h512v-85.333zM768 554.667h-512v85.333h512v-85.333zM128-0l64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64v853.333l-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64v-853.333z" /> | ||
101 | <glyph unicode="" d="M853.333 682.667h-93.013c4.693 13.227 7.68 27.733 7.68 42.667 0 70.827-57.173 128-128 128-44.8 0-83.627-23.040-106.667-57.6l-21.333-28.587-21.333 29.013c-23.040 34.133-61.867 57.173-106.667 57.173-70.827 0-128-57.173-128-128 0-14.933 2.987-29.44 7.68-42.667h-93.013c-47.36 0-84.907-37.973-84.907-85.333l-0.427-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333zM640 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM384 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM853.333 128h-682.667v85.333h682.667v-85.333zM853.333 341.334h-682.667v256h216.747l-88.747-120.747 69.12-49.92 144.213 196.267 144.213-196.267 69.12 49.92-88.747 120.747h216.747v-256z" /> | ||
102 | <glyph unicode="" d="M128 298.667h768v85.333h-768v-85.333zM128 128h768v85.333h-768v-85.333zM128 469.334h768v85.333h-768v-85.333zM128 725.334v-85.333h768v85.333h-768z" /> | ||
103 | <glyph unicode="" d="M42.667 42.667h938.667l-469.333 810.667-469.333-810.667zM554.667 170.667h-85.333v85.333h85.333v-85.333zM554.667 341.334h-85.333v170.667h85.333v-170.667z" /> | ||
104 | <glyph unicode="" d="M554.667 810.667c-212.053 0-384-171.947-384-384h-128l165.973-165.973 2.987-5.973 172.373 171.947h-128c0 165.12 133.547 298.667 298.667 298.667s298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667c-82.347 0-157.013 33.707-210.773 87.893l-60.587-60.587c69.547-69.547 165.12-112.64 271.36-112.64 212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 597.334v-213.333l182.613-108.373 30.72 51.627-149.333 88.747v181.333h-64z" /> | ||
105 | <glyph unicode="" d="M512 853.334c-165.12 0-298.667-133.547-298.667-298.667 0-224 298.667-554.667 298.667-554.667s298.667 330.667 298.667 554.667c0 165.12-133.547 298.667-298.667 298.667zM512 448c-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667 106.667-47.787 106.667-106.667-47.787-106.667-106.667-106.667z" /> | ||
106 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333zM533.333 640h-64v-256l224-134.4 32 52.48-192 113.92z" /> | ||
107 | <glyph unicode="" d="M661.333 341.334h-33.707l-11.947 11.52c41.813 48.64 66.987 111.787 66.987 180.48 0 153.173-124.16 277.333-277.333 277.333s-277.333-124.16-277.333-277.333 124.16-277.333 277.333-277.333c68.693 0 131.84 25.173 180.48 66.987l11.52-11.947v-33.707l213.333-212.907 63.573 63.573-212.907 213.333zM405.333 341.334c-106.24 0-192 85.76-192 192s85.76 192 192 192 192-85.76 192-192-85.76-192-192-192z" /> | ||
108 | <glyph unicode="" d="M512 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM810.667 810.667h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c47.36 0 85.333 38.4 85.333 85.333v597.333c0 46.933-37.973 85.333-85.333 85.333zM736 426.667c0-9.813-0.853-19.627-2.133-29.013l63.147-49.493c5.547-4.693 7.253-12.8 3.413-19.2l-59.733-103.253c-3.84-6.4-11.52-8.96-18.347-6.4l-74.24 29.867c-15.36-11.947-32.427-21.76-50.347-29.44l-11.093-78.933c-1.28-7.253-7.68-12.8-14.933-12.8h-119.467c-7.253 0-13.653 5.547-14.933 12.373l-11.093 78.933c-18.347 7.68-34.987 17.493-50.347 29.44l-74.24-29.867c-6.827-2.56-14.507 0-18.347 6.4l-59.733 103.253c-3.84 6.4-2.133 14.507 3.413 19.2l63.147 49.493c-1.28 9.813-2.133 19.627-2.133 29.44s0.853 19.627 2.133 29.013l-63.147 49.493c-5.547 4.693-7.253 12.8-3.413 19.2l59.733 103.253c3.84 6.4 11.52 8.96 18.347 6.4l74.24-29.867c15.36 11.947 32.427 21.76 50.347 29.44l11.093 78.933c1.28 7.253 7.68 12.8 14.933 12.8h119.467c7.253 0 13.653-5.547 14.933-12.373l11.093-78.933c18.347-7.68 34.987-17.493 50.347-29.44l74.24 29.867c6.827 2.56 14.507 0 18.347-6.4l59.733-103.253c3.84-6.4 2.133-14.507-3.413-19.2l-63.147-49.493c1.28-9.813 2.133-19.627 2.133-29.44z" /> | ||
109 | <glyph unicode="" d="M597.333 426.667c0 46.933-38.4 85.333-85.333 85.333s-85.333-38.4-85.333-85.333 38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333zM512 810.667c-212.053 0-384-171.947-384-384h-128l170.667-170.667 170.667 170.667h-128c0 165.12 133.547 298.667 298.667 298.667s298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667c-64.427 0-124.16 20.907-173.227 55.467l-60.587-61.44c64.853-49.493 145.92-79.36 233.813-79.36 212.053 0 384 171.947 384 384s-171.947 384-384 384z" /> | ||
110 | <glyph unicode="" d="M469.333-85.333h85.333v85.333h-85.333v-85.333zM298.667-85.333h85.333v85.333h-85.333v-85.333zM640-85.333h85.333v85.333h-85.333v-85.333zM755.627 695.040l-243.627 243.627h-42.667v-323.84l-195.84 195.84-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 195.84 195.84v-323.84h42.667l243.627 243.627-183.467 183.040 183.467 183.040zM554.667 775.254l80.213-80.213-80.213-80.213v160.427zM634.88 328.96l-80.213-80.213v160.427l80.213-80.213z" /> | ||
111 | <glyph unicode="" d="M298.667-85.333h85.333v85.333h-85.333v-85.333zM469.333-85.333h85.333v85.333h-85.333v-85.333zM640-85.333h85.333v85.333h-85.333v-85.333zM682.667 938.24l-341.333 0.427c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h341.333c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 84.907-85.333 84.907zM682.667 256h-341.333v512h341.333v-512z" /> | ||
112 | <glyph unicode="" d="M896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 127.574h-768v598.187h768v-598.187zM341.333 256h106.667l64-64 64 64h106.667v106.667l64 64-64 64v106.667h-106.667l-64 64-64-64h-106.667v-106.667l-64-64 64-64v-106.667zM512 554.667c70.827 0 128-57.173 128-128s-57.173-128-128-128v256z" /> | ||
113 | <glyph unicode="" d="M331.52 650.24l-65.707 54.613-230.827-278.187 230.827-278.187 65.707 54.613-185.6 223.573 185.6 223.573zM298.667 384h85.333v85.333h-85.333v-85.333zM725.333 469.334h-85.333v-85.333h85.333v85.333zM469.333 384h85.333v85.333h-85.333v-85.333zM758.187 704.854l-65.707-54.613 185.6-223.573-185.6-223.573 65.707-54.613 230.827 278.187-230.827 278.187z" /> | ||
114 | <glyph unicode="" d="M512 725.334c-165.12 0-298.667-133.547-298.667-298.667h85.333c0 117.76 95.573 213.333 213.333 213.333s213.333-95.573 213.333-213.333h85.333c0 165.12-133.547 298.667-298.667 298.667zM554.667 328.96c37.547 16.64 64 53.76 64 97.707 0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667c0-43.52 26.453-81.067 64-97.707v-140.8l-145.493-145.493 60.16-60.16 128 128 128-128 60.16 60.16-145.493 145.493v140.8zM512 896c-258.987 0-469.333-210.347-469.333-469.333h85.333c0 212.053 171.947 384 384 384s384-171.947 384-384h85.333c0 258.987-210.347 469.333-469.333 469.333z" /> | ||
115 | <glyph unicode="" d="M213.333 853.334c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667v-170.667h-85.333v-256h256v256h-85.333v170.667zM384 256c0-55.467 35.84-102.4 85.333-120.32v-178.347h85.333v178.347c49.493 17.493 85.333 64.427 85.333 120.32v85.333h-256v-85.333zM42.667 256c0-55.467 35.84-102.4 85.333-120.32v-178.347h85.333v178.347c49.493 17.92 85.333 64.853 85.333 120.32v85.333h-256v-85.333zM896 682.667v170.667c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667v-170.667h-85.333v-256h256v256h-85.333zM554.667 853.334c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667v-170.667h-85.333v-256h256v256h-85.333v170.667zM725.333 256c0-55.467 35.84-102.4 85.333-120.32v-178.347h85.333v178.347c49.493 17.493 85.333 64.427 85.333 120.32v85.333h-256v-85.333z" /> | ||
116 | <glyph unicode="" d="M213.333 853.334c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667v-170.667h-85.333v-256h256v256h-85.333v170.667zM384 256c0-55.467 35.84-102.4 85.333-120.32v-178.347h85.333v178.347c49.493 17.493 85.333 64.427 85.333 120.32v85.333h-256v-85.333zM42.667 256c0-55.467 35.84-102.4 85.333-120.32v-178.347h85.333v178.347c49.493 17.92 85.333 64.853 85.333 120.32v85.333h-256v-85.333zM896 682.667v170.667c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667v-170.667h-85.333v-256h256v256h-85.333zM554.667 853.334c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667v-170.667h-85.333v-256h256v256h-85.333v170.667zM725.333 256c0-55.467 35.84-102.4 85.333-120.32v-178.347h85.333v178.347c49.493 17.493 85.333 64.427 85.333 120.32v85.333h-256v-85.333z" /> | ||
117 | <glyph unicode="" d="M768 640v128c0 46.933-38.4 85.333-85.333 85.333h-341.333c-46.933 0-85.333-38.4-85.333-85.333v-128h-42.667v-256l128-256v-128h341.333v128l128 256v256h-42.667zM341.333 768h341.333v-128h-85.333v85.333h-42.667v-85.333h-85.333v85.333h-42.667v-85.333h-85.333v128z" /> | ||
118 | <glyph unicode="" d="M341.333 448c0 35.413-28.587 64-64 64s-64-28.587-64-64 28.587-64 64-64 64 28.587 64 64zM640 661.334c0 35.413-28.587 64-64 64h-128c-35.413 0-64-28.587-64-64s28.587-64 64-64h128c35.413 0 64 28.587 64 64zM362.667 298.667c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64zM512 896c-258.987 0-469.333-210.347-469.333-469.333s210.347-469.333 469.333-469.333 469.333 210.347 469.333 469.333-210.347 469.333-469.333 469.333zM512 42.667c-211.627 0-384 172.373-384 384s172.373 384 384 384 384-172.373 384-384-172.373-384-384-384zM746.667 512c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64zM661.333 298.667c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64z" /> | ||
119 | <glyph unicode="" d="M512.427 704l-85.76-106.667h170.667l-84.907 106.667zM768 512v-170.667l106.667 84.907-106.667 85.76zM256 512l-106.667-85.76 106.667-84.907v170.667zM597.333 256h-170.667l85.76-106.667 84.907 106.667zM896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 127.574h-768v598.187h768v-598.187z" /> | ||
120 | <glyph unicode="" d="M554.667 554.667h-85.333v-85.333h85.333v85.333zM725.333 554.667h-85.333v-85.333h85.333v85.333zM853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.52-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 280.747l93.867 94.293c11.947 11.52 15.36 28.16 10.667 43.093-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667zM810.667 554.667v-85.333h85.333v85.333h-85.333z" /> | ||
121 | <glyph unicode="" d="M298.667-85.333h85.333v85.333h-85.333v-85.333zM469.333-85.333h85.333v85.333h-85.333v-85.333zM554.667 853.334h-85.333v-426.667h85.333v426.667zM706.56 749.227l-61.867-61.867c73.813-44.8 123.307-125.44 123.307-218.027 0-141.227-114.773-256-256-256s-256 114.773-256 256c0 92.587 49.493 173.227 122.88 218.453l-61.44 61.44c-88.747-61.44-146.773-163.84-146.773-279.893 0-188.587 152.747-341.333 341.333-341.333s341.333 152.747 341.333 341.333c0 116.053-58.027 218.453-146.773 279.893zM640-85.333h85.333v85.333h-85.333v-85.333z" /> | ||
122 | <glyph unicode="" d="M640 554.667h-256c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h256c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667zM512 298.667c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333zM300.8 680.534l60.16-60.16c38.827 38.4 92.16 62.293 151.040 62.293s112.213-23.893 151.040-62.293l60.16 60.16c-54.187 54.187-128.853 87.467-211.2 87.467s-157.013-33.28-211.2-87.467zM512 938.667c-129.707 0-247.040-52.48-331.947-137.387l60.16-60.16c69.547 69.12 165.547 112.213 271.787 112.213s202.24-43.093 271.36-112.64l60.16 60.16c-84.48 85.333-201.813 137.813-331.52 137.813z" /> | ||
123 | <glyph unicode="" d="M298.667-85.333h85.333v85.333h-85.333v-85.333zM512 384c70.827 0 127.573 57.173 127.573 128l0.427 256c0 70.827-57.173 128-128 128s-128-57.173-128-128v-256c0-70.827 57.173-128 128-128zM469.333-85.333h85.333v85.333h-85.333v-85.333zM640-85.333h85.333v85.333h-85.333v-85.333zM810.667 512h-72.533c0-128-108.373-217.6-226.133-217.6s-226.133 89.6-226.133 217.6h-72.533c0-145.493 116.053-265.813 256-286.72v-139.947h85.333v139.947c139.947 20.907 256 141.227 256 286.72z" /> | ||
124 | <glyph unicode="" d="M829.013 384.854c1.707 13.653 2.987 27.307 2.987 41.813s-1.28 28.16-2.987 41.813l90.027 70.4c8.107 6.4 10.24 17.92 5.12 27.307l-85.333 147.627c-5.12 9.387-16.64 12.8-26.027 9.387l-106.24-42.667c-22.187 17.067-46.080 31.147-72.107 41.813l-16.213 113.067c-1.28 10.24-10.24 17.92-20.907 17.92h-170.667c-10.667 0-19.627-7.68-20.907-17.92l-16.213-113.067c-26.027-10.667-49.92-25.173-72.107-41.813l-106.24 42.667c-9.813 3.84-20.907 0-26.027-9.387l-85.333-147.627c-5.547-9.387-2.987-20.907 5.12-27.307l90.027-70.4c-1.707-13.653-2.987-27.733-2.987-41.813s1.28-28.16 2.987-41.813l-90.027-70.4c-8.107-6.4-10.24-17.92-5.12-27.307l85.333-147.627c5.12-9.387 16.64-12.8 26.027-9.387l106.24 42.667c22.187-17.067 46.080-31.147 72.107-41.813l16.213-113.067c1.28-10.24 10.24-17.92 20.907-17.92h170.667c10.667 0 19.627 7.68 20.907 17.92l16.213 113.067c26.027 10.667 49.92 25.173 72.107 41.813l106.24-42.667c9.813-3.84 20.907 0 26.027 9.387l85.333 147.627c5.12 9.387 2.987 20.907-5.12 27.307l-90.027 70.4zM512 277.334c-82.347 0-149.333 66.987-149.333 149.333s66.987 149.333 149.333 149.333 149.333-66.987 149.333-149.333-66.987-149.333-149.333-149.333z" /> | ||
125 | <glyph unicode="" d="M128 554.667h-85.333v-469.333c0-47.36 37.973-85.333 85.333-85.333h597.333c47.36 0 85.333 37.973 85.333 85.333h-682.667v469.333zM768 725.334v85.333c0 47.36-37.973 85.333-85.333 85.333h-170.667c-47.36 0-85.333-37.973-85.333-85.333v-85.333h-213.333v-469.333c0-47.36 37.973-85.333 85.333-85.333h597.333c47.36 0 85.333 37.973 85.333 85.333v469.333h-213.333zM512 810.667h170.667v-85.333h-170.667v85.333zM512 298.667v298.667l234.667-128-234.667-170.667z" /> | ||
126 | <glyph unicode="" d="M682.667 682.667v85.333c0 47.36-37.973 85.333-85.333 85.333h-170.667c-47.36 0-85.333-37.973-85.333-85.333v-85.333h-256v-554.667c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v554.667h-256zM426.667 768h170.667v-85.333h-170.667v85.333zM384 170.667v384l320-170.667-320-213.333z" /> | ||
127 | <glyph unicode="" d="M734.293 554.667l-186.88 279.893c-8.107 11.947-21.76 17.92-35.413 17.92s-27.307-5.973-35.413-18.347l-186.88-279.467h-204.373c-23.467 0-42.667-19.2-42.667-42.667 0-3.84 0.427-7.68 1.707-11.52l108.373-395.52c9.813-35.84 42.667-62.293 81.92-62.293h554.667c39.253 0 72.107 26.453 82.347 62.293l108.373 395.52 1.28 11.52c0 23.467-19.2 42.667-42.667 42.667h-204.373zM384 554.667l128 187.733 128-187.733h-256zM512 213.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333z" /> | ||
128 | <glyph unicode="" d="M298.667 170.667c-46.933 0-84.907-38.4-84.907-85.333s37.973-85.333 84.907-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM42.667 853.334v-85.333h85.333l153.6-323.84-57.6-104.533c-6.827-11.947-10.667-26.027-10.667-40.96 0-46.933 38.4-85.333 85.333-85.333h512v85.333h-494.080c-5.973 0-10.667 4.693-10.667 10.667l1.28 5.12 38.4 69.547h317.867c32 0 60.16 17.493 74.667 43.947l152.747 276.907c3.413 5.973 5.12 13.227 5.12 20.48 0 23.467-19.2 42.667-42.667 42.667h-631.040l-40.107 85.333h-139.52zM725.333 170.667c-46.933 0-84.907-38.4-84.907-85.333s37.973-85.333 84.907-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
129 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM341.333 341.334h-85.333v85.333h85.333v-85.333zM341.333 469.334h-85.333v85.333h85.333v-85.333zM341.333 597.334h-85.333v85.333h85.333v-85.333zM640 341.334h-213.333v85.333h213.333v-85.333zM768 469.334h-341.333v85.333h341.333v-85.333zM768 597.334h-341.333v85.333h341.333v-85.333z" /> | ||
130 | <glyph unicode="" d="M531.2 256h89.173l-218.027 554.667h-79.36l-218.027-554.667h89.173l47.787 128h240.64l48.64-128zM274.347 469.334l88.32 235.52 88.32-235.52h-176.64zM921.173 444.16l-345.173-345.173-156.587 157.013-60.16-60.16 217.173-217.173 404.907 405.333-60.16 60.16z" /> | ||
131 | <glyph unicode="" d="M512 328.534l158.293-115.2-60.587 186.027 158.293 112.64h-194.133l-61.867 192-61.867-192h-194.133l158.293-112.64-60.587-186.027z" /> | ||
132 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM692.48 170.667l-180.48 108.8-180.48-108.8 47.787 205.227-159.147 137.813 209.92 17.92 81.92 193.707 81.92-193.28 209.92-17.92-159.147-137.813 47.787-205.653z" /> | ||
133 | <glyph unicode="" d="M853.333 768h-682.667v-85.333h682.667v85.333zM896 341.334v85.333l-42.667 213.333h-682.667l-42.667-213.333v-85.333h42.667v-256h426.667v256h170.667v-256h85.333v256h42.667zM512 170.667h-256v170.667h256v-170.667z" /> | ||
134 | <glyph unicode="" d="M597.333 213.334h-426.667v-85.333h426.667v85.333zM853.333 554.667h-682.667v-85.333h682.667v85.333zM170.667 298.667h682.667v85.333h-682.667v-85.333zM170.667 725.334v-85.333h682.667v85.333h-682.667z" /> | ||
135 | <glyph unicode="" d="M704 426.667c58.88 0 106.24 47.787 106.24 106.667s-47.36 106.667-106.24 106.667c-58.88 0-106.667-47.787-106.667-106.667s47.787-106.667 106.667-106.667zM384 469.334c70.827 0 127.573 57.173 127.573 128s-56.747 128-127.573 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM704 341.334c-78.080 0-234.667-39.253-234.667-117.333v-96h469.333v96c0 78.080-156.587 117.333-234.667 117.333zM384 384c-99.413 0-298.667-49.92-298.667-149.333v-106.667h298.667v96c0 36.267 14.080 99.84 101.12 148.053-37.12 7.68-72.96 11.947-101.12 11.947z" /> | ||
136 | <glyph unicode="" d="M298.24 469.334l-170.24-170.667 170.24-170.667v128h299.093v85.333h-299.093v128zM896 554.667l-170.24 170.667v-128h-299.093v-85.333h299.093v-128l170.24 170.667z" /> | ||
137 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM277.333 554.667l149.333 149.333 149.333-149.333h-106.667v-170.667h-85.333v170.667h-106.667zM746.667 298.667l-149.333-149.333-149.333 149.333h106.667v170.667h85.333v-170.667h106.667z" /> | ||
138 | <glyph unicode="" d="M682.667 212.907v299.093h-85.333v-299.093h-128l170.667-170.24 170.667 170.24h-128zM384 810.667l-170.667-170.24h128v-299.093h85.333v299.093h128l-170.667 170.24z" /> | ||
139 | <glyph unicode="" d="M512 234.667l170.667 170.667h-128v384h-85.333v-384h-128l170.667-170.667zM896 789.334h-256v-84.907h256v-598.613h-768v598.613h256v84.907h-256c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
140 | <glyph unicode="" d="M42.667 554.667h85.333v85.333h-85.333v-85.333zM42.667 384h85.333v85.333h-85.333v-85.333zM42.667 725.334h85.333v85.333c-46.933 0-85.333-38.4-85.333-85.333zM384 42.667h85.333v85.333h-85.333v-85.333zM42.667 213.334h85.333v85.333h-85.333v-85.333zM128 42.667v85.333h-85.333c0-46.933 38.4-85.333 85.333-85.333zM896 810.667h-341.333v-256h426.667v170.667c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h85.333v85.333h-85.333v-85.333zM384 725.334h85.333v85.333h-85.333v-85.333zM213.333 42.667h85.333v85.333h-85.333v-85.333zM213.333 725.334h85.333v85.333h-85.333v-85.333zM896 42.667c46.933 0 85.333 38.4 85.333 85.333h-85.333v-85.333zM896 384h85.333v85.333h-85.333v-85.333zM554.667 42.667h85.333v85.333h-85.333v-85.333zM725.333 42.667h85.333v85.333h-85.333v-85.333z" /> | ||
141 | <glyph unicode="" d="M896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 128h-768v597.333h426.667v-170.667h341.333v-426.667z" /> | ||
142 | <glyph unicode="" d="M768 810.667v-85.333h-85.333v85.333h-341.333v-85.333h-85.333v85.333h-85.333v-768h85.333v85.333h85.333v-85.333h341.333v85.333h85.333v-85.333h85.333v768h-85.333zM341.333 213.334h-85.333v85.333h85.333v-85.333zM341.333 384h-85.333v85.333h85.333v-85.333zM341.333 554.667h-85.333v85.333h85.333v-85.333zM768 213.334h-85.333v85.333h85.333v-85.333zM768 384h-85.333v85.333h85.333v-85.333zM768 554.667h-85.333v85.333h85.333v-85.333z" /> | ||
143 | <glyph unicode="" d="M640 810.667h-384c-35.413 0-65.707-21.333-78.507-52.053l-128.853-300.8c-3.84-9.813-5.973-20.053-5.973-31.147v-81.493l0.427-0.427-0.427-3.413c0-46.933 38.4-85.333 85.333-85.333h269.227l-40.533-194.987-1.28-13.653c0-17.493 7.253-33.707 18.773-45.227l45.227-44.8 281.173 281.173c15.36 15.36 24.747 36.693 24.747 60.16v426.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 810.667v-512h170.667v512h-170.667z" /> | ||
144 | <glyph unicode="" d="M42.667 42.667h170.667v512h-170.667v-512zM981.333 512c0 46.933-38.4 85.333-85.333 85.333h-269.227l40.533 194.987 1.28 13.653c0 17.493-7.253 33.707-18.773 45.227l-45.227 44.8-280.747-281.173c-15.787-15.36-25.173-36.693-25.173-60.16v-426.667c0-46.933 38.4-85.333 85.333-85.333h384c35.413 0 65.707 21.333 78.507 52.053l128.853 300.8c3.84 9.813 5.973 20.053 5.973 31.147v81.493l-0.427 0.427 0.427 3.413z" /> | ||
145 | <glyph unicode="" d="M512 682.667c0 23.467-19.2 42.667-42.667 42.667h-221.013l28.16 135.68 0.853 9.813c0 13.227-5.547 25.173-14.080 34.133l-33.707 33.707-210.773-210.773c-11.52-11.52-18.773-27.733-18.773-45.227v-277.333c0-35.413 28.587-64 64-64h288c26.453 0 49.067 16.213 58.88 38.827l96.427 225.707c2.987 7.253 4.693 15.36 4.693 23.467v53.333zM960 512h-288c-26.453 0-49.067-16.213-58.88-38.827l-96.427-225.707c-2.987-7.253-4.693-15.36-4.693-23.467v-53.333c0-23.467 19.2-42.667 42.667-42.667h221.013l-28.16-135.68-0.853-10.24c0-13.227 5.547-25.173 14.080-34.133l33.707-33.28 210.773 210.773c11.52 11.52 18.773 27.733 18.773 45.227v277.333c0 35.413-28.587 64-64 64z" /> | ||
146 | <glyph unicode="" d="M128 554.667h597.333v85.333h-597.333v-85.333zM128 384h597.333v85.333h-597.333v-85.333zM128 213.334h597.333v85.333h-597.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM810.667 640v-85.333h85.333v85.333h-85.333zM810.667 384h85.333v85.333h-85.333v-85.333z" /> | ||
147 | <glyph unicode="" d="M810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v469.333h597.333v-469.333zM298.667 512h213.333v-213.333h-213.333z" /> | ||
148 | <glyph unicode="" d="M813.653 728.32l-60.16-60.16c61.44-61.867 99.84-147.2 99.84-241.493 0-188.587-152.747-341.333-341.333-341.333s-341.333 152.747-341.333 341.333c0 174.080 130.133 317.44 298.667 338.347v-86.187c-121.173-20.48-213.333-125.44-213.333-252.16 0-141.227 114.773-256 256-256s256 114.773 256 256c0 70.827-28.587 134.827-75.093 180.907l-60.16-60.16c30.72-31.147 49.92-73.813 49.92-120.747 0-94.293-76.373-170.667-170.667-170.667s-170.667 76.373-170.667 170.667c0 79.36 54.613 145.493 128 164.693v-91.307c-25.6-14.933-42.667-41.813-42.667-73.387 0-46.933 38.4-85.333 85.333-85.333s85.333 38.4 85.333 85.333c0 31.573-17.067 58.88-42.667 73.387v353.28h-42.667c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667c0 117.76-47.787 224.427-125.013 301.653z" /> | ||
149 | <glyph unicode="" d="M549.12 295.68l-108.373 107.093 1.28 1.28c74.24 82.773 127.147 177.92 158.293 278.613h125.013v85.333h-298.667v85.333h-85.333v-85.333h-298.667v-84.907h476.587c-28.587-82.347-73.813-160.427-135.253-228.693-39.68 43.947-72.533 92.16-98.56 142.933h-85.333c31.147-69.547 73.813-135.253 127.147-194.56l-217.173-214.187 60.587-60.587 213.333 213.333 132.693-132.693 32.427 87.040zM789.333 512h-85.333l-192-512h85.333l47.787 128h202.667l48.213-128h85.333l-192 512zM677.547 213.334l69.12 184.747 69.12-184.747h-138.24z" /> | ||
150 | <glyph unicode="" d="M682.667 170.667l97.707 97.707-208.213 208.213-170.667-170.667-316.16 316.587 60.16 60.16 256-256 170.667 170.667 268.8-268.373 97.707 97.707v-256z" /> | ||
151 | <glyph unicode="" d="M938.667 426.667l-170.667 170.667v-128h-640v-85.333h640v-128z" /> | ||
152 | <glyph unicode="" d="M682.667 682.667l97.707-97.707-208.213-208.213-170.667 170.667-316.16-316.587 60.16-60.16 256 256 170.667-170.667 268.8 268.373 97.707-97.707v256z" /> | ||
153 | <glyph unicode="" d="M725.333 810.667h-426.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667 298.667 128 298.667-128v682.667c0 46.933-38.4 85.333-85.333 85.333zM725.333 170.667l-213.333 93.013-213.333-93.013v554.667h426.667v-554.667z" /> | ||
154 | <glyph unicode="" d="M725.333 810.667h-426.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667 298.667 128 298.667-128v682.667c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
155 | <glyph unicode="" d="M512 896l-384-170.667v-256c0-236.8 163.84-458.24 384-512 220.16 53.76 384 275.2 384 512v256l-384 170.667zM426.667 213.334l-170.667 170.667 60.16 60.16 110.507-110.080 281.173 281.173 60.16-60.587-341.333-341.333z" /> | ||
156 | <glyph unicode="" d="M853.333 384h-725.333c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h725.333c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667zM853.333 810.667h-725.333c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h725.333c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667z" /> | ||
157 | <glyph unicode="" d="M170.667 170.667h128v554.667h-128v-554.667zM768 725.334v-554.667h128v554.667h-128zM341.333 170.667h384v554.667h-384v-554.667z" /> | ||
158 | <glyph unicode="" d="M298.667 128h426.667v640h-426.667v-640zM85.333 213.334h170.667v469.333h-170.667v-469.333zM768 682.667v-469.333h170.667v469.333h-170.667z" /> | ||
159 | <glyph unicode="" d="M426.667 170.667h213.333v554.667h-213.333v-554.667zM170.667 170.667h213.333v554.667h-213.333v-554.667zM682.667 725.334v-554.667h213.333v554.667h-213.333z" /> | ||
160 | <glyph unicode="" d="M85.333 42.667h810.667v128h-810.667v-128zM853.333 597.334h-725.333c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h725.333c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667zM85.333 810.667v-128h810.667v128h-810.667z" /> | ||
161 | <glyph unicode="" d="M170.667 298.667h725.333v85.333h-725.333v-85.333zM170.667 128h725.333v85.333h-725.333v-85.333zM170.667 469.334h725.333v85.333h-725.333v-85.333zM170.667 725.334v-85.333h725.333v85.333h-725.333z" /> | ||
162 | <glyph unicode="" d="M170.667 341.334h170.667v170.667h-170.667v-170.667zM170.667 128h170.667v170.667h-170.667v-170.667zM170.667 554.667h170.667v170.667h-170.667v-170.667zM384 341.334h512v170.667h-512v-170.667zM384 128h512v170.667h-512v-170.667zM384 725.334v-170.667h512v170.667h-512z" /> | ||
163 | <glyph unicode="" d="M170.667 469.334h213.333v256h-213.333v-256zM170.667 170.667h213.333v256h-213.333v-256zM426.667 170.667h213.333v256h-213.333v-256zM682.667 170.667h213.333v256h-213.333v-256zM426.667 469.334h213.333v256h-213.333v-256zM682.667 725.334v-256h213.333v256h-213.333z" /> | ||
164 | <glyph unicode="" d="M426.667 170.667h213.333v256h-213.333v-256zM170.667 170.667h213.333v554.667h-213.333v-554.667zM682.667 170.667h213.333v256h-213.333v-256zM426.667 725.334v-256h469.333v256h-469.333z" /> | ||
165 | <glyph unicode="" d="M170.667 170.667h725.333v256h-725.333v-256zM170.667 725.334v-256h725.333v256h-725.333z" /> | ||
166 | <glyph unicode="" d="M256 725.334h-128c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h128c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667zM853.333 725.334h-128c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h128c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667zM554.667 725.334h-128c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h128c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667z" /> | ||
167 | <glyph unicode="" d="M512 640c117.76 0 213.333-95.573 213.333-213.333 0-27.733-5.547-53.76-15.36-78.080l124.587-124.587c64.427 53.76 115.2 123.307 146.347 202.667-73.813 187.307-256 320-469.333 320-59.733 0-116.907-10.667-169.813-29.867l92.16-92.16c24.32 9.813 50.347 15.36 78.080 15.36zM85.333 756.48l116.907-116.907c-70.827-55.040-126.293-128.427-159.573-212.907 73.813-187.307 256-320 469.333-320 66.133 0 129.28 12.8 186.88 35.84l17.92-17.92 125.013-124.587 54.187 54.187-756.48 756.48-54.187-54.187zM321.28 520.534l66.133-66.133c-2.133-8.96-3.413-18.347-3.413-27.733 0-70.827 57.173-128 128-128 9.387 0 18.773 1.28 27.733 3.413l66.133-66.133c-28.587-14.080-60.16-22.613-93.867-22.613-117.76 0-213.333 95.573-213.333 213.333 0 33.707 8.533 65.28 22.613 93.867zM505.173 553.814l134.4-134.4 0.853 6.827c0 70.827-57.173 128-128 128l-7.253-0.427z" /> | ||
168 | <glyph unicode="" d="M512 746.667c-213.333 0-395.52-132.693-469.333-320 73.813-187.307 256-320 469.333-320s395.52 132.693 469.333 320c-73.813 187.307-256 320-469.333 320zM512 213.334c-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333-95.573-213.333-213.333-213.333zM512 554.667c-70.827 0-128-57.173-128-128s57.173-128 128-128 128 57.173 128 128-57.173 128-128 128z" /> | ||
169 | <glyph unicode="" d="M853.333 682.667h-93.013c4.693 13.227 7.68 27.733 7.68 42.667 0 70.827-57.173 128-128 128-44.8 0-83.627-23.040-106.667-57.6l-21.333-28.587-21.333 29.013c-23.040 34.133-61.867 57.173-106.667 57.173-70.827 0-128-57.173-128-128 0-14.933 2.987-29.44 7.68-42.667h-93.013c-47.36 0-84.907-37.973-84.907-85.333l-0.427-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333zM640 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM384 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM853.333 128h-682.667v85.333h682.667v-85.333zM853.333 341.334h-682.667v256h216.747l-88.747-120.747 69.12-49.92 144.213 196.267 144.213-196.267 69.12 49.92-88.747 120.747h216.747v-256z" /> | ||
170 | <glyph unicode="" d="M853.333 853.334h-682.667c-47.36 0-85.333-37.973-85.333-85.333v-469.333c0-47.36 37.973-85.333 85.333-85.333h170.667v-213.333l170.667 85.333 170.667-85.333v213.333h170.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333zM853.333 298.667h-682.667v85.333h682.667v-85.333zM853.333 512h-682.667v256h682.667v-256z" /> | ||
171 | <glyph unicode="" d="M853.333 682.667h-128v85.333c0 47.36-37.973 85.333-85.333 85.333h-256c-47.36 0-85.333-37.973-85.333-85.333v-85.333h-128c-47.36 0-85.333-37.973-85.333-85.333v-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333zM384 768h256v-85.333h-256v85.333zM853.333 128h-682.667v85.333h682.667v-85.333zM853.333 341.334h-682.667v256h128v-85.333h85.333v85.333h256v-85.333h85.333v85.333h128v-256z" /> | ||
172 | <glyph unicode="" d="M853.333 682.667h-170.667v85.333c0 47.36-37.973 85.333-85.333 85.333h-170.667c-47.36 0-85.333-37.973-85.333-85.333v-85.333h-170.667c-47.36 0-84.907-37.973-84.907-85.333l-0.427-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333zM597.333 682.667h-170.667v85.333h170.667v-85.333z" /> | ||
173 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM554.667 213.334h-85.333v85.333h85.333v-85.333zM554.667 384h-85.333v256h85.333v-256z" /> | ||
174 | <glyph unicode="" d="M42.667 42.667h938.667l-469.333 810.667-469.333-810.667zM554.667 170.667h-85.333v85.333h85.333v-85.333zM554.667 341.334h-85.333v170.667h85.333v-170.667z" /> | ||
175 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 234.667c-106.24 0-192 85.76-192 192s85.76 192 192 192 192-85.76 192-192-85.76-192-192-192zM512 469.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667z" /> | ||
176 | <glyph unicode="" d="M810.667 768h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-512c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM469.333 469.334h-64v21.333h-85.333v-128h85.333v21.333h64v-42.667c0-23.467-19.2-42.667-42.667-42.667h-128c-23.467 0-42.667 19.2-42.667 42.667v170.667c0 23.467 19.2 42.667 42.667 42.667h128c23.467 0 42.667-19.2 42.667-42.667v-42.667zM768 469.334h-64v21.333h-85.333v-128h85.333v21.333h64v-42.667c0-23.467-19.2-42.667-42.667-42.667h-128c-23.467 0-42.667 19.2-42.667 42.667v170.667c0 23.467 19.2 42.667 42.667 42.667h128c23.467 0 42.667-19.2 42.667-42.667v-42.667z" /> | ||
177 | <glyph unicode="" d="M426.667 85.334h170.667v682.667h-170.667v-682.667zM170.667 85.334h170.667v341.333h-170.667v-341.333zM682.667 554.667v-469.333h170.667v469.333h-170.667z" /> | ||
178 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM640 554.667h-170.667v-85.333h170.667v-85.333h-170.667v-85.333h170.667v-85.333h-256v426.667h256v-85.333z" /> | ||
179 | <glyph unicode="" d="M170.667 170.667l362.667 256-362.667 256v-512zM554.667 682.667v-512l362.667 256-362.667 256z" /> | ||
180 | <glyph unicode="" d="M469.333 170.667v512l-362.667-256 362.667-256zM490.667 426.667l362.667-256v512l-362.667-256z" /> | ||
181 | <glyph unicode="" d="M640 618.667v234.667h-256v-234.667l128-128 128 128zM320 554.667h-234.667v-256h234.667l128 128-128 128zM384 234.667v-234.667h256v234.667l-128 128-128-128zM704 554.667l-128-128 128-128h234.667v256h-234.667z" /> | ||
182 | <glyph unicode="" d="M725.333 85.334c-12.373 0-23.893 2.56-32.427 6.4-30.293 15.787-51.627 37.547-72.96 101.547-21.76 66.56-62.72 97.707-101.973 128-33.707 26.027-68.693 52.907-98.987 107.947-22.613 40.96-34.987 85.76-34.987 125.44 0 119.467 93.867 213.333 213.333 213.333s213.333-93.867 213.333-213.333h85.333c0 167.68-130.987 298.667-298.667 298.667s-298.667-130.987-298.667-298.667c0-53.76 16.213-113.067 45.653-166.4 38.827-70.4 84.48-105.813 121.6-134.4 34.56-26.453 59.307-45.653 72.96-87.467 25.6-77.653 58.453-121.173 116.48-151.467 21.76-9.813 45.653-14.933 69.973-14.933 94.293 0 170.667 76.373 170.667 170.667h-85.333c0-46.933-38.4-85.333-85.333-85.333zM325.973 826.027l-60.587 60.587c-84.907-84.907-137.387-202.24-137.387-331.947s52.48-247.040 137.387-331.947l60.16 60.16c-69.12 69.547-112.213 165.547-112.213 271.787s43.093 202.24 112.64 271.36zM490.667 554.667c0-58.88 47.787-106.667 106.667-106.667s106.667 47.787 106.667 106.667-47.787 106.667-106.667 106.667-106.667-47.787-106.667-106.667z" /> | ||
183 | <glyph unicode="" d="M810.667 768h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-512c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM469.333 298.667h-64v85.333h-85.333v-85.333h-64v256h64v-106.667h85.333v106.667h64v-256zM768 341.334c0-23.467-19.2-42.667-42.667-42.667h-32v-64h-64v64h-32c-23.467 0-42.667 19.2-42.667 42.667v170.667c0 23.467 19.2 42.667 42.667 42.667h128c23.467 0 42.667-19.2 42.667-42.667v-170.667zM618.667 362.667h85.333v128h-85.333v-128z" /> | ||
184 | <glyph unicode="" d="M512 768v128l-170.667-170.667 170.667-170.667v128c141.227 0 256-114.773 256-256 0-43.093-10.667-84.053-29.867-119.467l62.293-62.293c33.28 52.48 52.907 114.773 52.907 181.76 0 188.587-152.747 341.333-341.333 341.333zM512 170.667c-141.227 0-256 114.773-256 256 0 43.093 10.667 84.053 29.867 119.467l-62.293 62.293c-33.28-52.48-52.907-114.773-52.907-181.76 0-188.587 152.747-341.333 341.333-341.333v-128l170.667 170.667-170.667 170.667v-128z" /> | ||
185 | <glyph unicode="" d="M512 341.334c70.827 0 127.573 57.173 127.573 128l0.427 256c0 70.827-57.173 128-128 128s-128-57.173-128-128v-256c0-70.827 57.173-128 128-128zM460.8 729.6c0 28.16 23.040 51.2 51.2 51.2s51.2-23.040 51.2-51.2l-0.427-264.533c0-28.16-22.613-51.2-50.773-51.2s-51.2 23.040-51.2 51.2v264.533zM738.133 469.334c0-128-108.373-217.6-226.133-217.6s-226.133 89.6-226.133 217.6h-72.533c0-145.493 116.053-265.813 256-286.72v-139.947h85.333v139.947c139.947 20.48 256 140.8 256 286.72h-72.533z" /> | ||
186 | <glyph unicode="" d="M810.667 469.334h-72.533c0-31.573-6.827-61.013-18.347-87.467l52.48-52.48c23.893 41.813 38.4 89.173 38.4 139.947zM639.147 462.080c0 2.56 0.853 4.693 0.853 7.253v256c0 70.827-57.173 128-128 128s-128-57.173-128-128v-7.68l255.147-255.573zM182.187 810.667l-54.187-54.187 256.427-256.427v-30.72c0-70.827 56.747-128 127.573-128 9.387 0 18.773 1.28 27.733 3.413l70.827-70.827c-30.293-14.080-64-22.187-98.56-22.187-117.76 0-226.133 89.6-226.133 217.6h-72.533c0-145.493 116.053-265.813 256-286.72v-139.947h85.333v139.947c38.827 5.547 75.52 19.2 108.373 38.4l178.773-178.347 54.187 54.187-713.813 713.813z" /> | ||
187 | <glyph unicode="" d="M512 341.334c70.827 0 127.573 57.173 127.573 128l0.427 256c0 70.827-57.173 128-128 128s-128-57.173-128-128v-256c0-70.827 57.173-128 128-128zM738.133 469.334c0-128-108.373-217.6-226.133-217.6s-226.133 89.6-226.133 217.6h-72.533c0-145.493 116.053-265.813 256-286.72v-139.947h85.333v139.947c139.947 20.48 256 140.8 256 286.72h-72.533z" /> | ||
188 | <glyph unicode="" d="M768 768l85.333-170.667h-128l-85.333 170.667h-85.333l85.333-170.667h-128l-85.333 170.667h-85.333l85.333-170.667h-128l-85.333 170.667h-42.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v597.333h-170.667z" /> | ||
189 | <glyph unicode="" d="M170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM810.667 469.334h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333z" /> | ||
190 | <glyph unicode="" d="M170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM810.667 469.334h-426.667v85.333h426.667v-85.333zM640 298.667h-256v85.333h256v-85.333zM810.667 640h-426.667v85.333h426.667v-85.333z" /> | ||
191 | <glyph unicode="" d="M853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM768 640h-128v-234.667c0-58.88-47.787-106.667-106.667-106.667s-106.667 47.787-106.667 106.667 47.787 106.667 106.667 106.667c24.32 0 46.080-8.107 64-21.76v235.093h170.667v-85.333zM170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333z" /> | ||
192 | <glyph unicode="" d="M981.333 426.667l-104.107 118.613 14.507 157.013-154.027 34.987-80.64 135.68-145.067-62.293-145.067 62.293-80.64-135.68-154.027-34.56 14.507-157.013-104.107-119.040 104.107-118.613-14.507-157.44 154.027-34.987 80.64-135.68 145.067 62.72 145.067-62.293 80.64 135.68 154.027 34.987-14.507 157.013 104.107 118.613zM554.667 213.334h-85.333v85.333h85.333v-85.333zM554.667 384h-85.333v256h85.333v-256z" /> | ||
193 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333 0 78.933 26.88 151.467 72.107 209.067l478.293-478.293c-57.6-45.227-130.133-72.107-209.067-72.107zM781.227 217.6l-478.293 478.293c57.6 45.227 130.133 72.107 209.067 72.107 188.587 0 341.333-152.747 341.333-341.333 0-78.933-26.88-151.467-72.107-209.067z" /> | ||
194 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM469.333 256h-85.333v341.333h85.333v-341.333zM640 256h-85.333v341.333h85.333v-341.333z" /> | ||
195 | <glyph unicode="" d="M384 256h85.333v341.333h-85.333v-341.333zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333zM554.667 256h85.333v341.333h-85.333v-341.333z" /> | ||
196 | <glyph unicode="" d="M256 128h170.667v597.333h-170.667v-597.333zM597.333 725.334v-597.333h170.667v597.333h-170.667z" /> | ||
197 | <glyph unicode="" d="M341.333 725.334v-597.333l469.333 298.667z" /> | ||
198 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM426.667 234.667v384l256-192-256-192z" /> | ||
199 | <glyph unicode="" d="M426.667 234.667l256 192-256 192v-384zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333z" /> | ||
200 | <glyph unicode="" d="M682.667 682.667v85.333c0 47.36-37.973 85.333-85.333 85.333h-170.667c-47.36 0-85.333-37.973-85.333-85.333v-85.333h-256v-554.667c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v554.667h-256zM426.667 768h170.667v-85.333h-170.667v85.333zM384 170.667v384l320-170.667-320-213.333z" /> | ||
201 | <glyph unicode="" d="M597.333 512h-512v-85.333h512v85.333zM597.333 682.667h-512v-85.333h512v85.333zM768 341.334v170.667h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667zM85.333 256h341.333v85.333h-341.333v-85.333z" /> | ||
202 | <glyph unicode="" d="M640 682.667h-512v-85.333h512v85.333zM640 512h-512v-85.333h512v85.333zM128 256h341.333v85.333h-341.333v-85.333zM725.333 682.667v-349.013c-13.227 4.693-27.733 7.68-42.667 7.68-70.827 0-128-57.173-128-128s57.173-128 128-128 128 57.173 128 128v384h128v85.333h-213.333z" /> | ||
203 | <glyph unicode="" d="M170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM810.667 469.334h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333z" /> | ||
204 | <glyph unicode="" d="M138.24 676.267c-31.147-11.947-52.907-43.52-52.907-78.933v-512c0-46.933 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 38.4 85.333 85.333v512c0 47.36-37.973 85.333-85.333 85.333h-499.2l352.427 142.507-29.013 70.827-539.307-219.733zM298.667 85.334c-70.827 0-128 57.173-128 128s57.173 128 128 128 128-57.173 128-128-57.173-128-128-128zM853.333 426.667h-85.333v85.333h-85.333v-85.333h-512v170.667h682.667v-170.667z" /> | ||
205 | <glyph unicode="" d="M896 725.334v-597.333h85.333v597.333h-85.333zM725.333 128h85.333v597.333h-85.333v-597.333zM597.333 725.334h-512c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h512c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667zM341.333 608c52.907 0 96-43.093 96-96s-43.093-96-96-96-96 43.093-96 96 43.093 96 96 96zM533.333 213.334h-384v32c0 64 128 96 192 96s192-32 192-96v-32z" /> | ||
206 | <glyph unicode="" d="M298.667 640h426.667v-128l170.667 170.667-170.667 170.667v-128h-512v-256h85.333v170.667zM725.333 213.334h-426.667v128l-170.667-170.667 170.667-170.667v128h512v256h-85.333v-170.667zM554.667 298.667v256h-42.667l-85.333-42.667v-42.667h64v-170.667h64z" /> | ||
207 | <glyph unicode="" d="M298.667 640h426.667v-128l170.667 170.667-170.667 170.667v-128h-512v-256h85.333v170.667zM725.333 213.334h-426.667v128l-170.667-170.667 170.667-170.667v128h512v256h-85.333v-170.667z" /> | ||
208 | <glyph unicode="" d="M512 725.334v170.667l-213.333-213.333 213.333-213.333v170.667c141.227 0 256-114.773 256-256s-114.773-256-256-256-256 114.773-256 256h-85.333c0-188.587 152.747-341.333 341.333-341.333s341.333 152.747 341.333 341.333-152.747 341.333-341.333 341.333z" /> | ||
209 | <glyph unicode="" d="M451.84 547.414l-221.013 220.587-60.16-60.16 220.587-220.587 60.587 60.16zM618.667 768l87.040-87.040-535.040-535.467 60.16-60.16 535.467 535.040 87.040-87.040v234.667h-234.667zM632.747 366.507l-60.16-60.16 133.547-133.547-87.467-87.467h234.667v234.667l-87.040-87.040-133.547 133.547z" /> | ||
210 | <glyph unicode="" d="M256 170.667l362.667 256-362.667 256v-512zM682.667 682.667v-512h85.333v512h-85.333z" /> | ||
211 | <glyph unicode="" d="M256 682.667h85.333v-512h-85.333zM405.333 426.667l362.667-256v512z" /> | ||
212 | <glyph unicode="" d="M336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667zM384 469.334h154.88l-154.88-179.2v-76.8h256v85.333h-154.88l154.88 179.2v76.8h-256v-85.333z" /> | ||
213 | <glyph unicode="" d="M256 682.667h512v-512h-512z" /> | ||
214 | <glyph unicode="" d="M853.333 768h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM170.667 426.667h170.667v-85.333h-170.667v85.333zM597.333 170.667h-426.667v85.333h426.667v-85.333zM853.333 170.667h-170.667v85.333h170.667v-85.333zM853.333 341.334h-426.667v85.333h426.667v-85.333z" /> | ||
215 | <glyph unicode="" d="M853.333 768h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM331.093 245.76l-60.16-60.16c-66.987 66.133-100.267 153.6-100.267 241.067s33.28 174.933 99.84 241.493l60.16-60.16c-49.493-50.347-74.667-115.627-74.667-181.333s25.173-130.987 75.093-180.907zM512 256c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667 170.667-76.373 170.667-170.667-76.373-170.667-170.667-170.667zM753.493 185.174l-60.16 60.16c49.493 50.347 74.667 115.627 74.667 181.333s-25.173 130.987-75.093 180.907l60.16 60.16c66.987-66.133 100.267-153.6 100.267-241.067s-33.28-174.933-99.84-241.493zM512 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
216 | <glyph unicode="" d="M469.333 213.334c0-23.467 19.2-42.667 42.667-42.667s42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667zM469.333 810.667v-170.667h85.333v81.92c144.64-20.907 256-144.64 256-295.253 0-165.12-133.547-298.667-298.667-298.667s-298.667 133.547-298.667 298.667c0 71.68 25.173 137.387 67.413 188.587l231.253-231.253 60.16 60.16-290.133 290.133v-0.853c-93.44-69.973-154.027-180.907-154.027-306.773 0-212.053 171.52-384 384-384 212.053 0 384 171.947 384 384s-171.947 384-384 384h-42.667zM768 426.667c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667zM256 426.667c0-23.467 19.2-42.667 42.667-42.667s42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667z" /> | ||
217 | <glyph unicode="" d="M170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM512 320v384l256-192-256-192z" /> | ||
218 | <glyph unicode="" d="M896 661.334l-170.667-170.667v149.333c0 23.467-19.2 42.667-42.667 42.667h-263.68l477.013-477.013v455.68zM139.52 853.334l-54.187-54.187 116.48-116.48h-31.147c-23.467 0-42.667-19.2-42.667-42.667v-426.667c0-23.467 19.2-42.667 42.667-42.667h512c8.96 0 16.64 3.413 23.040 7.68l136.107-135.68 54.187 54.187-756.48 756.48z" /> | ||
219 | <glyph unicode="" d="M725.333 490.667v149.333c0 23.467-19.2 42.667-42.667 42.667h-512c-23.467 0-42.667-19.2-42.667-42.667v-426.667c0-23.467 19.2-42.667 42.667-42.667h512c23.467 0 42.667 19.2 42.667 42.667v149.333l170.667-170.667v469.333l-170.667-170.667z" /> | ||
220 | <glyph unicode="" d="M789.333 426.667c0 75.52-43.52 140.373-106.667 171.947v-343.467c63.147 31.147 106.667 96 106.667 171.52zM213.333 554.667v-256h170.667l213.333-213.333v682.667l-213.333-213.333h-170.667z" /> | ||
221 | <glyph unicode="" d="M298.667 554.667v-256h170.667l213.333-213.333v682.667l-213.333-213.333h-170.667z" /> | ||
222 | <glyph unicode="" d="M704 426.667c0 75.52-43.52 140.373-106.667 171.947v-94.293l104.533-104.533c1.28 8.533 2.133 17.493 2.133 26.88zM810.667 426.667c0-40.107-8.533-77.653-23.040-112.64l64.427-64.427c28.16 52.907 43.947 113.067 43.947 177.067 0 182.613-127.573 335.36-298.667 374.187v-87.893c123.307-36.693 213.333-151.040 213.333-286.293zM182.187 810.667l-54.187-54.187 201.813-201.813h-201.813v-256h170.667l213.333-213.333v287.147l181.333-181.333c-28.587-22.187-60.587-39.68-96-50.347v-87.893c58.88 13.227 112.213 40.533 157.44 77.227l87.040-87.467 54.187 54.187-713.813 713.813zM512 768l-89.173-89.173 89.173-89.173v178.347z" /> | ||
223 | <glyph unicode="" d="M128 554.667v-256h170.667l213.333-213.333v682.667l-213.333-213.333h-170.667zM704 426.667c0 75.52-43.52 140.373-106.667 171.947v-343.467c63.147 31.147 106.667 96 106.667 171.52zM597.333 800.854v-87.893c123.307-36.693 213.333-151.040 213.333-286.293s-90.027-249.6-213.333-286.293v-87.893c171.093 38.827 298.667 191.573 298.667 374.187s-127.573 335.36-298.667 374.187z" /> | ||
224 | <glyph unicode="" d="M853.333 768h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM640 170.667h-469.333v170.667h469.333v-170.667zM640 384h-469.333v170.667h469.333v-170.667zM853.333 170.667h-170.667v384h170.667v-384z" /> | ||
225 | <glyph unicode="" d="M512 640v170.667h-426.667v-768h853.333v597.333h-426.667zM256 128h-85.333v85.333h85.333v-85.333zM256 298.667h-85.333v85.333h85.333v-85.333zM256 469.334h-85.333v85.333h85.333v-85.333zM256 640h-85.333v85.333h85.333v-85.333zM426.667 128h-85.333v85.333h85.333v-85.333zM426.667 298.667h-85.333v85.333h85.333v-85.333zM426.667 469.334h-85.333v85.333h85.333v-85.333zM426.667 640h-85.333v85.333h85.333v-85.333zM853.333 128h-341.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h341.333v-426.667zM768 469.334h-85.333v-85.333h85.333v85.333zM768 298.667h-85.333v-85.333h85.333v85.333z" /> | ||
226 | <glyph unicode="" d="M512 554.667c-68.267 0-134.4-10.667-196.267-30.72v-132.267c0-16.64-9.813-31.573-23.893-38.4-41.813-20.907-79.787-47.787-113.493-78.933-7.68-7.68-18.347-11.947-29.867-11.947-11.947 0-22.613 4.693-30.293 12.373l-105.813 105.813c-7.68 7.253-12.373 17.92-12.373 29.867s4.693 22.613 12.373 30.293c130.133 123.307 305.92 199.253 499.627 199.253s369.493-75.947 499.627-199.253c7.68-7.68 12.373-18.347 12.373-30.293s-4.693-22.613-12.373-30.293l-105.813-105.813c-7.68-7.68-18.347-12.373-30.293-12.373-11.52 0-22.187 4.693-29.867 11.947-33.707 31.573-72.107 58.027-113.92 78.933-14.080 6.827-23.893 21.333-23.893 38.4v132.267c-61.44 20.48-127.573 31.147-195.84 31.147z" /> | ||
227 | <glyph unicode="" d="M384 725.334v-85.333h281.173l-494.507-494.507 60.16-60.16 494.507 494.507v-281.173h85.333v426.667z" /> | ||
228 | <glyph unicode="" d="M725.333 67.84l60.16 60.16-145.493 145.493-60.16-60.16 145.493-145.493zM320 597.334h149.333v-238.507l-230.827-230.827 60.16-60.16 256 256v273.493h149.333l-192 192-192-192z" /> | ||
229 | <glyph unicode="" d="M835.84 640l-323.84-323.84-238.507 238.507h195.84v85.333h-341.333v-341.333h85.333v195.84l298.667-298.667 384 384z" /> | ||
230 | <glyph unicode="" d="M853.333 707.84l-60.16 60.16-494.507-494.507v281.173h-85.333v-426.667h426.667v85.333h-281.173z" /> | ||
231 | <glyph unicode="" d="M597.333 768l97.707-97.707-122.88-122.88 60.587-60.587 122.88 122.88 97.707-97.707v256zM426.667 768h-256v-256l97.707 97.707 200.96-200.533v-323.84h85.333v358.827l-225.707 226.133z" /> | ||
232 | <glyph unicode="" d="M282.453 478.294c61.44-120.747 160.427-219.307 281.173-281.173l93.867 93.867c11.52 11.52 28.587 15.36 43.52 10.24 47.787-15.787 99.413-24.32 152.32-24.32 23.467 0 42.667-19.2 42.667-42.667v-148.907c0-23.467-19.2-42.667-42.667-42.667-400.64 0-725.333 324.693-725.333 725.333 0 23.467 19.2 42.667 42.667 42.667h149.333c23.467 0 42.667-19.2 42.667-42.667 0-53.333 8.533-104.533 24.32-152.32 4.693-14.933 1.28-31.573-10.667-43.52l-93.867-93.867z" /> | ||
233 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM256 554.667h512v-85.333h-512v85.333zM597.333 341.334h-341.333v85.333h341.333v-85.333zM768 597.334h-512v85.333h512v-85.333z" /> | ||
234 | <glyph unicode="" d="M213.333 384h597.333v85.333h-597.333v-85.333zM128 213.334h597.333v85.333h-597.333v-85.333zM298.667 640v-85.333h597.333v85.333h-597.333z" /> | ||
235 | <glyph unicode="" d="M938.24 768c0 46.933-37.973 85.333-84.907 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h597.333l170.667-170.667-0.427 768zM768 341.334h-512v85.333h512v-85.333zM768 469.334h-512v85.333h512v-85.333zM768 597.334h-512v85.333h512v-85.333z" /> | ||
236 | <glyph unicode="" d="M853.333 938.667h-682.667v-85.333h682.667v85.333zM170.667-85.333h682.667v85.333h-682.667v-85.333zM853.333 768h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM512 650.667c52.907 0 96-43.093 96-96s-43.093-96-96-96-96 43.093-96 96 43.093 96 96 96zM725.333 213.334h-426.667v64c0 71.253 142.080 106.667 213.333 106.667s213.333-35.413 213.333-106.667v-64z" /> | ||
237 | <glyph unicode="" d="M725.333 810.667h-42.667v-213.333h42.667v213.333zM640 725.334h-85.333v42.667h85.333v42.667h-128v-128h85.333v-42.667h-85.333v-42.667h128v128zM768 810.667v-213.333h42.667v85.333h85.333v128h-128zM853.333 725.334h-42.667v42.667h42.667v-42.667zM853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.093-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 281.173l93.867 94.293c11.52 11.093 14.933 27.733 10.24 42.667-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667z" /> | ||
238 | <glyph unicode="" d="M512 128c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM256 896c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM256 640c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM256 384c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 725.334c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333-85.333-38.4-85.333-85.333 38.4-85.333 85.333-85.333zM512 384c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 384c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 640c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM512 640c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM512 896c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
239 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333 0 78.933 26.88 151.467 72.107 209.067l478.293-478.293c-57.6-45.227-130.133-72.107-209.067-72.107zM781.227 217.6l-478.293 478.293c57.6 45.227 130.133 72.107 209.067 72.107 188.587 0 341.333-152.747 341.333-341.333 0-78.933-26.88-151.467-72.107-209.067z" /> | ||
240 | <glyph unicode="" d="M853.333 768h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM853.333 597.334l-341.333-213.333-341.333 213.333v85.333l341.333-213.333 341.333 213.333v-85.333z" /> | ||
241 | <glyph unicode="" d="M896 682.667h-85.333v-384h-554.667v-85.333c0-23.467 19.2-42.667 42.667-42.667h469.333l170.667-170.667v640c0 23.467-19.2 42.667-42.667 42.667zM725.333 426.667v384c0 23.467-19.2 42.667-42.667 42.667h-554.667c-23.467 0-42.667-19.2-42.667-42.667v-597.333l170.667 170.667h426.667c23.467 0 42.667 19.2 42.667 42.667z" /> | ||
242 | <glyph unicode="" d="M384 810.667l-170.667-170.24h128v-299.093h85.333v299.093h128l-170.667 170.24zM682.667 212.907v299.093h-85.333v-299.093h-128l170.667-170.24 170.667 170.24h-128z" /> | ||
243 | <glyph unicode="" d="M881.067 48.214l-100.267 100.267-268.8 268.373-151.893 152.32-60.587 60.16-117.333 117.333-54.187-54.187 118.613-118.613c-108.8-133.973-100.693-331.093 23.893-456.107 66.56-66.56 154.027-99.84 241.493-99.84 76.373 0 152.32 25.173 214.613 75.947l115.2-115.2 54.187 54.187-14.933 15.36zM512 102.827c-68.267 0-132.693 26.453-180.907 75.093-48.64 48.64-75.093 112.64-75.093 180.907 0 56.32 18.347 109.653 51.627 153.6l204.373-203.947v-205.653zM512 721.067v-195.413l309.333-309.76c58.453 126.293 35.84 280.32-68.267 384.427l-241.067 241.493-157.867-157.867 60.16-60.16 97.707 97.28z" /> | ||
244 | <glyph unicode="" d="M753.493 600.32l-241.493 241.493-241.493-241.493c-133.12-133.12-133.12-349.44 0-482.56 66.56-66.56 154.027-99.84 241.493-99.84s174.933 33.28 241.493 99.84c133.12 133.12 133.12 349.44 0 482.56zM512 102.827c-68.267 0-132.693 26.453-180.907 75.093-48.64 48.64-75.093 112.64-75.093 180.907s26.453 132.693 75.093 180.907l180.907 181.333v-618.24z" /> | ||
245 | <glyph unicode="" d="M810.667 853.334h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h170.667l128-128 128 128h170.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM554.667 170.667h-85.333v85.333h85.333v-85.333zM642.987 501.334l-38.4-39.253c-30.72-31.147-49.92-56.747-49.92-120.747h-85.333v21.333c0 46.933 19.2 89.6 49.92 120.747l52.907 53.76c15.787 15.36 25.173 36.693 25.173 60.16 0 46.933-38.4 85.333-85.333 85.333s-85.333-38.4-85.333-85.333h-85.333c0 94.293 76.373 170.667 170.667 170.667s170.667-76.373 170.667-170.667c0-37.547-15.36-71.68-39.68-96z" /> | ||
246 | <glyph unicode="" d="M512 661.334c58.88 0 106.667-47.787 106.667-106.667 0-31.573-14.080-59.307-35.413-78.933l154.88-154.88c41.813 79.36 72.533 162.133 72.533 233.813 0 165.12-133.547 298.667-298.667 298.667-84.48 0-160.427-35.413-215.040-91.733l136.107-136.107c19.627 22.187 47.36 35.84 78.933 35.84zM698.453 251.734l-558.933 558.933-54.187-54.187 135.68-135.68c-4.693-21.333-7.68-43.52-7.68-66.133 0-224 298.667-554.667 298.667-554.667s71.253 78.933 144.213 185.6l142.933-142.933 54.187 54.187-154.88 154.88z" /> | ||
247 | <glyph unicode="" d="M512 853.334c-165.12 0-298.667-133.547-298.667-298.667 0-224 298.667-554.667 298.667-554.667s298.667 330.667 298.667 554.667c0 165.12-133.547 298.667-298.667 298.667zM512 448c-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667 106.667-47.787 106.667-106.667-47.787-106.667-106.667-106.667z" /> | ||
248 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM768 341.334h-512v85.333h512v-85.333zM768 469.334h-512v85.333h512v-85.333zM768 597.334h-512v85.333h512v-85.333z" /> | ||
249 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-768l170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
250 | <glyph unicode="" d="M810.24 725.334c0 46.933-37.973 85.333-84.907 85.333h-298.667l-99.84-99.84 483.84-483.84-0.427 498.347zM155.733 773.12l-54.187-54.187 111.787-111.787v-479.147c0-46.933 38.4-85.333 85.333-85.333h427.093c14.933 0 28.587 4.267 40.96 11.093l80.213-80.213 54.187 54.187-745.387 745.387z" /> | ||
251 | <glyph unicode="" d="M282.453 478.294c61.44-120.747 160.427-219.307 281.173-281.173l93.867 93.867c11.52 11.52 28.587 15.36 43.52 10.24 47.787-15.787 99.413-24.32 152.32-24.32 23.467 0 42.667-19.2 42.667-42.667v-148.907c0-23.467-19.2-42.667-42.667-42.667-400.64 0-725.333 324.693-725.333 725.333 0 23.467 19.2 42.667 42.667 42.667h149.333c23.467 0 42.667-19.2 42.667-42.667 0-53.333 8.533-104.533 24.32-152.32 4.693-14.933 1.28-31.573-10.667-43.52l-93.867-93.867z" /> | ||
252 | <glyph unicode="" d="M749.227 331.094c11.947 29.44 18.773 61.867 18.773 95.573 0 141.227-114.773 256-256 256-33.707 0-66.133-6.827-95.573-18.773l69.12-69.12c8.533 1.28 17.493 2.56 26.453 2.56 94.293 0 170.667-76.373 170.667-170.667 0-8.96-0.853-17.92-2.133-26.88l68.693-68.693zM512 768c188.587 0 341.333-152.747 341.333-341.333 0-57.6-14.933-111.787-40.533-159.573l62.72-62.72c40.107 64.853 63.147 140.8 63.147 222.293 0 235.52-191.147 426.667-426.667 426.667-81.493 0-157.44-23.467-222.293-62.72l62.293-62.293c47.787 25.173 102.4 39.68 160 39.68zM139.52 832l-54.187-54.187 89.6-89.6c-55.893-72.533-89.6-162.987-89.6-261.547 0-157.867 85.76-295.253 212.907-369.067l42.667 73.813c-101.547 59.307-170.24 168.96-170.24 295.253 0 75.093 24.32 144.213 65.28 200.107l61.013-61.44c-25.6-39.68-40.96-87.467-40.96-138.667 0-94.72 51.627-177.067 128-221.44l42.667 74.24c-50.773 29.867-85.333 84.053-85.333 147.2 0 27.733 7.253 53.333 18.773 76.373l67.413-67.413-0.853-8.96c0-46.933 38.4-85.333 85.333-85.333l8.96 0.853 320.853-320.853 54.187 54.187-756.48 756.48z" /> | ||
253 | <glyph unicode="" d="M938.667 810.667h-853.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h853.333c46.933 0 84.907 38.4 84.907 85.333l0.427 597.333c0 46.933-38.4 85.333-85.333 85.333zM341.333 682.667c70.827 0 128-57.173 128-128s-57.173-128-128-128-128 57.173-128 128 57.173 128 128 128zM597.333 170.667h-512v42.667c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267v-42.667zM761.6 341.334h69.973l64.427-85.333-84.907-84.907c-55.893 41.813-97.28 101.547-116.48 170.24-7.68 27.307-11.947 55.893-11.947 85.333s4.267 58.027 11.947 85.333c19.2 69.12 60.587 128.427 116.48 170.24l84.907-84.907-64.427-85.333h-69.973c-9.387-26.88-14.933-55.467-14.933-85.333s5.547-58.453 14.933-85.333z" /> | ||
254 | <glyph unicode="" d="M896 597.334v42.667l-128-85.333-128 85.333v-42.667l128-85.333 128 85.333zM938.667 810.667h-853.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h853.333c46.933 0 84.907 38.4 84.907 85.333l0.427 597.333c0 46.933-38.4 85.333-85.333 85.333zM341.333 682.667c70.827 0 128-57.173 128-128s-57.173-128-128-128-128 57.173-128 128 57.173 128 128 128zM597.333 170.667h-512v42.667c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267v-42.667zM938.667 426.667h-341.333v256h341.333v-256z" /> | ||
255 | <glyph unicode="" d="M1011.627 227.414c-130.133 123.307-305.92 199.253-499.627 199.253s-369.493-75.947-499.627-199.253c-7.68-7.68-12.373-18.347-12.373-30.293s4.693-22.613 12.373-30.293l105.813-105.813c7.68-7.68 18.347-12.373 30.293-12.373 11.52 0 22.187 4.693 29.867 11.947 33.707 31.573 72.107 58.027 113.493 78.933 14.080 6.827 23.893 21.333 23.893 38.4v132.267c61.867 20.48 128 31.147 196.267 31.147s134.4-10.667 196.267-30.72v-132.267c0-16.64 9.813-31.573 23.893-38.4 41.813-20.907 79.787-47.787 113.493-78.933 7.68-7.68 18.347-11.947 29.867-11.947 11.947 0 22.613 4.693 30.293 12.373l105.813 105.813c7.68 7.68 12.373 18.347 12.373 30.293 0 11.52-4.693 22.187-12.373 29.867zM902.827 671.574l-60.16 60.16-151.893-151.467 60.16-60.16s147.2 150.187 151.893 151.467zM554.667 853.334h-85.333v-213.333h85.333v213.333zM273.067 520.107l60.16 60.16-151.467 151.893-60.587-60.587c4.693-1.28 151.893-151.467 151.893-151.467z" /> | ||
256 | <glyph unicode="" d="M43.093 640l-0.427-426.667c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333h-768c-46.933 0-84.907-38.4-84.907-85.333zM810.667 640v-426.667h-597.333v426.667h597.333z" /> | ||
257 | <glyph unicode="" d="M725.333 895.574l-426.667 0.427c-46.933 0-84.907-38.4-84.907-85.333v-768c0-46.933 37.973-85.333 84.907-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v768c0 46.933-38.4 84.907-85.333 84.907zM725.333 128h-426.667v597.333h426.667v-597.333z" /> | ||
258 | <glyph unicode="" d="M43.093 640l-0.427-426.667c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333h-768c-46.933 0-84.907-38.4-84.907-85.333zM810.667 640v-426.667h-597.333v426.667h597.333z" /> | ||
259 | <glyph unicode="" d="M725.333 895.574l-426.667 0.427c-46.933 0-84.907-38.4-84.907-85.333v-768c0-46.933 37.973-85.333 84.907-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v768c0 46.933-38.4 84.907-85.333 84.907zM725.333 128h-426.667v597.333h426.667v-597.333z" /> | ||
260 | <glyph unicode="" d="M768 768l-170.667-170.667h128v-298.667c0-46.933-38.4-85.333-85.333-85.333s-85.333 38.4-85.333 85.333v298.667c0 94.293-76.373 170.667-170.667 170.667s-170.667-76.373-170.667-170.667v-298.667h-128l170.667-170.667 170.667 170.667h-128v298.667c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333v-298.667c0-94.293 76.373-170.667 170.667-170.667s170.667 76.373 170.667 170.667v298.667h128l-170.667 170.667z" /> | ||
261 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM384 469.334h-85.333v85.333h85.333v-85.333zM554.667 469.334h-85.333v85.333h85.333v-85.333zM725.333 469.334h-85.333v85.333h85.333v-85.333z" /> | ||
262 | <glyph unicode="" d="M789.333 682.667c-129.707 0-234.667-104.96-234.667-234.667 0-56.747 20.053-108.8 53.76-149.333h-192.853c33.707 40.533 53.76 92.587 53.76 149.333 0 129.707-104.96 234.667-234.667 234.667s-234.667-104.96-234.667-234.667 104.96-234.667 234.667-234.667h554.667c129.707 0 234.667 104.96 234.667 234.667s-104.96 234.667-234.667 234.667zM234.667 298.667c-82.347 0-149.333 66.987-149.333 149.333s66.987 149.333 149.333 149.333 149.333-66.987 149.333-149.333-66.987-149.333-149.333-149.333zM789.333 298.667c-82.347 0-149.333 66.987-149.333 149.333s66.987 149.333 149.333 149.333 149.333-66.987 149.333-149.333-66.987-149.333-149.333-149.333z" /> | ||
263 | <glyph unicode="" d="M539.733 512c-34.987 99.413-129.707 170.667-241.067 170.667-141.227 0-256-114.773-256-256s114.773-256 256-256c111.36 0 206.080 71.253 241.067 170.667h185.6v-170.667h170.667v170.667h85.333v170.667h-441.6zM298.667 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333z" /> | ||
264 | <glyph unicode="" d="M810.667 810.667h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM725.333 384h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333z" /> | ||
265 | <glyph unicode="" d="M554.667 640h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667v170.667zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333z" /> | ||
266 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM725.333 384h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333z" /> | ||
267 | <glyph unicode="" d="M810.667 384h-256v-256h-85.333v256h-256v85.333h256v256h85.333v-256h256v-85.333z" /> | ||
268 | <glyph unicode="" d="M876.373 715.52l-59.307 71.68c-11.52 14.507-29.013 23.467-49.067 23.467h-512c-20.053 0-37.547-8.96-49.493-23.467l-58.88-71.68c-12.373-14.507-19.627-33.707-19.627-54.187v-533.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v533.333c0 20.48-7.253 39.68-19.627 54.187zM512 192l-234.667 234.667h149.333v85.333h170.667v-85.333h149.333l-234.667-234.667zM218.453 725.334l34.56 42.667h512l40.107-42.667h-586.667z" /> | ||
269 | <glyph unicode="" d="M938.667 810.667h-640c-29.44 0-52.48-14.933-67.84-37.547l-230.827-346.453 230.827-346.027c15.36-22.613 38.4-37.973 67.84-37.973h640c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 273.494l-60.16-60.16-153.173 153.173-153.173-153.173-60.16 60.16 153.173 153.173-153.173 153.173 60.16 60.16 153.173-153.173 153.173 153.173 60.16-60.16-153.173-153.173 153.173-153.173z" /> | ||
270 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM170.667 426.667c0 188.587 152.747 341.333 341.333 341.333 78.933 0 151.467-26.88 209.067-72.107l-478.293-478.293c-45.227 57.6-72.107 130.133-72.107 209.067zM512 85.334c-78.933 0-151.467 26.88-209.067 72.107l478.293 478.293c45.227-57.6 72.107-130.133 72.107-209.067 0-188.587-152.747-341.333-341.333-341.333z" /> | ||
271 | <glyph unicode="" d="M810.667 665.174l-60.16 60.16-238.507-238.507-238.507 238.507-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 238.507 238.507 238.507-238.507 60.16 60.16-238.507 238.507z" /> | ||
272 | <glyph unicode="" d="M682.667 896h-512c-46.933 0-85.333-38.4-85.333-85.333v-597.333h85.333v597.333h512v85.333zM810.667 725.334h-469.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h469.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 42.667h-469.333v597.333h469.333v-597.333z" /> | ||
273 | <glyph unicode="" d="M411.307 612.694c9.813 21.333 15.36 44.8 15.36 69.973 0 94.293-76.373 170.667-170.667 170.667s-170.667-76.373-170.667-170.667 76.373-170.667 170.667-170.667c25.173 0 48.64 5.547 69.973 15.36l100.693-100.693-100.693-100.693c-21.333 9.813-44.8 15.36-69.973 15.36-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667c0 25.173-5.547 48.64-15.36 69.973l100.693 100.693 298.667-298.667h128v42.667l-527.36 527.36zM256 597.334c-46.933 0-85.333 37.973-85.333 85.333s38.4 85.333 85.333 85.333 85.333-37.973 85.333-85.333-38.4-85.333-85.333-85.333zM256 85.334c-46.933 0-85.333 37.973-85.333 85.333s38.4 85.333 85.333 85.333 85.333-37.973 85.333-85.333-38.4-85.333-85.333-85.333zM512 405.334c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333 21.333-9.387 21.333-21.333-9.387-21.333-21.333-21.333zM810.667 810.667l-256-256 85.333-85.333 298.667 298.667v42.667z" /> | ||
274 | <glyph unicode="" d="M810.667 853.334h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM512 853.334c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM810.667 85.334h-597.333v682.667h85.333v-128h426.667v128h85.333v-682.667z" /> | ||
275 | <glyph unicode="" d="M128 202.667v-160h160l471.893 471.893-160 160-471.893-471.893zM883.627 638.294c16.64 16.64 16.64 43.52 0 60.16l-99.84 99.84c-16.64 16.64-43.52 16.64-60.16 0l-78.080-78.080 160-160 78.080 78.080z" /> | ||
276 | <glyph unicode="" d="M938.24 597.334c0 30.72-15.787 57.6-40.107 72.533l-386.133 226.133-386.133-226.133c-24.32-14.933-40.533-41.813-40.533-72.533v-426.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333l-0.427 426.667zM512 384l-352.427 220.16 352.427 206.507 352.427-206.507-352.427-220.16z" /> | ||
277 | <glyph unicode="" d="M426.667 170.667h170.667v85.333h-170.667v-85.333zM128 682.667v-85.333h768v85.333h-768zM256 384h512v85.333h-512v-85.333z" /> | ||
278 | <glyph unicode="" d="M614.4 682.667l-17.067 85.333h-384v-725.333h85.333v298.667h238.933l17.067-85.333h298.667v426.667z" /> | ||
279 | <glyph unicode="" d="M512 597.334v170.667l341.333-341.333-341.333-341.333v170.667h-341.333v341.333z" /> | ||
280 | <glyph unicode="" d="M195.84 644.694c29.867 30.293 59.733 57.6 72.96 52.053 21.333-8.533 0-43.947-12.8-64.853-10.667-17.92-122.027-165.973-122.027-269.227 0-54.613 20.48-99.84 57.173-127.147 32-23.893 74.24-31.147 112.64-19.627 45.653 13.227 83.2 59.733 130.56 118.187 51.627 63.573 120.747 146.773 174.080 146.773 69.547 0 70.4-43.093 75.093-76.373-161.28-27.307-229.547-156.587-229.547-229.12s61.44-131.84 136.96-131.84c69.547 0 183.040 56.747 200.107 260.267h104.96v106.667h-105.387c-6.4 70.4-46.507 179.2-171.947 179.2-96 0-178.347-81.493-210.773-121.173-24.747-31.147-87.893-105.813-97.707-116.053-10.667-12.8-29.013-35.84-47.36-35.84-19.2 0-30.72 35.413-15.36 81.92 14.933 46.507 59.733 122.027 78.933 150.187 33.28 48.64 55.467 81.92 55.467 139.947 0 92.587-69.973 122.027-107.093 122.027-56.32 0-105.387-42.667-116.053-53.333-15.36-15.36-28.16-28.16-37.547-39.68l74.667-72.96zM592.213 147.2c-13.227 0-31.573 11.093-31.573 30.72 0 25.6 31.147 93.867 122.453 117.76-12.8-114.773-61.013-148.48-90.88-148.48z" /> | ||
281 | <glyph unicode="" d="M810.667 810.667h-597.76c-46.933 0-84.48-38.4-84.48-85.333l-0.427-597.333c0-46.933 37.973-85.333 84.907-85.333h597.76c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 298.667h-170.667c0-70.827-57.173-128-128-128s-128 57.173-128 128h-171.093v426.667h597.76v-426.667zM682.667 512h-85.333v128h-170.667v-128h-85.333l170.667-170.667 170.667 170.667z" /> | ||
282 | <glyph unicode="" d="M166.4 426.667c0 72.96 59.307 132.267 132.267 132.267h170.667v81.067h-170.667c-117.76 0-213.333-95.573-213.333-213.333s95.573-213.333 213.333-213.333h170.667v81.067h-170.667c-72.96 0-132.267 59.307-132.267 132.267zM341.333 384h341.333v85.333h-341.333v-85.333zM725.333 640h-170.667v-81.067h170.667c72.96 0 132.267-59.307 132.267-132.267s-59.307-132.267-132.267-132.267h-170.667v-81.067h170.667c117.76 0 213.333 95.573 213.333 213.333s-95.573 213.333-213.333 213.333z" /> | ||
283 | <glyph unicode="" d="M853.333 768h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM853.333 597.334l-341.333-213.333-341.333 213.333v85.333l341.333-213.333 341.333 213.333v-85.333z" /> | ||
284 | <glyph unicode="" d="M853.333 768h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM853.333 597.334l-341.333-213.333-341.333 213.333v85.333l341.333-213.333 341.333 213.333v-85.333z" /> | ||
285 | <glyph unicode="" d="M785.067 486.4c-78.933 68.693-181.333 110.933-294.4 110.933-198.4 0-366.080-129.28-424.96-308.053l100.693-33.28c44.8 136.107 172.8 234.667 324.267 234.667 83.2 0 159.147-30.72 218.453-80.213l-154.453-154.453h384v384l-153.6-153.6z" /> | ||
286 | <glyph unicode="" d="M298.667 469.334v-85.333h426.667v85.333h-426.667zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333z" /> | ||
287 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM725.333 384h-426.667v85.333h426.667v-85.333z" /> | ||
288 | <glyph unicode="" d="M810.667 384h-597.333v85.333h597.333v-85.333z" /> | ||
289 | <glyph unicode="" d="M298.667 597.334v128l-298.667-298.667 298.667-298.667v128l-170.667 170.667 170.667 170.667zM554.667 554.667v170.667l-298.667-298.667 298.667-298.667v174.933c213.333 0 362.667-68.267 469.333-217.6-42.667 213.333-170.667 426.667-469.333 469.333z" /> | ||
290 | <glyph unicode="" d="M426.667 554.667v170.667l-298.667-298.667 298.667-298.667v174.933c213.333 0 362.667-68.267 469.333-217.6-42.667 213.333-170.667 426.667-469.333 469.333z" /> | ||
291 | <glyph unicode="" d="M671.147 810.667h-318.293l-224.853-224.853v-318.293l224.853-224.853h318.293l224.853 224.853v318.293l-224.853 224.853zM512 200.534c-30.72 0-55.467 24.747-55.467 55.467s24.747 55.467 55.467 55.467c30.72 0 55.467-24.747 55.467-55.467s-24.747-55.467-55.467-55.467zM554.667 384h-85.333v256h85.333v-256z" /> | ||
292 | <glyph unicode="" d="M725.333 810.667h-512c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v512l-170.667 170.667zM512 128c-70.827 0-128 57.173-128 128s57.173 128 128 128 128-57.173 128-128-57.173-128-128-128zM640 554.667h-426.667v170.667h426.667v-170.667z" /> | ||
293 | <glyph unicode="" d="M128 725.334h85.333v85.333c-46.933 0-85.333-38.4-85.333-85.333zM128 384h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333zM128 554.667h85.333v85.333h-85.333v-85.333zM554.667 810.667h-85.333v-85.333h85.333v85.333zM810.667 810.667v-85.333h85.333c0 46.933-38.4 85.333-85.333 85.333zM213.333 42.667v85.333h-85.333c0-46.933 38.4-85.333 85.333-85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM384 810.667h-85.333v-85.333h85.333v85.333zM469.333 42.667h85.333v85.333h-85.333v-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM810.667 42.667c46.933 0 85.333 38.4 85.333 85.333h-85.333v-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM640 725.334h85.333v85.333h-85.333v-85.333zM298.667 213.334h426.667v426.667h-426.667v-426.667zM384 554.667h256v-256h-256v256z" /> | ||
294 | <glyph unicode="" d="M85.76 42.667l895.573 384-895.573 384-0.427-298.667 640-85.333-640-85.333z" /> | ||
295 | <glyph unicode="" d="M128 170.667h256v85.333h-256v-85.333zM128 682.667v-85.333h768v85.333h-768zM128 384h512v85.333h-512v-85.333z" /> | ||
296 | <glyph unicode="" d="M213.333 213.334v-85.333h597.333v85.333h-597.333zM405.333 392.534h213.333l38.4-93.867h89.6l-202.667 469.333h-64l-202.667-469.333h89.6l38.4 93.867zM512 683.52l79.787-214.187h-159.573l79.787 214.187z" /> | ||
297 | <glyph unicode="" d="M533.333 597.334c-113.067 0-215.467-42.24-294.4-110.933l-153.6 153.6v-384h384l-154.453 154.453c59.307 49.493 134.827 80.213 218.453 80.213 151.040 0 279.467-98.56 324.267-234.667l101.12 33.28c-59.307 178.773-226.987 308.053-425.387 308.053z" /> | ||
298 | <glyph unicode="" d="M938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM533.333 597.334h-64v-256l202.667-121.6 32 52.48-170.667 101.12v224zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667z" /> | ||
299 | <glyph unicode="" d="M938.667 695.467l-196.267 166.4-55.467-64 196.267-166.4 55.467 64zM337.067 793.6l-55.467 64-196.267-162.133 55.467-64 196.267 162.133zM533.333 597.334h-64v-256l200.533-123.733 34.133 51.2-170.667 102.4v226.133zM512 768c-213.333 0-384-170.667-384-384s170.667-384 384-384 384 170.667 384 384-170.667 384-384 384zM512 85.334c-166.4 0-298.667 132.267-298.667 298.667s132.267 298.667 298.667 298.667 298.667-132.267 298.667-298.667-132.267-298.667-298.667-298.667z" /> | ||
300 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333zM533.333 640h-64v-256l224-134.4 32 52.48-192 113.92z" /> | ||
301 | <glyph unicode="" d="M336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667zM554.667 554.667h-85.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128v128z" /> | ||
302 | <glyph unicode="" d="M554.667 554.667v234.667c0 35.413-28.587 64-64 64s-64-28.587-64-64v-157.013l334.080-334.080 135.253-42.24v85.333l-341.333 213.333zM128 713.814l212.907-212.907-255.573-159.573v-85.333l341.333 106.667v-234.667l-85.333-64v-64l149.333 42.667 149.333-42.667v64l-85.333 64v159.147l244.48-244.48 54.187 54.187-671.147 671.147-54.187-54.187z" /> | ||
303 | <glyph unicode="" d="M896 256v85.333l-341.333 213.333v234.667c0 35.413-28.587 64-64 64s-64-28.587-64-64v-234.667l-341.333-213.333v-85.333l341.333 106.667v-234.667l-85.333-64v-64l149.333 42.667 149.333-42.667v64l-85.333 64v234.667l341.333-106.667z" /> | ||
304 | <glyph unicode="" d="M298.667 213.334v-157.867c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v157.867h-426.667z" /> | ||
305 | <glyph unicode="" d="M298.667 298.667v-243.2c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v243.2h-426.667z" /> | ||
306 | <glyph unicode="" d="M298.667 384v-328.533c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v328.533h-426.667z" /> | ||
307 | <glyph unicode="" d="M298.667 469.334v-413.867c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v413.867h-426.667z" /> | ||
308 | <glyph unicode="" d="M298.667 554.667v-499.2c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v499.2h-426.667z" /> | ||
309 | <glyph unicode="" d="M298.667 597.334v-541.867c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v541.867h-426.667z" /> | ||
310 | <glyph unicode="" d="M668.587 768h-71.253v85.333h-170.667v-85.333h-71.253c-31.147 0-56.747-25.6-56.747-56.747v-654.080c0-31.573 25.6-57.173 56.747-57.173h312.747c31.573 0 57.173 25.6 57.173 56.747v654.507c0 31.147-25.6 56.747-56.747 56.747zM554.667 170.667h-85.333v85.333h85.333v-85.333zM554.667 341.334h-85.333v213.333h85.333v-213.333z" /> | ||
311 | <glyph unicode="" d="M469.333 85.334v128h-170.667v-157.867c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v157.867h-192l-64-128z" /> | ||
312 | <glyph unicode="" d="M469.333 85.334v234.667h-170.667v-264.533c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v264.533h-136.533l-119.467-234.667z" /> | ||
313 | <glyph unicode="" d="M618.667 362.667l-149.333-277.333v234.667h-85.333l21.333 42.667h-106.667v-307.2c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v307.2h-106.667z" /> | ||
314 | <glyph unicode="" d="M554.667 405.334h85.333l-170.667-320v234.667h-85.333l81.067 149.333h-166.4v-413.867c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v413.867h-170.667v-64z" /> | ||
315 | <glyph unicode="" d="M558.933 405.334h81.067l-170.667-320v234.667h-85.333l123.733 234.667h-209.067v-499.2c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v499.2h-170.667v-149.333h4.267z" /> | ||
316 | <glyph unicode="" d="M640 405.334l-170.667-320v234.667h-85.333l149.333 277.333h-234.667v-541.867c0-29.867 25.6-55.467 55.467-55.467h315.733c29.867 0 55.467 25.6 55.467 55.467v541.867h-170.667v-192h85.333z" /> | ||
317 | <glyph unicode="" d="M668.587 768h-71.253v85.333h-170.667v-85.333h-71.253c-31.147 0-56.747-25.6-56.747-56.747v-654.080c0-31.573 25.6-57.173 56.747-57.173h312.747c31.573 0 57.173 25.6 57.173 56.747v654.507c0 31.147-25.6 56.747-56.747 56.747zM469.333 85.334v234.667h-85.333l170.667 320v-234.667h85.333l-170.667-320z" /> | ||
318 | <glyph unicode="" d="M668.587 768h-71.253v85.333h-170.667v-85.333h-71.253c-31.147 0-56.747-25.6-56.747-56.747v-654.080c0-31.573 25.6-57.173 56.747-57.173h312.747c31.573 0 57.173 25.6 57.173 56.747v654.507c0 31.147-25.6 56.747-56.747 56.747z" /> | ||
319 | <glyph unicode="" d="M668.587 768h-71.253v85.333h-170.667v-85.333h-71.253c-31.147 0-56.747-25.6-56.747-56.747v-654.080c0-31.573 25.6-57.173 56.747-57.173h312.747c31.573 0 57.173 25.6 57.173 56.747v654.507c0 31.147-25.6 56.747-56.747 56.747z" /> | ||
320 | <glyph unicode="" d="M668.587 768h-71.253v85.333h-170.667v-85.333h-71.253c-31.147 0-56.747-25.6-56.747-56.747v-654.080c0-31.573 25.6-57.173 56.747-57.173h312.747c31.573 0 57.173 25.6 57.173 56.747v654.507c0 31.147-25.6 56.747-56.747 56.747zM552.533 172.8h-81.067v81.067h81.067v-81.067zM610.133 397.227s-16.213-17.92-28.587-30.293c-20.48-20.48-35.413-49.067-35.413-68.267h-68.267c0 35.413 19.627 64.853 39.68 85.333l39.68 40.107c11.52 11.52 18.773 27.733 18.773 45.227 0 35.413-28.587 64-64 64s-64-28.587-64-64h-64c0 70.827 57.173 128 128 128s128-57.173 128-128c0-28.16-11.52-53.76-29.867-72.107z" /> | ||
321 | <glyph unicode="" d="M298.667 426.667l-85.333 85.333-85.333-85.333 85.333-85.333 85.333 85.333zM755.627 609.707l-243.627 243.627h-42.667v-323.84l-195.84 195.84-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 195.84 195.84v-323.84h42.667l243.627 243.627-183.467 183.040 183.467 183.040zM554.667 689.92l80.213-80.213-80.213-80.213v160.427zM634.88 243.627l-80.213-80.213v160.427l80.213-80.213zM810.667 512l-85.333-85.333 85.333-85.333 85.333 85.333-85.333 85.333z" /> | ||
322 | <glyph unicode="" d="M554.667 689.92l80.213-80.213-68.267-68.267 60.16-60.16 128.853 128.853-243.627 243.2h-42.667v-214.613l85.333-85.333v136.533zM230.827 768l-60.16-60.16 281.173-281.173-238.507-238.507 60.16-60.16 195.84 195.84v-323.84h42.667l183.040 183.040 98.133-97.707 60.16 60.16-622.507 622.507zM554.667 163.414v160.427l80.213-80.213-80.213-80.213z" /> | ||
323 | <glyph unicode="" d="M607.573 426.24l98.987-98.987c11.947 30.72 18.773 64.427 18.773 99.413s-6.827 67.84-18.347 98.56l-99.413-98.987zM833.28 652.374l-53.76-53.76c26.88-51.627 41.813-109.653 41.813-171.52s-15.36-120.32-41.813-171.52l51.2-51.2c41.387 65.707 65.707 143.36 65.707 226.56-0.427 80.64-23.467 156.587-63.147 221.44zM670.293 609.707l-243.627 243.627h-42.667v-323.84l-195.84 195.84-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 195.84 195.84v-323.84h42.667l243.627 243.627-183.467 183.040 183.467 183.040zM469.333 689.92l80.213-80.213-80.213-80.213v160.427zM549.547 243.627l-80.213-80.213v160.427l80.213-80.213z" /> | ||
324 | <glyph unicode="" d="M755.627 609.707l-243.627 243.627h-42.667v-323.84l-195.84 195.84-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 195.84 195.84v-323.84h42.667l243.627 243.627-183.467 183.040 183.467 183.040zM554.667 689.92l80.213-80.213-80.213-80.213v160.427zM634.88 243.627l-80.213-80.213v160.427l80.213-80.213z" /> | ||
325 | <glyph unicode="" d="M462.933 398.934h98.133l-49.067 155.733-49.067-155.733zM853.333 567.894v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107l141.227 141.227-141.227 141.227zM610.133 256l-29.867 85.333h-136.533l-29.867-85.333h-81.067l136.533 384h85.333l136.533-384h-81.067z" /> | ||
326 | <glyph unicode="" d="M853.333 567.894v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107l141.227 141.227-141.227 141.227zM512 170.667c-141.227 0-256 114.773-256 256s114.773 256 256 256 256-114.773 256-256-114.773-256-256-256zM512 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667z" /> | ||
327 | <glyph unicode="" d="M853.333 285.44l141.227 141.227-141.227 141.227v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107zM512 170.667c-141.227 0-256 114.773-256 256s114.773 256 256 256 256-114.773 256-256-114.773-256-256-256z" /> | ||
328 | <glyph unicode="" d="M853.333 285.44l141.227 141.227-141.227 141.227v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107zM512 170.667v512c141.227 0 256-114.773 256-256s-114.773-256-256-256z" /> | ||
329 | <glyph unicode="" d="M554.667 851.2v-129.28c144.64-20.907 256-144.64 256-295.253 0-38.4-7.68-74.667-20.48-108.373l110.933-65.28c23.893 52.907 37.547 111.787 37.547 173.653 0 221.013-168.533 403.2-384 424.533zM512 128c-165.12 0-298.667 133.547-298.667 298.667 0 150.613 111.36 274.347 256 295.253v129.28c-215.893-21.333-384-203.093-384-424.533 0-235.52 190.72-426.667 426.24-426.667 141.227 0 266.24 68.693 343.893 174.507l-110.933 65.28c-54.613-68.267-138.24-111.787-232.533-111.787z" /> | ||
330 | <glyph unicode="" d="M298.667 725.334h426.667v-85.333h85.333v170.667c0 46.933-38.4 84.907-85.333 84.907l-426.667 0.427c-46.933 0-85.333-38.4-85.333-85.333v-170.667h85.333v85.333zM657.493 230.827l195.84 195.84-195.84 195.84-60.16-60.587 135.253-135.253-135.253-135.253 60.16-60.587zM426.667 291.414l-135.253 135.253 135.253 135.253-60.16 60.587-195.84-195.84 195.84-195.84 60.16 60.587zM725.333 128h-426.667v85.333h-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v170.667h-85.333v-85.333z" /> | ||
331 | <glyph unicode="" d="M170.667 682.667h768v85.333h-768c-46.933 0-85.333-38.4-85.333-85.333v-469.333h-85.333v-128h597.333v128h-426.667v469.333zM981.333 597.334h-256c-23.467 0-42.667-19.2-42.667-42.667v-426.667c0-23.467 19.2-42.667 42.667-42.667h256c23.467 0 42.667 19.2 42.667 42.667v426.667c0 23.467-19.2 42.667-42.667 42.667zM938.667 213.334h-170.667v298.667h170.667v-298.667z" /> | ||
332 | <glyph unicode="" d="M896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h213.333v-85.333h341.333v85.333h213.333c46.933 0 84.907 38.4 84.907 85.333l0.427 512c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-768v512h768v-512zM810.667 597.334h-469.333v-85.333h469.333v85.333zM810.667 426.667h-469.333v-85.333h469.333v85.333zM298.667 597.334h-85.333v-85.333h85.333v85.333zM298.667 426.667h-85.333v-85.333h85.333v85.333z" /> | ||
333 | <glyph unicode="" d="M512 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM893.44 469.334c-19.627 177.92-160.853 319.147-338.773 338.773v87.893h-85.333v-87.893c-177.92-19.627-319.147-160.853-338.773-338.773h-87.893v-85.333h87.893c19.627-177.92 160.853-319.147 338.773-338.773v-87.893h85.333v87.893c177.92 19.627 319.147 160.853 338.773 338.773h87.893v85.333h-87.893zM512 128c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667z" /> | ||
334 | <glyph unicode="" d="M893.44 469.334c-19.627 177.92-160.853 319.147-338.773 338.773v87.893h-85.333v-87.893c-177.92-19.627-319.147-160.853-338.773-338.773h-87.893v-85.333h87.893c19.627-177.92 160.853-319.147 338.773-338.773v-87.893h85.333v87.893c177.92 19.627 319.147 160.853 338.773 338.773h87.893v85.333h-87.893zM512 128c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667z" /> | ||
335 | <glyph unicode="" d="M893.44 469.334c-19.627 177.92-160.853 319.147-338.773 338.773v87.893h-85.333v-87.893c-48.213-5.12-93.44-19.627-134.827-41.387l64-64c34.987 14.507 73.387 22.613 113.493 22.613 165.12 0 298.667-133.547 298.667-298.667 0-40.107-8.107-78.507-22.187-113.067l64-64c21.333 40.96 35.84 86.187 41.387 134.4h87.467v85.333h-87.893zM128 756.48l87.040-87.040c-45.653-55.893-76.373-124.587-84.48-200.107h-87.893v-85.333h87.893c19.627-177.92 160.853-319.147 338.773-338.773v-87.893h85.333v87.893c75.52 8.533 144.213 38.827 200.107 84.48l87.040-87.040 54.187 54.187-713.813 713.813-54.187-54.187zM694.187 190.294c-50.347-38.827-113.493-62.293-182.187-62.293-165.12 0-298.667 133.547-298.667 298.667 0 68.693 23.467 131.84 62.293 182.187l418.56-418.56z" /> | ||
336 | <glyph unicode="" d="M893.44 469.334c-19.627 177.92-160.853 319.147-338.773 338.773v87.893h-85.333v-87.893c-48.213-5.12-93.44-19.627-134.827-41.387l64-64c34.987 14.507 73.387 22.613 113.493 22.613 165.12 0 298.667-133.547 298.667-298.667 0-40.107-8.107-78.507-22.187-113.067l64-64c21.333 40.96 35.84 86.187 41.387 134.4h87.467v85.333h-87.893zM128 756.48l87.040-87.040c-45.653-55.893-76.373-124.587-84.48-200.107h-87.893v-85.333h87.893c19.627-177.92 160.853-319.147 338.773-338.773v-87.893h85.333v87.893c75.52 8.533 144.213 38.827 200.107 84.48l87.040-87.040 54.187 54.187-713.813 713.813-54.187-54.187zM694.187 190.294c-50.347-38.827-113.493-62.293-182.187-62.293-165.12 0-298.667 133.547-298.667 298.667 0 68.693 23.467 131.84 62.293 182.187l418.56-418.56z" /> | ||
337 | <glyph unicode="" d="M893.44 469.334c-19.627 177.92-160.853 319.147-338.773 338.773v87.893h-85.333v-87.893c-177.92-19.627-319.147-160.853-338.773-338.773h-87.893v-85.333h87.893c19.627-177.92 160.853-319.147 338.773-338.773v-87.893h85.333v87.893c177.92 19.627 319.147 160.853 338.773 338.773h87.893v85.333h-87.893zM512 128c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667z" /> | ||
338 | <glyph unicode="" d="M298.667 170.667h85.333v512h-85.333v-512zM469.333-0h85.333v853.333h-85.333v-853.333zM128 341.334h85.333v170.667h-85.333v-170.667zM640 170.667h85.333v512h-85.333v-512zM810.667 512v-170.667h85.333v170.667h-85.333z" /> | ||
339 | <glyph unicode="" d="M85.333-0h853.333v853.333zM725.333 640l-640-640h640z" /> | ||
340 | <glyph unicode="" d="M149.333 473.6l362.667-452.267 362.667 448c-21.333 17.067-157.867 128-362.667 128s-341.333-110.933-362.667-123.733z" /> | ||
341 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM853.333 85.334h-682.667v682.667h682.667v-682.667zM768 682.667h-213.333c-46.933 0-85.333-38.4-85.333-85.333v-97.28c-25.6-14.933-42.667-41.813-42.667-73.387 0-46.933 38.4-85.333 85.333-85.333s85.333 38.4 85.333 85.333c0 31.573-17.067 58.88-42.667 73.387v97.28h128v-341.333h-341.333v341.333h85.333v85.333h-170.667v-512h512v512z" /> | ||
342 | <glyph unicode="" d="M170.667 768h298.667v85.333h-298.667c-46.933 0-85.333-38.4-85.333-85.333v-298.667h85.333v298.667zM426.667 384l-170.667-213.333h512l-128 170.667-86.613-115.627-126.72 158.293zM725.333 576c0 35.413-28.587 64-64 64s-64-28.587-64-64 28.587-64 64-64 64 28.587 64 64zM853.333 853.334h-298.667v-85.333h298.667v-298.667h85.333v298.667c0 46.933-38.4 85.333-85.333 85.333zM853.333 85.334h-298.667v-85.333h298.667c46.933 0 85.333 38.4 85.333 85.333v298.667h-85.333v-298.667zM170.667 384h-85.333v-298.667c0-46.933 38.4-85.333 85.333-85.333h298.667v85.333h-298.667v298.667z" /> | ||
343 | <glyph unicode="" d="M554.667 384v-341.333h341.333v341.333h-341.333zM128 42.667h341.333v341.333h-341.333v-341.333zM128 810.667v-341.333h341.333v341.333h-341.333zM710.827 866.56l-241.493-241.067 241.493-241.493 241.493 241.493-241.493 241.067z" /> | ||
344 | <glyph unicode="" d="M896 725.334h-768c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 213.334h-597.333v426.667h597.333v-426.667zM426.667 256h170.667c23.467 0 42.667 19.2 42.667 42.667v128c0 23.467-19.2 42.667-42.667 42.667v42.667c0 47.36-38.4 85.333-85.333 85.333-47.36 0-85.333-38.4-85.333-85.333v-42.667c-23.467 0-42.667-19.2-42.667-42.667v-128c0-23.467 19.2-42.667 42.667-42.667zM460.8 512c0 28.16 23.040 51.2 51.2 51.2s51.2-23.040 51.2-51.2v-42.667h-102.4v42.667z" /> | ||
345 | <glyph unicode="" d="M426.667 256h170.667c23.467 0 42.667 19.2 42.667 42.667v128c0 23.467-19.2 42.667-42.667 42.667v42.667c0 47.36-38.4 85.333-85.333 85.333-47.36 0-85.333-38.4-85.333-85.333v-42.667c-23.467 0-42.667-19.2-42.667-42.667v-128c0-23.467 19.2-42.667 42.667-42.667zM460.8 512c0 28.16 23.040 51.2 51.2 51.2s51.2-23.040 51.2-51.2v-42.667h-102.4v42.667zM725.333 896h-426.667c-46.933 0-85.333-38.4-85.333-85.333v-768c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v768c0 46.933-38.4 85.333-85.333 85.333zM725.333 128h-426.667v597.333h426.667v-597.333z" /> | ||
346 | <glyph unicode="" d="M992 393.814l-109.653 109.653-60.16-60.16 94.72-94.72-241.493-241.493-482.987 482.987 241.493 241.493 89.6-89.6 60.16 60.16-104.533 104.533c-25.173 25.173-65.707 25.173-90.453 0l-271.36-271.36c-25.173-25.173-25.173-65.707 0-90.453l512.853-512.853c25.173-25.173 65.707-25.173 90.453 0l271.36 271.36c25.173 25.173 25.173 65.707 0 90.453zM361.387 64.854c-139.52 65.707-239.36 201.387-254.72 361.813h-64c21.76-262.827 241.493-469.333 509.867-469.333l28.16 1.28-162.56 162.987-56.747-56.747zM682.667 554.667h213.333c23.467 0 42.667 19.2 42.667 42.667v170.667c0 23.467-19.2 42.667-42.667 42.667v21.333c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667v-21.333c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667zM716.8 832c0 40.107 32.427 72.533 72.533 72.533s72.533-32.427 72.533-72.533v-21.333h-145.067v21.333z" /> | ||
347 | <glyph unicode="" d="M703.147 831.147c139.52-66.133 239.36-201.387 254.72-361.813h64c-21.76 262.827-241.493 469.333-509.867 469.333l-28.16-1.28 162.56-162.56 56.747 56.32zM436.48 864c-25.173 25.173-65.707 25.173-90.453 0l-271.36-271.36c-25.173-25.173-25.173-65.707 0-90.453l512.853-512.853c25.173-25.173 65.707-25.173 90.453 0l271.36 271.36c25.173 25.173 25.173 65.707 0 90.453l-512.853 512.853zM632.747 34.56l-512.853 512.853 271.36 271.36 512.853-512.853-271.36-271.36zM320.853 22.187c-139.52 65.707-239.36 201.387-254.72 361.813h-64c21.76-262.827 241.493-469.333 509.867-469.333l28.16 1.28-162.56 162.56-56.747-56.32z" /> | ||
348 | <glyph unicode="" d="M768 853.334h-341.333l-255.147-256-0.853-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM512 597.334h-85.333v170.667h85.333v-170.667zM640 597.334h-85.333v170.667h85.333v-170.667zM768 597.334h-85.333v170.667h85.333v-170.667z" /> | ||
349 | <glyph unicode="" d="M384 256h277.333c58.88 0 106.667 47.787 106.667 106.667s-47.787 106.667-106.667 106.667h-2.133c-10.24 72.107-72.107 128-147.2 128-59.733 0-110.933-35.413-134.827-86.187h-6.827c-64.427-6.827-114.347-61.013-114.347-127.147 0-70.827 57.173-128 128-128zM896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 127.574h-768v598.187h768v-598.187z" /> | ||
350 | <glyph unicode="" d="M512 426.667l-426.667-426.667h426.667v426.667z" /> | ||
351 | <glyph unicode="" d="M597.333 512l-512-512h512v512z" /> | ||
352 | <glyph unicode="" d="M725.333 640l-640-640h640v640z" /> | ||
353 | <glyph unicode="" d="M85.333-0h853.333v853.333z" /> | ||
354 | <glyph unicode="" d="M853.333-0h85.333v85.333h-85.333v-85.333zM853.333 512v-341.333h85.333v341.333h-85.333z" /> | ||
355 | <glyph unicode="" d="M853.333 512v-341.333h85.333v341.333h-85.333zM512-0v426.667l-426.667-426.667h426.667zM853.333-0h85.333v85.333h-85.333v-85.333z" /> | ||
356 | <glyph unicode="" d="M597.333-0v512l-512-512h512zM853.333 512v-341.333h85.333v341.333h-85.333zM853.333-0h85.333v85.333h-85.333v-85.333z" /> | ||
357 | <glyph unicode="" d="M725.333-0v640l-640-640h640zM853.333 512v-341.333h85.333v341.333h-85.333zM853.333-0h85.333v85.333h-85.333v-85.333z" /> | ||
358 | <glyph unicode="" d="M853.333 170.667h85.333v341.333h-85.333v-341.333zM853.333-0h85.333v85.333h-85.333v-85.333zM85.333-0h682.667v597.333h170.667v256l-853.333-853.333z" /> | ||
359 | <glyph unicode="" d="M810.24 725.334c0 46.933-37.973 85.333-84.907 85.333h-298.667l-99.84-99.84 483.84-483.84-0.427 498.347zM155.733 773.12l-54.187-54.187 111.787-111.787v-479.147c0-46.933 38.4-85.333 85.333-85.333h427.093c14.933 0 28.587 4.267 40.96 11.093l80.213-80.213 54.187 54.187-745.387 745.387z" /> | ||
360 | <glyph unicode="" d="M853.333 647.254v-561.92h-561.92l561.92 561.92zM938.667 853.334l-853.333-853.333h853.333v853.333z" /> | ||
361 | <glyph unicode="" d="M896 896l-366.507-366.507 366.507-366.507v733.013zM203.52 746.667l-54.187-54.187 271.36-271.36-378.027-378.453h756.48l85.333-85.333 54.187 54.187-735.147 735.147z" /> | ||
362 | <glyph unicode="" d="M285.867 302.934l226.133-281.6 226.133 281.6c-8.533 12.8-98.133 81.067-226.133 81.067s-217.6-68.267-226.133-81.067z" /> | ||
363 | <glyph unicode="" d="M204.8 405.334l307.2-384 307.2 384c-17.067 12.8-132.267 106.667-307.2 106.667s-294.4-93.867-307.2-106.667z" /> | ||
364 | <glyph unicode="" d="M149.333 473.6l362.667-452.267 362.667 448c-21.333 17.067-157.867 128-362.667 128s-341.333-110.933-362.667-123.733z" /> | ||
365 | <glyph unicode="" d="M512 21.334l494.933 618.667c-17.067 12.8-209.067 170.667-494.933 170.667s-477.867-157.867-494.933-170.667l494.933-618.667c0 0 0 0 0 0z" /> | ||
366 | <glyph unicode="" d="M1008.64 640c-19.2 14.507-210.347 170.667-496.64 170.667-64 0-123.307-8.107-177.067-20.48l440.747-440.32 232.96 290.133zM727.040 289.28l-587.52 587.947-54.187-54.613 87.467-87.893c-91.307-41.813-147.627-87.040-157.44-94.72l496.64-618.667 0.427 0.427 166.4 207.36 141.653-141.653 54.187 54.187-147.627 147.627z" /> | ||
367 | <glyph unicode="" d="M554.667-0l243.2 302.933c-12.8 4.267-102.4 81.067-243.2 81.067s-230.4-76.8-243.2-81.067l243.2-302.933z" horiz-adv-x="1109" /> | ||
368 | <glyph unicode="" d="M554.667-0l320 401.067c-8.533 8.533-132.267 110.933-320 110.933s-311.467-102.4-324.267-110.933l324.267-401.067c0 0 0 0 0 0z" horiz-adv-x="1109" /> | ||
369 | <glyph unicode="" d="M554.667-0l401.067 503.467c-12.8 8.533-170.667 136.533-401.067 136.533s-388.267-128-401.067-136.533l401.067-503.467c0 0 0 0 0 0z" horiz-adv-x="1109" /> | ||
370 | <glyph unicode="" d="M554.667-0l537.6 669.867c-21.333 12.8-226.133 183.467-537.6 183.467s-516.267-170.667-537.6-183.467l537.6-669.867z" horiz-adv-x="1109" /> | ||
371 | <glyph unicode="" d="M938.667-0h85.333v85.333h-85.333v-85.333zM938.667 512v-341.333h85.333v341.333h-85.333z" horiz-adv-x="1109" /> | ||
372 | <glyph unicode="" d="M230.4 401.067l324.267-401.067 298.667 371.2v46.933c-46.933 29.867-153.6 93.867-298.667 93.867-187.733 0-311.467-102.4-324.267-110.933zM938.667 512v-341.333h85.333v341.333h-85.333zM938.667-0h85.333v85.333h-85.333v-85.333z" horiz-adv-x="1109" /> | ||
373 | <glyph unicode="" d="M853.333 371.2v196.267c-68.267 34.133-174.933 72.533-298.667 72.533-230.4 0-388.267-128-401.067-136.533l401.067-503.467c0 0 298.667 371.2 298.667 371.2zM938.667-0h85.333v85.333h-85.333v-85.333zM938.667 512v-341.333h85.333v341.333h-85.333z" horiz-adv-x="1109" /> | ||
374 | <glyph unicode="" d="M938.667-0h85.333v85.333h-85.333v-85.333zM554.667 853.334c-311.467 0-516.267-170.667-537.6-183.467l537.6-669.867 298.667 371.2v226.133h179.2l59.733 72.533c-21.333 12.8-226.133 183.467-537.6 183.467zM938.667 170.667h85.333v341.333h-85.333v-341.333z" horiz-adv-x="1109" /> | ||
375 | <glyph unicode="" d="M311.467 302.934l243.2-298.667 243.2 302.933c-12.8 0-102.4 76.8-243.2 76.8s-230.4-76.8-243.2-81.067zM938.667-0h85.333v85.333h-85.333v-85.333zM938.667 512v-341.333h85.333v341.333h-85.333z" horiz-adv-x="1109" /> | ||
376 | <glyph unicode="" d="M891.733 499.2c-81.067 0-149.333-68.267-149.333-149.333h76.8c0 42.667 34.133 76.8 76.8 76.8s76.8-34.133 76.8-76.8c0-21.333-8.533-38.4-21.333-51.2l-46.933-46.933c-25.6-25.6-42.667-64-42.667-106.667v-17.067h76.8c0 55.467 17.067 76.8 42.667 106.667l34.133 34.133c21.333 21.333 34.133 51.2 34.133 85.333-8.533 76.8-76.8 145.067-157.867 145.067zM853.333-0h85.333v85.333h-85.333v-85.333z" horiz-adv-x="1109" /> | ||
377 | <glyph unicode="" d="M554.667 768c181.333 0 325.12-64.427 413.013-117.333l-413.013-514.133-412.587 514.133c87.467 52.907 231.253 117.333 412.587 117.333zM554.667 853.334c-309.76 0-516.267-168.96-536.747-184.32l536.747-669.013 0.427 0.427 536.32 668.587c-20.48 15.36-226.987 184.32-536.747 184.32z" horiz-adv-x="1109" /> | ||
378 | <glyph unicode="" d="M85.333 85.334h853.333v170.667h-853.333v-170.667zM170.667 213.334h85.333v-85.333h-85.333v85.333zM85.333 768v-170.667h853.333v170.667h-853.333zM256 640h-85.333v85.333h85.333v-85.333zM85.333 341.334h853.333v170.667h-853.333v-170.667zM170.667 469.334h85.333v-85.333h-85.333v85.333z" /> | ||
379 | <glyph unicode="" d="M640 640v-170.667h42.667v-85.333h-128v341.333h85.333l-128 170.667-128-170.667h85.333v-341.333h-128v88.32c29.867 15.787 51.2 46.080 51.2 82.347 0 51.627-42.24 93.867-93.867 93.867s-93.867-42.24-93.867-93.867c0-36.267 21.333-66.56 51.2-82.347v-88.32c0-47.36 37.973-85.333 85.333-85.333h128v-130.133c-30.293-15.787-51.2-46.933-51.2-83.2 0-52.053 42.24-93.867 93.867-93.867s93.867 41.813 93.867 93.867c0 36.267-20.907 67.413-51.2 83.2v130.133h128c47.36 0 85.333 37.973 85.333 85.333v85.333h42.667v170.667h-170.667z" /> | ||
380 | <glyph unicode="" d="M874.667 533.334c11.947 0 23.467-1.707 34.56-3.413l114.773 152.747c-142.507 107.093-320 170.667-512 170.667s-369.493-63.573-512-170.667l512-682.667 149.333 199.253v120.747c0 117.76 95.573 213.333 213.333 213.333zM981.333 256v64c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667v-64c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667h213.333c23.467 0 42.667 19.2 42.667 42.667v170.667c0 23.467-19.2 42.667-42.667 42.667zM938.667 256h-128v64c0 35.413 28.587 64 64 64s64-28.587 64-64v-64z" /> | ||
381 | <glyph unicode="" d="M512 469.334c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 384c0 141.227-114.773 256-256 256s-256-114.773-256-256c0-94.72 51.627-177.067 128-221.44l42.667 74.24c-50.773 29.867-85.333 84.053-85.333 147.2 0 94.293 76.373 170.667 170.667 170.667s170.667-76.373 170.667-170.667c0-63.147-34.56-117.333-85.333-147.2l42.667-74.24c76.373 44.373 128 126.72 128 221.44zM512 810.667c-235.52 0-426.667-191.147-426.667-426.667 0-157.867 85.76-295.253 212.907-369.067l42.667 73.813c-101.547 59.307-170.24 168.96-170.24 295.253 0 188.587 152.747 341.333 341.333 341.333s341.333-152.747 341.333-341.333c0-126.293-68.693-235.947-170.667-295.253l42.667-73.813c127.573 73.813 213.333 211.2 213.333 369.067 0 235.52-191.147 426.667-426.667 426.667z" /> | ||
382 | <glyph unicode="" d="M704 682.667v-490.667c0-94.293-76.373-170.667-170.667-170.667s-170.667 76.373-170.667 170.667v533.333c0 58.88 47.787 106.667 106.667 106.667s106.667-47.787 106.667-106.667v-448c0-23.467-19.2-42.667-42.667-42.667s-42.667 19.2-42.667 42.667v405.333h-64v-405.333c0-58.88 47.787-106.667 106.667-106.667s106.667 47.787 106.667 106.667v448c0 94.293-76.373 170.667-170.667 170.667s-170.667-76.373-170.667-170.667v-533.333c0-129.707 104.96-234.667 234.667-234.667s234.667 104.96 234.667 234.667v490.667h-64z" /> | ||
383 | <glyph unicode="" d="M503.467 473.6c-96.853 25.173-128 51.2-128 91.733 0 46.507 43.093 78.933 115.2 78.933 75.947 0 104.107-36.267 106.667-89.6h94.293c-2.987 73.387-47.787 140.8-136.96 162.56v93.44h-128v-92.16c-82.773-17.92-149.333-71.68-149.333-154.027 0-98.56 81.493-147.627 200.533-176.213 106.667-25.6 128-63.147 128-102.827 0-29.44-20.907-76.373-115.2-76.373-87.893 0-122.453 39.253-127.147 89.6h-93.867c5.12-93.44 75.093-145.92 157.013-163.413v-92.587h128v91.733c83.2 15.787 149.333 64 149.333 151.467 0 121.173-103.68 162.56-200.533 187.733z" /> | ||
384 | <glyph unicode="" d="M128 810.667v-768h768v768h-768zM469.333 128h-256v256h256v-256zM469.333 469.334h-256v256h256v-256zM810.667 128h-256v256h256v-256zM810.667 469.334h-256v256h256v-256z" /> | ||
385 | <glyph unicode="" d="M384 469.334h-85.333v-85.333h85.333v85.333zM554.667 298.667h-85.333v-85.333h85.333v85.333zM384 810.667h-85.333v-85.333h85.333v85.333zM554.667 469.334h-85.333v-85.333h85.333v85.333zM213.333 810.667h-85.333v-85.333h85.333v85.333zM554.667 640h-85.333v-85.333h85.333v85.333zM725.333 469.334h-85.333v-85.333h85.333v85.333zM554.667 810.667h-85.333v-85.333h85.333v85.333zM725.333 810.667h-85.333v-85.333h85.333v85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM213.333 640h-85.333v-85.333h85.333v85.333zM810.667 810.667v-85.333h85.333v85.333h-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM213.333 469.334h-85.333v-85.333h85.333v85.333zM128 42.667h768v85.333h-768v-85.333zM213.333 298.667h-85.333v-85.333h85.333v85.333z" /> | ||
386 | <glyph unicode="" d="M298.667 725.334h85.333v85.333h-85.333v-85.333zM298.667 384h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333zM469.333 213.334h85.333v85.333h-85.333v-85.333zM469.333 42.667h85.333v85.333h-85.333v-85.333zM128 42.667h85.333v85.333h-85.333v-85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM128 384h85.333v85.333h-85.333v-85.333zM128 554.667h85.333v85.333h-85.333v-85.333zM128 725.334h85.333v85.333h-85.333v-85.333zM469.333 384h85.333v85.333h-85.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM810.667 42.667h85.333v85.333h-85.333v-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM469.333 554.667h85.333v85.333h-85.333v-85.333zM810.667 810.667v-85.333h85.333v85.333h-85.333zM469.333 725.334h85.333v85.333h-85.333v-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM640 384h85.333v85.333h-85.333v-85.333zM640 725.334h85.333v85.333h-85.333v-85.333z" /> | ||
387 | <glyph unicode="" d="M757.333 640l-160 160-426.667-426.667v-160h160l426.667 426.667zM883.627 766.294c16.64 16.64 16.64 43.52 0 60.16l-99.84 99.84c-16.64 16.64-43.52 16.64-60.16 0l-83.627-83.627 160-160 83.627 83.627zM0 85.334h1024v-170.667h-1024z" /> | ||
388 | <glyph unicode="" d="M128 42.667h85.333v85.333h-85.333v-85.333zM213.333 640h-85.333v-85.333h85.333v85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333zM213.333 810.667h-85.333v-85.333h85.333v85.333zM384 810.667h-85.333v-85.333h85.333v85.333zM725.333 810.667h-85.333v-85.333h85.333v85.333zM554.667 640h-85.333v-85.333h85.333v85.333zM554.667 810.667h-85.333v-85.333h85.333v85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM469.333 42.667h85.333v85.333h-85.333v-85.333zM128 384h768v85.333h-768v-85.333zM810.667 810.667v-85.333h85.333v85.333h-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM469.333 213.334h85.333v85.333h-85.333v-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM810.667 42.667h85.333v85.333h-85.333v-85.333z" /> | ||
389 | <glyph unicode="" d="M128 42.667h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333zM213.333 640h-85.333v-85.333h85.333v85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM384 810.667h-85.333v-85.333h85.333v85.333zM213.333 810.667h-85.333v-85.333h85.333v85.333zM725.333 810.667h-85.333v-85.333h85.333v85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM810.667 810.667v-85.333h85.333v85.333h-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM554.667 810.667h-85.333v-341.333h-341.333v-85.333h341.333v-341.333h85.333v341.333h341.333v85.333h-341.333v341.333zM810.667 42.667h85.333v85.333h-85.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333z" /> | ||
390 | <glyph unicode="" d="M469.333 42.667h85.333v85.333h-85.333v-85.333zM469.333 213.334h85.333v85.333h-85.333v-85.333zM469.333 725.334h85.333v85.333h-85.333v-85.333zM469.333 554.667h85.333v85.333h-85.333v-85.333zM469.333 384h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333zM298.667 725.334h85.333v85.333h-85.333v-85.333zM298.667 384h85.333v85.333h-85.333v-85.333zM128 42.667h85.333v768h-85.333v-768zM810.667 554.667h85.333v85.333h-85.333v-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM810.667 810.667v-85.333h85.333v85.333h-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM810.667 42.667h85.333v85.333h-85.333v-85.333zM640 384h85.333v85.333h-85.333v-85.333zM640 725.334h85.333v85.333h-85.333v-85.333z" /> | ||
391 | <glyph unicode="" d="M554.667 640h-85.333v-85.333h85.333v85.333zM554.667 469.334h-85.333v-85.333h85.333v85.333zM725.333 469.334h-85.333v-85.333h85.333v85.333zM128 810.667v-768h768v768h-768zM810.667 128h-597.333v597.333h597.333v-597.333zM554.667 298.667h-85.333v-85.333h85.333v85.333zM384 469.334h-85.333v-85.333h85.333v85.333z" /> | ||
392 | <glyph unicode="" d="M298.667 42.667h85.333v85.333h-85.333v-85.333zM128 725.334h85.333v85.333h-85.333v-85.333zM298.667 725.334h85.333v85.333h-85.333v-85.333zM298.667 384h85.333v85.333h-85.333v-85.333zM128 42.667h85.333v85.333h-85.333v-85.333zM469.333 42.667h85.333v85.333h-85.333v-85.333zM128 384h85.333v85.333h-85.333v-85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM128 554.667h85.333v85.333h-85.333v-85.333zM469.333 213.334h85.333v85.333h-85.333v-85.333zM640 384h85.333v85.333h-85.333v-85.333zM810.667 810.667v-768h85.333v768h-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM640 725.334h85.333v85.333h-85.333v-85.333zM469.333 384h85.333v85.333h-85.333v-85.333zM469.333 725.334h85.333v85.333h-85.333v-85.333zM469.333 554.667h85.333v85.333h-85.333v-85.333z" /> | ||
393 | <glyph unicode="" d="M640 42.667h85.333v85.333h-85.333v-85.333zM810.667 42.667h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333zM469.333 42.667h85.333v85.333h-85.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM128 810.667v-768h85.333v682.667h682.667v85.333h-768zM810.667 554.667h85.333v85.333h-85.333v-85.333z" /> | ||
394 | <glyph unicode="" d="M298.667 42.667h85.333v85.333h-85.333v-85.333zM298.667 384h85.333v85.333h-85.333v-85.333zM469.333 384h85.333v85.333h-85.333v-85.333zM469.333 42.667h85.333v85.333h-85.333v-85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM128 42.667h85.333v85.333h-85.333v-85.333zM128 384h85.333v85.333h-85.333v-85.333zM128 554.667h85.333v85.333h-85.333v-85.333zM469.333 213.334h85.333v85.333h-85.333v-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM128 810.667v-85.333h768v85.333h-768zM810.667 213.334h85.333v85.333h-85.333v-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM469.333 554.667h85.333v85.333h-85.333v-85.333zM810.667 42.667h85.333v85.333h-85.333v-85.333zM640 384h85.333v85.333h-85.333v-85.333z" /> | ||
395 | <glyph unicode="" d="M128 554.667h85.333v85.333h-85.333v-85.333zM128 725.334h85.333v85.333h-85.333v-85.333zM298.667 42.667h85.333v85.333h-85.333v-85.333zM298.667 384h85.333v85.333h-85.333v-85.333zM128 384h85.333v85.333h-85.333v-85.333zM128 42.667h85.333v85.333h-85.333v-85.333zM128 213.334h85.333v85.333h-85.333v-85.333zM298.667 725.334h85.333v85.333h-85.333v-85.333zM810.667 213.334h85.333v85.333h-85.333v-85.333zM469.333 42.667h85.333v768h-85.333v-768zM810.667 42.667h85.333v85.333h-85.333v-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM810.667 810.667v-85.333h85.333v85.333h-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM640 725.334h85.333v85.333h-85.333v-85.333zM640 42.667h85.333v85.333h-85.333v-85.333zM640 384h85.333v85.333h-85.333v-85.333z" /> | ||
396 | <glyph unicode="" d="M298.667 298.667v-85.333h426.667v85.333h-426.667zM128 42.667h768v85.333h-768v-85.333zM128 384h768v85.333h-768v-85.333zM298.667 640v-85.333h426.667v85.333h-426.667zM128 810.667v-85.333h768v85.333h-768z" /> | ||
397 | <glyph unicode="" d="M128 42.667h768v85.333h-768v-85.333zM128 213.334h768v85.333h-768v-85.333zM128 384h768v85.333h-768v-85.333zM128 554.667h768v85.333h-768v-85.333zM128 810.667v-85.333h768v85.333h-768z" /> | ||
398 | <glyph unicode="" d="M640 298.667h-512v-85.333h512v85.333zM640 640h-512v-85.333h512v85.333zM128 384h768v85.333h-768v-85.333zM128 42.667h768v85.333h-768v-85.333zM128 810.667v-85.333h768v85.333h-768z" /> | ||
399 | <glyph unicode="" d="M128 42.667h768v85.333h-768v-85.333zM384 213.334h512v85.333h-512v-85.333zM128 384h768v85.333h-768v-85.333zM384 554.667h512v85.333h-512v-85.333zM128 810.667v-85.333h768v85.333h-768z" /> | ||
400 | <glyph unicode="" d="M665.6 478.294c41.387 28.587 70.4 75.52 70.4 119.040 0 96.427-74.667 170.667-170.667 170.667h-266.667v-597.333h300.373c89.173 0 158.293 72.533 158.293 161.707 0 64.853-36.693 120.32-91.733 145.92zM426.667 661.334h128c35.413 0 64-28.587 64-64s-28.587-64-64-64h-128v128zM576 277.334h-149.333v128h149.333c35.413 0 64-28.587 64-64s-28.587-64-64-64z" /> | ||
401 | <glyph unicode="" d="M139.52 725.334l-54.187-54.187 297.387-297.387-105.387-245.76h128l66.987 156.16 241.493-241.493 54.187 54.187-628.48 628.48zM256 725.334v-7.68l120.32-120.32h102.4l-30.72-71.68 89.6-89.6 68.693 161.28h247.040v128h-597.333z" /> | ||
402 | <glyph unicode="" d="M706.56 557.227l-381.44 381.44-60.16-60.16 101.547-101.547-219.733-219.733c-25.173-25.173-25.173-65.707 0-90.453l234.667-234.667c12.373-12.373 29.013-18.773 45.227-18.773s32.853 6.4 45.227 18.773l234.667 234.667c25.173 24.747 25.173 65.28 0 90.453zM222.293 512l204.373 204.373 204.373-204.373h-408.747zM810.667 448s-85.333-92.587-85.333-149.333c0-46.933 38.4-85.333 85.333-85.333s85.333 38.4 85.333 85.333c0 56.747-85.333 149.333-85.333 149.333zM0 85.334h1024v-170.667h-1024z" /> | ||
403 | <glyph unicode="" d="M768 341.334c0 170.667-256 460.8-256 460.8s-56.747-64.427-116.48-150.187l366.507-366.507c3.84 17.92 5.973 36.693 5.973 55.893zM730.453 208.214l-505.6 505.6-54.187-54.613 141.653-141.653c-32.853-61.867-56.32-124.587-56.32-176.213 0-141.227 114.773-256 256-256 64.853 0 123.733 24.32 168.96 64l112.213-112.213 54.187 54.187-116.907 116.907z" /> | ||
404 | <glyph unicode="" d="M0 85.334h1024v-170.667h-1024zM469.333 810.667l-234.667-597.333h96l47.787 128h266.667l47.787-128h96l-234.24 597.333h-85.333zM410.453 426.667l101.547 270.080 101.547-270.080h-203.093z" /> | ||
405 | <glyph unicode="" d="M469.333 213.334h426.667v85.333h-426.667v-85.333zM128 426.667l170.667-170.667v341.333l-170.667-170.667zM128 42.667h768v85.333h-768v-85.333zM128 810.667v-85.333h768v85.333h-768zM469.333 554.667h426.667v85.333h-426.667v-85.333zM469.333 384h426.667v85.333h-426.667v-85.333z" /> | ||
406 | <glyph unicode="" d="M128 42.667h768v85.333h-768v-85.333zM128 597.334v-341.333l170.667 170.667-170.667 170.667zM469.333 213.334h426.667v85.333h-426.667v-85.333zM128 810.667v-85.333h768v85.333h-768zM469.333 554.667h426.667v85.333h-426.667v-85.333zM469.333 384h426.667v85.333h-426.667v-85.333z" /> | ||
407 | <glyph unicode="" d="M426.667 768v-128h94.293l-145.92-341.333h-119.040v-128h341.333v128h-94.293l145.92 341.333h119.040v128z" /> | ||
408 | <glyph unicode="" d="M256 640h106.667l-149.333 149.333-149.333-149.333h106.667v-426.667h-106.667l149.333-149.333 149.333 149.333h-106.667v426.667zM426.667 725.334v-85.333h512v85.333h-512zM426.667 128h512v85.333h-512v-85.333zM426.667 384h512v85.333h-512v-85.333z" /> | ||
409 | <glyph unicode="" d="M170.667 490.667c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64zM170.667 746.667c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64zM170.667 227.414c-31.573 0-56.747-25.6-56.747-56.747s25.6-56.747 56.747-56.747 56.747 25.6 56.747 56.747-25.173 56.747-56.747 56.747zM298.667 128h597.333v85.333h-597.333v-85.333zM298.667 384h597.333v85.333h-597.333v-85.333zM298.667 725.334v-85.333h597.333v85.333h-597.333z" /> | ||
410 | <glyph unicode="" d="M85.333 213.334h85.333v-21.333h-42.667v-42.667h42.667v-21.333h-85.333v-42.667h128v170.667h-128v-42.667zM128 597.334h42.667v170.667h-85.333v-42.667h42.667v-128zM85.333 469.334h76.8l-76.8-89.6v-38.4h128v42.667h-76.8l76.8 89.6v38.4h-128v-42.667zM298.667 725.334v-85.333h597.333v85.333h-597.333zM298.667 128h597.333v85.333h-597.333v-85.333zM298.667 384h597.333v85.333h-597.333v-85.333z" /> | ||
411 | <glyph unicode="" d="M768 768v42.667c0 23.467-19.2 42.667-42.667 42.667h-512c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667h512c23.467 0 42.667 19.2 42.667 42.667v42.667h42.667v-170.667h-426.667v-469.333c0-23.467 19.2-42.667 42.667-42.667h85.333c23.467 0 42.667 19.2 42.667 42.667v384h341.333v341.333h-128z" /> | ||
412 | <glyph unicode="" d="M256 213.334h128l85.333 170.667v256h-256v-256h128zM597.333 213.334h128l85.333 170.667v256h-256v-256h128z" /> | ||
413 | <glyph unicode="" d="M384 768v-128h213.333v-512h128v512h213.333v128h-554.667zM128 426.667h128v-298.667h128v298.667h128v128h-384v-128z" /> | ||
414 | <glyph unicode="" d="M426.667 128h170.667v128h-170.667v-128zM213.333 768v-128h213.333v-128h170.667v128h213.333v128h-597.333zM128 341.334h768v85.333h-768v-85.333z" /> | ||
415 | <glyph unicode="" d="M384 512v-213.333h85.333v469.333h85.333v-469.333h85.333v469.333h85.333v85.333h-341.333c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667zM896 170.667l-170.667 170.667v-128h-512v-85.333h512v-128l170.667 170.667z" /> | ||
416 | <glyph unicode="" d="M426.667 512v-213.333h85.333v469.333h85.333v-469.333h85.333v469.333h85.333v85.333h-341.333c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667zM341.333 213.334v128l-170.667-170.667 170.667-170.667v128h512v85.333h-512z" /> | ||
417 | <glyph unicode="" d="M512 213.334c141.227 0 256 114.773 256 256v341.333h-106.667v-341.333c0-82.347-66.987-149.333-149.333-149.333s-149.333 66.987-149.333 149.333v341.333h-106.667v-341.333c0-141.227 114.773-256 256-256zM213.333 128v-85.333h597.333v85.333h-597.333z" /> | ||
418 | <glyph unicode="" d="M768 768h-512v-85.333l277.333-256-277.333-256v-85.333h512v128h-298.667l213.333 213.333-213.333 213.333h298.667z" /> | ||
419 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM384 213.334h-85.333v298.667h85.333v-298.667zM554.667 213.334h-85.333v426.667h85.333v-426.667zM725.333 213.334h-85.333v170.667h85.333v-170.667z" /> | ||
420 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h597.333l170.667-170.667v768c0 46.933-38.4 85.333-85.333 85.333zM768 341.334h-512v85.333h512v-85.333zM768 469.334h-512v85.333h512v-85.333zM768 597.334h-512v85.333h512v-85.333z" /> | ||
421 | <glyph unicode="" d="M256 853.334c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667c0-46.933 37.973-85.333 84.907-85.333h512.427c46.933 0 85.333 38.4 85.333 85.333v512l-256 256h-341.333zM554.667 554.667v234.667l234.667-234.667h-234.667z" /> | ||
422 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333zM661.333 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM362.667 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM512 192c99.413 0 183.893 62.293 218.027 149.333h-436.053c34.133-87.040 118.613-149.333 218.027-149.333z" /> | ||
423 | <glyph unicode="" d="M725.333 426.667h-213.333v-213.333h213.333v213.333zM682.667 896v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-42.667v85.333h-85.333zM810.667 128h-597.333v469.333h597.333v-469.333z" /> | ||
424 | <glyph unicode="" d="M166.4 426.667c0 72.96 59.307 132.267 132.267 132.267h170.667v81.067h-170.667c-117.76 0-213.333-95.573-213.333-213.333s95.573-213.333 213.333-213.333h170.667v81.067h-170.667c-72.96 0-132.267 59.307-132.267 132.267zM341.333 384h341.333v85.333h-341.333v-85.333zM725.333 640h-170.667v-81.067h170.667c72.96 0 132.267-59.307 132.267-132.267s-59.307-132.267-132.267-132.267h-170.667v-81.067h170.667c117.76 0 213.333 95.573 213.333 213.333s-95.573 213.333-213.333 213.333z" /> | ||
425 | <glyph unicode="" d="M896 128v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333zM362.667 362.667l106.667-128.427 149.333 192.427 192-256h-597.333l149.333 192z" /> | ||
426 | <glyph unicode="" d="M725.333 67.84l60.16 60.16-145.493 145.493-60.16-60.16 145.493-145.493zM320 597.334h149.333v-238.507l-230.827-230.827 60.16-60.16 256 256v273.493h149.333l-192 192-192-192z" /> | ||
427 | <glyph unicode="" d="M938.24 768c0 46.933-37.973 85.333-84.907 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h597.333l170.667-170.667-0.427 768z" /> | ||
428 | <glyph unicode="" d="M128 202.667v-160h160l471.893 471.893-160 160-471.893-471.893zM883.627 638.294c16.64 16.64 16.64 43.52 0 60.16l-99.84 99.84c-16.64 16.64-43.52 16.64-60.16 0l-78.080-78.080 160-160 78.080 78.080z" /> | ||
429 | <glyph unicode="" d="M213.333 768v-85.333h597.333v85.333h-597.333zM213.333 341.334h170.667v-256h256v256h170.667l-298.667 298.667-298.667-298.667z" /> | ||
430 | <glyph unicode="" d="M682.667 384h-128v426.667h-85.333v-426.667h-128l170.667-170.667 170.667 170.667zM170.667 128v-85.333h682.667v85.333h-682.667z" /> | ||
431 | <glyph unicode="" d="M341.333 128h128v-170.667h85.333v170.667h128l-170.667 170.667-170.667-170.667zM682.667 725.334h-128v170.667h-85.333v-170.667h-128l170.667-170.667 170.667 170.667zM170.667 469.334v-85.333h682.667v85.333h-682.667z" /> | ||
432 | <glyph unicode="" d="M341.333 469.334h128v-426.667h85.333v426.667h128l-170.667 170.667-170.667-170.667zM170.667 810.667v-85.333h682.667v85.333h-682.667z" /> | ||
433 | <glyph unicode="" d="M170.667 128h256v85.333h-256v-85.333zM853.333 725.334h-682.667v-85.333h682.667v85.333zM725.333 469.334h-554.667v-85.333h565.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333h-96v85.333l-128-128 128-128v85.333h85.333c94.293 0 170.667 76.373 170.667 170.667s-76.373 170.667-170.667 170.667z" /> | ||
434 | <glyph unicode="" d="M320 170.667c-129.707 0-234.667 104.96-234.667 234.667s104.96 234.667 234.667 234.667h448c94.293 0 170.667-76.373 170.667-170.667s-76.373-170.667-170.667-170.667h-362.667c-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667h320v-64h-320c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667h362.667c58.88 0 106.667 47.787 106.667 106.667s-47.787 106.667-106.667 106.667h-448c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667h405.333v-64h-405.333z" /> | ||
435 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM704 256h-362.667c-70.827 0-128 57.173-128 128s57.173 128 128 128l5.973-0.427c18.773 73.813 84.907 128.427 164.693 128.427 94.293 0 170.667-76.373 170.667-170.667h21.333c58.88 0 106.667-47.787 106.667-106.667s-47.787-106.667-106.667-106.667z" /> | ||
436 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-230.4-69.973-283.733-172.373-128.427-13.653-228.267-122.453-228.267-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627zM426.667 213.334l-149.333 149.333 60.16 60.16 89.173-88.747 221.013 220.587 60.16-60.16-281.173-281.173z" /> | ||
437 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-230.4-69.973-283.733-172.373-128.427-13.653-228.267-122.453-228.267-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627zM725.333 384l-213.333-213.333-213.333 213.333h128v170.667h170.667v-170.667h128z" /> | ||
438 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-63.147 0-121.6-18.347-171.093-49.92l62.293-62.293c32.427 17.067 69.547 26.88 108.8 26.88 129.707 0 234.667-104.96 234.667-234.667v-21.333h64c70.827 0 128-57.173 128-128 0-48.213-27.307-90.027-66.56-111.787l61.867-61.867c54.187 38.827 90.027 101.973 90.027 173.653 0 112.64-87.467 203.947-198.4 211.627zM128 713.814l117.333-116.907c-136.107-5.973-245.333-117.76-245.333-255.573 0-141.227 114.773-256 256-256h500.48l85.333-85.333 54.187 54.187-713.813 713.813-54.187-54.187zM329.813 512l341.333-341.333h-415.147c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667h73.813z" /> | ||
439 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-230.4-69.973-283.733-172.373-128.427-13.653-228.267-122.453-228.267-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627zM810.667 170.667h-554.667c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667h30.293c28.16 98.56 118.187 170.667 225.707 170.667 129.707 0 234.667-104.96 234.667-234.667v-21.333h64c70.827 0 128-57.173 128-128s-57.173-128-128-128z" /> | ||
440 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-230.4-69.973-283.733-172.373-128.427-13.653-228.267-122.453-228.267-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627zM597.333 384v-170.667h-170.667v170.667h-128l213.333 213.333 213.333-213.333h-128z" /> | ||
441 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-230.4-69.973-283.733-172.373-128.427-13.653-228.267-122.453-228.267-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627z" /> | ||
442 | <glyph unicode="" d="M810.667 554.667h-170.667v256h-256v-256h-170.667l298.667-298.667 298.667 298.667zM213.333 170.667v-85.333h597.333v85.333h-597.333z" /> | ||
443 | <glyph unicode="" d="M384 256h256v256h170.667l-298.667 298.667-298.667-298.667h170.667zM213.333 170.667h597.333v-85.333h-597.333z" /> | ||
444 | <glyph unicode="" d="M853.333 682.667h-341.333l-85.333 85.333h-256c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM853.333 170.667h-682.667v426.667h682.667v-426.667z" /> | ||
445 | <glyph unicode="" d="M853.333 682.667h-341.333l-85.333 85.333h-256c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM640 554.667c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333-85.333 38.4-85.333 85.333 38.4 85.333 85.333 85.333zM810.667 213.334h-341.333v42.667c0 56.747 113.92 85.333 170.667 85.333s170.667-28.587 170.667-85.333v-42.667z" /> | ||
446 | <glyph unicode="" d="M426.667 768h-256c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333h-341.333l-85.333 85.333z" /> | ||
447 | <glyph unicode="" d="M42.667 170.667v-128h128c0 70.827-57.173 128-128 128zM42.667 341.334v-85.333c117.76 0 213.333-95.573 213.333-213.333h85.333c0 165.12-133.547 298.667-298.667 298.667zM810.667 640h-597.333v-69.547c168.96-54.613 302.507-188.16 357.12-357.12h240.213v426.667zM42.667 512v-85.333c212.053 0 384-171.947 384-384h85.333c0 259.413-210.347 469.333-469.333 469.333zM896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-128h85.333v128h768v-597.333h-298.667v-85.333h298.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
448 | <glyph unicode="" d="M896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-128h85.333v128h768v-597.333h-298.667v-85.333h298.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM42.667 170.667v-128h128c0 70.827-57.173 128-128 128zM42.667 341.334v-85.333c117.76 0 213.333-95.573 213.333-213.333h85.333c0 165.12-133.547 298.667-298.667 298.667zM42.667 512v-85.333c212.053 0 384-171.947 384-384h85.333c0 259.413-210.347 469.333-469.333 469.333z" /> | ||
449 | <glyph unicode="" d="M853.333 170.667c46.933 0 84.907 38.4 84.907 85.333l0.427 426.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h-170.667v-85.333h1024v85.333h-170.667zM170.667 682.667h682.667v-426.667h-682.667v426.667z" /> | ||
450 | <glyph unicode="" d="M896 853.334h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h298.667l-85.333-128v-42.667h341.333v42.667l-85.333 128h298.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM896 341.334h-768v426.667h768v-426.667z" /> | ||
451 | <glyph unicode="" d="M896 853.334h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h298.667v-85.333h-85.333v-85.333h341.333v85.333h-85.333v85.333h298.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM896 256h-768v512h768v-512z" /> | ||
452 | <glyph unicode="" d="M341.333-42.666h341.333v85.333h-341.333v-85.333zM682.667 895.574l-341.333 0.427c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h341.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 84.907-85.333 84.907zM682.667 298.667h-341.333v426.667h341.333v-426.667z" /> | ||
453 | <glyph unicode="" d="M640 618.667v234.667h-256v-234.667l128-128 128 128zM320 554.667h-234.667v-256h234.667l128 128-128 128zM384 234.667v-234.667h256v234.667l-128 128-128-128zM704 554.667l-128-128 128-128h234.667v256h-234.667z" /> | ||
454 | <glyph unicode="" d="M512 896c-212.053 0-384-171.947-384-384v-298.667c0-70.827 57.173-128 128-128h128v341.333h-170.667v85.333c0 165.12 133.547 298.667 298.667 298.667s298.667-133.547 298.667-298.667v-85.333h-170.667v-341.333h170.667v-42.667h-298.667v-85.333h256c70.827 0 128 57.173 128 128v426.667c0 212.053-171.947 384-384 384z" /> | ||
455 | <glyph unicode="" d="M512 896c-212.053 0-384-171.947-384-384v-298.667c0-70.827 57.173-128 128-128h128v341.333h-170.667v85.333c0 165.12 133.547 298.667 298.667 298.667s298.667-133.547 298.667-298.667v-85.333h-170.667v-341.333h128c70.827 0 128 57.173 128 128v298.667c0 212.053-171.947 384-384 384z" /> | ||
456 | <glyph unicode="" d="M661.333 512c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM362.667 512c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM512 213.334c111.36 0 206.080 71.253 241.067 170.667h-482.133c34.987-99.413 129.707-170.667 241.067-170.667zM511.573 896c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM512 128c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333z" /> | ||
457 | <glyph unicode="" d="M316.16 604.16l195.84-195.413 195.84 195.413 60.16-60.16-256-256-256 256z" /> | ||
458 | <glyph unicode="" d="M657.493 252.16l-195.413 195.84 195.413 195.84-60.16 60.16-256-256 256-256z" /> | ||
459 | <glyph unicode="" d="M366.507 241.494l195.413 195.84-195.413 195.84 60.16 60.16 256-256-256-256z" /> | ||
460 | <glyph unicode="" d="M316.16 281.174l195.84 195.413 195.84-195.413 60.16 60.16-256 256-256-256z" /> | ||
461 | <glyph unicode="" d="M896 469.334h-604.587l152.747 153.173-60.16 60.16-256-256 256-256 60.16 60.16-152.747 153.173h604.587z" /> | ||
462 | <glyph unicode="" d="M512 579.84l195.84-195.84 60.16 60.16-256 256-256-256 60.16-60.16 195.84 195.84zM256 170.667h512v85.333h-512v-85.333z" /> | ||
463 | <glyph unicode="" d="M256 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM512 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
464 | <glyph unicode="" d="M853.333 810.667h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-426.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM469.333 682.667h85.333v-85.333h-85.333v85.333zM469.333 554.667h85.333v-85.333h-85.333v85.333zM341.333 682.667h85.333v-85.333h-85.333v85.333zM341.333 554.667h85.333v-85.333h-85.333v85.333zM298.667 469.334h-85.333v85.333h85.333v-85.333zM298.667 597.334h-85.333v85.333h85.333v-85.333zM682.667 298.667h-341.333v85.333h341.333v-85.333zM682.667 469.334h-85.333v85.333h85.333v-85.333zM682.667 597.334h-85.333v85.333h85.333v-85.333zM810.667 469.334h-85.333v85.333h85.333v-85.333zM810.667 597.334h-85.333v85.333h85.333v-85.333zM512-42.666l170.667 170.667h-341.333l170.667-170.667z" /> | ||
465 | <glyph unicode="" d="M810.667 640v-170.667h-561.92l152.747 153.173-60.16 60.16-256-256 256-256 60.16 60.16-152.747 153.173h647.253v256z" /> | ||
466 | <glyph unicode="" d="M494.507 622.507l152.747-153.173h-604.587v-85.333h604.587l-153.173-153.173 60.587-60.16 256 256-256 256-60.16-60.16zM853.333 682.667v-512h85.333v512h-85.333z" /> | ||
467 | <glyph unicode="" d="M512 298.667c70.827 0 127.573 57.173 127.573 128l0.427 256c0 70.827-57.173 128-128 128s-128-57.173-128-128v-256c0-70.827 57.173-128 128-128zM738.133 426.667c0-128-108.373-217.6-226.133-217.6s-226.133 89.6-226.133 217.6h-72.533c0-145.92 116.053-265.813 256-286.72v-139.947h85.333v139.947c139.947 20.48 256 140.8 256 286.72h-72.533z" /> | ||
468 | <glyph unicode="" d="M853.333 725.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-426.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM469.333 597.334h85.333v-85.333h-85.333v85.333zM469.333 469.334h85.333v-85.333h-85.333v85.333zM341.333 597.334h85.333v-85.333h-85.333v85.333zM341.333 469.334h85.333v-85.333h-85.333v85.333zM298.667 384h-85.333v85.333h85.333v-85.333zM298.667 512h-85.333v85.333h85.333v-85.333zM682.667 213.334h-341.333v85.333h341.333v-85.333zM682.667 384h-85.333v85.333h85.333v-85.333zM682.667 512h-85.333v85.333h85.333v-85.333zM810.667 384h-85.333v85.333h85.333v-85.333zM810.667 512h-85.333v85.333h85.333v-85.333z" /> | ||
469 | <glyph unicode="" d="M938.667 170.667v640h-853.333v-640h-85.333v-85.333h1024v85.333h-85.333zM597.333 170.667h-170.667v42.667h170.667v-42.667zM853.333 298.667h-682.667v426.667h682.667v-426.667z" /> | ||
470 | <glyph unicode="" d="M853.333 170.667c46.933 0 84.907 38.4 84.907 85.333l0.427 469.333c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-469.333c0-46.933 38.4-85.333 85.333-85.333h-170.667c0-46.933 38.4-85.333 85.333-85.333h853.333c46.933 0 85.333 38.4 85.333 85.333h-170.667zM170.667 725.334h682.667v-469.333h-682.667v469.333zM512 128c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667z" /> | ||
471 | <glyph unicode="" d="M853.333 170.667v42.667c46.933 0 84.907 38.4 84.907 85.333l0.427 426.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333v-42.667h-170.667v-85.333h1024v85.333h-170.667zM170.667 725.334h682.667v-426.667h-682.667v426.667z" /> | ||
472 | <glyph unicode="" d="M853.333 170.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h-170.667v-85.333h1024v85.333h-170.667zM170.667 682.667h682.667v-426.667h-682.667v426.667z" /> | ||
473 | <glyph unicode="" d="M640 554.667h-256v-256h256v256zM554.667 384h-85.333v85.333h85.333v-85.333zM896 469.334v85.333h-85.333v85.333c0 46.933-38.4 85.333-85.333 85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333c-46.933 0-85.333-38.4-85.333-85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333c0-46.933 38.4-85.333 85.333-85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333c46.933 0 85.333 38.4 85.333 85.333v85.333h85.333v85.333h-85.333v85.333h85.333zM725.333 213.334h-426.667v426.667h426.667v-426.667z" /> | ||
474 | <glyph unicode="" d="M554.667 893.014v-338.347h298.667c0 174.080-130.133 317.44-298.667 338.347zM170.667 298.667c0-188.587 152.747-341.333 341.333-341.333s341.333 152.747 341.333 341.333v170.667h-682.667v-170.667zM469.333 893.014c-168.533-20.907-298.667-164.267-298.667-338.347h298.667v338.347z" /> | ||
475 | <glyph unicode="" d="M682.667 896h-341.333c-70.827 0-128-57.173-128-128v-682.667c0-70.827 57.173-128 128-128h341.333c70.827 0 128 57.173 128 128v682.667c0 70.827-57.173 128-128 128zM597.333 42.667h-170.667v42.667h170.667v-42.667zM736 170.667h-448v597.333h448v-597.333z" /> | ||
476 | <glyph unicode="" d="M661.333 896h-341.333c-58.88 0-106.667-47.787-106.667-106.667v-725.333c0-58.88 47.787-106.667 106.667-106.667h341.333c58.88 0 106.667 47.787 106.667 106.667v725.333c0 58.88-47.787 106.667-106.667 106.667zM490.667-0c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM682.667 170.667h-384v597.333h384v-597.333z" /> | ||
477 | <glyph unicode="" d="M938.667 682.667v85.333h-647.68l85.333-85.333h562.347zM81.92 868.267l-54.187-54.187 77.653-77.653c-12.373-14.507-20.053-33.28-20.053-53.76v-469.333h-85.333v-128h756.48l100.267-100.267 54.187 54.187-829.013 829.013zM170.667 671.147l457.813-457.813h-457.813v457.813zM981.333 597.334h-256c-23.467 0-42.667-19.2-42.667-42.667v-178.347l85.333-85.333v221.013h170.667v-298.667h-93.013l128-128h7.68c23.467 0 42.667 19.2 42.667 42.667v426.667c0 23.467-19.2 42.667-42.667 42.667z" /> | ||
478 | <glyph unicode="" d="M170.667 682.667h768v85.333h-768c-46.933 0-85.333-38.4-85.333-85.333v-469.333h-85.333v-128h597.333v128h-426.667v469.333zM981.333 597.334h-256c-23.467 0-42.667-19.2-42.667-42.667v-426.667c0-23.467 19.2-42.667 42.667-42.667h256c23.467 0 42.667 19.2 42.667 42.667v426.667c0 23.467-19.2 42.667-42.667 42.667zM938.667 213.334h-170.667v298.667h170.667v-298.667z" /> | ||
479 | <glyph unicode="" d="M512 896l-384-170.667v-256c0-236.8 163.84-458.24 384-512 220.16 53.76 384 275.2 384 512v256l-384 170.667zM512 427.094h298.667c-22.613-175.787-139.947-332.373-298.667-381.44v381.013h-298.667v243.2l298.667 132.693v-375.467z" /> | ||
480 | <glyph unicode="" d="M852.907 768c0 46.933-37.973 85.333-84.907 85.333h-341.333l-256-256v-512c0-46.933 38.4-85.333 85.333-85.333h512.427c46.933 0 84.907 38.4 84.907 85.333l-0.427 682.667zM384 128h-85.333v85.333h85.333v-85.333zM725.333 128h-85.333v85.333h85.333v-85.333zM384 298.667h-85.333v170.667h85.333v-170.667zM554.667 128h-85.333v170.667h85.333v-170.667zM554.667 384h-85.333v85.333h85.333v-85.333zM725.333 298.667h-85.333v170.667h85.333v-170.667z" /> | ||
481 | <glyph unicode="" d="M725.333 895.574l-426.667 0.427c-46.933 0-85.333-38.4-85.333-85.333v-768c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v768c0 46.933-38.4 84.907-85.333 84.907zM725.333 128h-426.667v597.333h426.667v-597.333z" /> | ||
482 | <glyph unicode="" d="M725.333 853.334h-426.667c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-84.907 85.333-84.907l426.667-0.427c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM512 768c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333c-47.36 0-85.333 38.4-85.333 85.333s37.973 85.333 85.333 85.333zM512 85.334c-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333-95.573-213.333-213.333-213.333zM512 426.667c-70.827 0-128-57.173-128-128s57.173-128 128-128 128 57.173 128 128-57.173 128-128 128z" /> | ||
483 | <glyph unicode="" d="M768 938.667h-512c-70.827 0-128-57.173-128-128v-768c0-70.827 57.173-128 128-128h512c70.827 0 128 57.173 128 128v768c0 70.827-57.173 128-128 128zM597.333-0h-170.667v42.667h170.667v-42.667zM821.333 128h-618.667v682.667h618.667v-682.667z" /> | ||
484 | <glyph unicode="" d="M789.333 938.667h-597.333c-58.88 0-106.667-47.787-106.667-106.667v-810.667c0-58.88 47.787-106.667 106.667-106.667h597.333c58.88 0 106.667 47.787 106.667 106.667v810.667c0 58.88-47.787 106.667-106.667 106.667zM490.667-42.666c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM810.667 128h-640v682.667h640v-682.667z" /> | ||
485 | <glyph unicode="" d="M896 768h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 84.907 38.4 84.907 85.333l0.427 512c0 46.933-38.4 85.333-85.333 85.333zM810.667 170.667h-597.333v512h597.333v-512z" /> | ||
486 | <glyph unicode="" d="M896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h213.333v-85.333h341.333v85.333h213.333c46.933 0 84.907 38.4 84.907 85.333l0.427 512c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-768v512h768v-512z" /> | ||
487 | <glyph unicode="" d="M853.333 426.667c0 108.373-50.773 205.227-129.707 267.52l-40.96 244.48h-341.333l-40.533-244.48c-79.36-62.293-130.133-158.72-130.133-267.52s50.773-205.227 130.133-267.52l40.533-244.48h341.333l40.96 244.48c78.933 62.293 129.707 159.147 129.707 267.52zM256 426.667c0 141.227 114.773 256 256 256s256-114.773 256-256-114.773-256-256-256-256 114.773-256 256z" /> | ||
488 | <glyph unicode="" d="M170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM810.667 469.334h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333z" /> | ||
489 | <glyph unicode="" d="M512 853.334c-235.093 0-426.667-191.573-426.667-426.667s191.573-426.667 426.667-426.667 426.667 191.573 426.667 426.667-191.573 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333zM640 426.667c0-70.827-57.173-128-128-128s-128 57.173-128 128 57.173 128 128 128 128-57.173 128-128z" /> | ||
490 | <glyph unicode="" d="M614.4 682.667l-17.067 85.333h-384v-725.333h85.333v298.667h238.933l17.067-85.333h298.667v426.667z" /> | ||
491 | <glyph unicode="" d="M512 810.667v-395.947c-20.053 7.253-41.387 11.947-64 11.947-106.24 0-192-85.76-192-192s85.76-192 192-192c98.56 0 179.2 74.667 189.867 170.667h2.133v469.333h170.667v128h-298.667z" /> | ||
492 | <glyph unicode="" d="M426.667 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM426.667 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM298.667 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM426.667 234.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM298.667 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM426.667 618.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM597.333 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM597.333 618.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM725.333 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM725.333 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333zM597.333 234.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM597.333 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667z" /> | ||
493 | <glyph unicode="" d="M213.333 192c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM384 384c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM384 554.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM128 42.667h768v85.333h-768v-85.333zM213.333 533.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM213.333 362.667c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM384 213.334c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM725.333 234.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM128 810.667v-85.333h768v85.333h-768zM725.333 576c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM725.333 405.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM554.667 554.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM554.667 384c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM554.667 213.334c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667z" /> | ||
494 | <glyph unicode="" d="M597.333 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM588.8 448.854l8.533-0.853c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64l0.853-8.533c3.84-28.587 26.027-50.773 54.613-54.613zM597.333 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM426.667 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM896 490.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM426.667 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM768 298.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM768 469.334c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM768 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM597.333 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM106.667 713.814l161.28-161.28-11.947 2.133c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667c0 4.267-1.28 8.107-2.56 11.947l119.893-119.893c-30.293-4.693-53.333-31.147-53.333-62.72 0-35.413 28.587-64 64-64 31.573 0 58.027 23.040 62.72 53.333l119.893-119.893c-3.84 1.28-7.68 2.56-11.947 2.56-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667c0 4.267-1.28 8.107-2.56 11.947l161.28-161.28 54.613 54.187-692.48 692.48-54.187-54.187zM426.667 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM896 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM256 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM128 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM426.667 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM256 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM128 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333z" /> | ||
495 | <glyph unicode="" d="M256 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM256 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM256 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM128 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM256 725.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM896 490.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM597.333 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM597.333 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM128 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM426.667 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM426.667 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333-21.333-9.387-21.333-21.333 9.387-21.333 21.333-21.333zM426.667 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667-42.667-19.2-42.667-42.667 19.2-42.667 42.667-42.667zM426.667 405.334c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64zM768 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM768 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM768 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM768 725.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM896 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM597.333 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM597.333 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333 21.333 9.387 21.333 21.333-9.387 21.333-21.333 21.333zM426.667 576c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64zM426.667 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667 42.667 19.2 42.667 42.667-19.2 42.667-42.667 42.667zM597.333 405.334c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64zM597.333 576c-35.413 0-64-28.587-64-64s28.587-64 64-64 64 28.587 64 64-28.587 64-64 64z" /> | ||
496 | <glyph unicode="" d="M938.667 426.667c0-235.641-191.025-426.667-426.667-426.667s-426.667 191.025-426.667 426.667c0 235.641 191.025 426.667 426.667 426.667s426.667-191.025 426.667-426.667z" /> | ||
497 | <glyph unicode="" d="M426.667 853.334c-77.653 0-150.613-21.333-213.333-57.6 127.573-73.813 213.333-211.2 213.333-369.067s-85.76-295.253-213.333-369.067c62.72-36.267 135.68-57.6 213.333-57.6 235.52 0 426.667 191.147 426.667 426.667s-191.147 426.667-426.667 426.667z" /> | ||
498 | <glyph unicode="" d="M384 853.334c-44.8 0-87.467-6.827-128-19.627 173.227-54.187 298.667-215.893 298.667-407.040s-125.44-352.853-298.667-407.040c40.533-12.8 83.2-19.627 128-19.627 235.52 0 426.667 191.147 426.667 426.667s-191.147 426.667-426.667 426.667z" /> | ||
499 | <glyph unicode="" d="M853.333 567.894v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107l141.227 141.227-141.227 141.227zM512 170.667c-37.973 0-74.24 8.533-106.667 23.467 87.893 40.533 149.333 129.28 149.333 232.533s-61.44 192-149.333 232.533c32.427 14.933 68.693 23.467 106.667 23.467 141.227 0 256-114.773 256-256s-114.773-256-256-256z" /> | ||
500 | <glyph unicode="" d="M853.333 285.44l141.227 141.227-141.227 141.227v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107zM512 170.667c-141.227 0-256 114.773-256 256s114.773 256 256 256 256-114.773 256-256-114.773-256-256-256z" /> | ||
501 | <glyph unicode="" d="M853.333 285.44l141.227 141.227-141.227 141.227v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107zM512 170.667v512c141.227 0 256-114.773 256-256s-114.773-256-256-256z" /> | ||
502 | <glyph unicode="" d="M853.333 567.894v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107l141.227 141.227-141.227 141.227zM512 170.667c-141.227 0-256 114.773-256 256s114.773 256 256 256 256-114.773 256-256-114.773-256-256-256zM512 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667z" /> | ||
503 | <glyph unicode="" d="M298.667 341.334c-70.827 0-128-57.173-128-128 0-55.893-49.493-85.333-85.333-85.333 39.253-52.053 106.24-85.333 170.667-85.333 94.293 0 170.667 76.373 170.667 170.667 0 70.827-57.173 128-128 128zM883.627 741.12l-57.173 57.173c-16.64 16.64-43.52 16.64-60.16 0l-382.293-382.293 117.333-117.333 382.293 382.293c16.64 16.64 16.64 43.52 0 60.16z" /> | ||
504 | <glyph unicode="" d="M648.533 426.667c0-75.405-61.128-136.533-136.533-136.533s-136.533 61.128-136.533 136.533c0 75.405 61.128 136.533 136.533 136.533s136.533-61.128 136.533-136.533zM384 853.334l-78.080-85.333h-135.253c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333h-135.253l-78.080 85.333h-256zM512 213.334c-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333-95.573-213.333-213.333-213.333z" /> | ||
505 | <glyph unicode="" d="M426.667 85.334h-213.333v-85.333h213.333v-85.333l128 128-128 128v-85.333zM597.333 85.334v-85.333h213.333v85.333h-213.333zM512 597.334c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333-84.907-38.4-84.907-85.333 37.973-85.333 84.907-85.333zM725.333 938.667h-426.667c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM298.667 853.334h426.667v-448c0 71.253-142.080 106.667-213.333 106.667s-213.333-35.413-213.333-106.667v448z" /> | ||
506 | <glyph unicode="" d="M426.667 85.334h-213.333v-85.333h213.333v-85.333l128 128-128 128v-85.333zM597.333 85.334v-85.333h213.333v85.333h-213.333zM725.333 938.667h-426.667c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 682.667c-47.36 0-85.333 38.4-85.333 85.333s37.973 85.333 84.907 85.333 85.333-38.4 85.333-85.333c0.427-46.933-37.973-85.333-84.907-85.333z" /> | ||
507 | <glyph unicode="" d="M597.333 725.334c0 46.933-38.4 85.333-85.333 85.333h-42.667v42.667c0 23.467-19.2 42.667-42.667 42.667h-170.667c-23.467 0-42.667-19.2-42.667-42.667v-42.667h-42.667c-46.933 0-85.333-38.4-85.333-85.333v-640c0-46.933 38.4-85.333 85.333-85.333h341.333c46.933 0 85.333 38.4 85.333 85.333h341.333v640h-341.333zM512 170.667h-85.333v85.333h85.333v-85.333zM512 554.667h-85.333v85.333h85.333v-85.333zM682.667 170.667h-85.333v85.333h85.333v-85.333zM682.667 554.667h-85.333v85.333h85.333v-85.333zM853.333 170.667h-85.333v85.333h85.333v-85.333zM853.333 554.667h-85.333v85.333h85.333v-85.333z" /> | ||
508 | <glyph unicode="" d="M401.067 490.667l203.52 352.427c-29.867 6.4-60.587 10.24-92.587 10.24-102.4 0-196.267-36.267-269.653-96l156.16-270.933 2.56 4.267zM919.040 554.667c-39.253 124.587-134.4 224.427-256 270.507l-156.16-270.507h412.16zM930.133 512h-319.573l12.373-21.333 203.093-352c69.973 75.947 112.64 176.64 112.64 288 0 29.44-2.987 57.6-8.533 85.333zM364.373 426.667l-166.4 288c-69.547-75.947-112.64-176.64-112.64-288 0-29.44 2.987-57.6 8.533-85.333h319.573l-49.067 85.333zM104.96 298.667c39.253-124.587 134.4-224.427 256-270.507l156.16 270.507h-412.16zM585.813 298.667l-166.4-288.427c29.867-6.4 60.587-10.24 92.587-10.24 102.4 0 196.267 36.267 269.653 96l-156.16 270.933-39.68-68.267z" /> | ||
509 | <glyph unicode="" d="M512 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM213.333 298.667h-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h170.667v85.333h-170.667v170.667zM213.333 725.334h170.667v85.333h-170.667c-46.933 0-85.333-38.4-85.333-85.333v-170.667h85.333v170.667zM810.667 810.667h-170.667v-85.333h170.667v-170.667h85.333v170.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v170.667h-85.333v-170.667z" /> | ||
510 | <glyph unicode="" d="M213.333 298.667h-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h170.667v85.333h-170.667v170.667zM213.333 725.334h170.667v85.333h-170.667c-46.933 0-85.333-38.4-85.333-85.333v-170.667h85.333v170.667zM810.667 810.667h-170.667v-85.333h170.667v-170.667h85.333v170.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v170.667h-85.333v-170.667zM512 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM512 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333z" /> | ||
511 | <glyph unicode="" d="M938.667 256v512c0 46.933-38.4 85.333-85.333 85.333h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333zM469.333 426.667l86.613-115.627 126.72 158.293 170.667-213.333h-512l128 170.667zM85.333 682.667v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333h-85.333z" /> | ||
512 | <glyph unicode="" d="M512 810.667c-212.053 0-384-171.947-384-384s171.947-384 384-384c35.413 0 64 28.587 64 64 0 16.64-6.4 31.573-16.64 43.093-9.813 11.093-16.213 26.027-16.213 42.24 0 35.413 28.587 64 64 64h75.52c117.76 0 213.333 95.573 213.333 213.333 0 188.587-171.947 341.333-384 341.333zM277.333 426.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM405.333 597.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM618.667 597.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM746.667 426.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64z" /> | ||
513 | <glyph unicode="" d="M883.627 698.454l-99.84 99.84c-16.64 16.64-43.52 16.64-60.16 0l-133.12-133.12-82.347 81.493-60.16-60.16 60.587-60.587-380.587-380.587v-202.667h202.667l380.587 380.587 60.587-60.587 60.16 60.16-81.92 81.92 133.12 133.12c17.067 17.067 17.067 43.947 0.427 60.587zM295.253 128l-81.92 81.92 343.893 343.893 81.92-81.92-343.893-343.893z" /> | ||
514 | <glyph unicode="" d="M426.667 810.667h-213.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h213.333v-85.333h85.333v938.667h-85.333v-85.333zM426.667 170.667h-213.333l213.333 256v-256zM810.667 810.667h-213.333v-85.333h213.333v-554.667l-213.333 256v-384h213.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
515 | <glyph unicode="" d="M682.667 597.334h-85.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128zM85.333 426.667c0 119.040 69.973 221.867 171.093 269.653v92.16c-148.907-52.907-256.427-194.987-256.427-361.813s107.52-308.907 256.427-361.813v92.16c-101.12 47.787-171.093 150.613-171.093 269.653zM640 810.667c-211.627 0-384-172.373-384-384s172.373-384 384-384 384 172.373 384 384-172.373 384-384 384zM640 128c-164.693 0-298.667 133.973-298.667 298.667s133.973 298.667 298.667 298.667 298.667-133.973 298.667-298.667-133.973-298.667-298.667-298.667z" /> | ||
516 | <glyph unicode="" d="M554.667 640h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667v170.667zM512 853.334c-235.093 0-426.667-191.573-426.667-426.667s191.573-426.667 426.667-426.667 426.667 191.573 426.667 426.667-191.573 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333z" /> | ||
517 | <glyph unicode="" d="M810.667 768h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM810.667 170.667h-597.333v512h597.333v-512z" /> | ||
518 | <glyph unicode="" d="M810.667 725.334h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 213.334h-597.333v426.667h597.333v-426.667z" /> | ||
519 | <glyph unicode="" d="M810.667 640h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-256c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v256c0 46.933-38.4 85.333-85.333 85.333zM810.667 298.667h-597.333v256h597.333v-256z" /> | ||
520 | <glyph unicode="" d="M810.667 682.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-341.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v341.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 256h-597.333v341.333h597.333v-341.333z" /> | ||
521 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v597.333h597.333v-597.333z" /> | ||
522 | <glyph unicode="" d="M128 725.334v-170.667h85.333v170.667h170.667v85.333h-170.667c-46.933 0-85.333-38.4-85.333-85.333zM213.333 298.667h-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h170.667v85.333h-170.667v170.667zM810.667 128h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v170.667h-85.333v-170.667zM810.667 810.667h-170.667v-85.333h170.667v-170.667h85.333v170.667c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
523 | <glyph unicode="" d="M810.667 725.334h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-426.667c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 213.334h-597.333v426.667h597.333v-426.667z" /> | ||
524 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v597.333h597.333v-597.333zM595.627 414.294l-117.333-151.040-83.627 100.693-117.333-150.613h469.333l-151.040 200.96z" /> | ||
525 | <glyph unicode="" d="M725.333 810.667h-426.667c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM725.333 128h-426.667v597.333h426.667v-597.333z" /> | ||
526 | <glyph unicode="" d="M768 768h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM768 170.667h-512v512h512v-512z" /> | ||
527 | <glyph unicode="" d="M725.333 298.667h85.333v341.333c0 46.933-38.4 85.333-85.333 85.333h-341.333v-85.333h341.333v-341.333zM298.667 213.334v682.667h-85.333v-170.667h-170.667v-85.333h170.667v-426.667c0-46.933 38.4-85.333 85.333-85.333h426.667v-170.667h85.333v170.667h170.667v85.333h-682.667z" /> | ||
528 | <glyph unicode="" d="M85.333 277.334v-85.333h853.333v85.333h-853.333zM85.333 490.667v-85.333h853.333v85.333h-853.333zM85.333 704v-85.333h853.333v85.333h-853.333z" /> | ||
529 | <glyph unicode="" d="M128 768l384-682.667 384 682.667h-768zM272.213 682.667h480l-240.213-426.667-239.787 426.667z" /> | ||
530 | <glyph unicode="" d="M128 202.667v-160h160l471.893 471.893-160 160-471.893-471.893zM883.627 638.294c16.64 16.64 16.64 43.52 0 60.16l-99.84 99.84c-16.64 16.64-43.52 16.64-60.16 0l-78.080-78.080 160-160 78.080 78.080z" /> | ||
531 | <glyph unicode="" d="M170.667 469.334v-85.333h341.333v85.333h-341.333zM810.667 170.667h-85.333v453.12l-128-43.52v72.533l200.533 72.533h12.8v-554.667z" /> | ||
532 | <glyph unicode="" d="M642.133 243.627l122.027 130.987c16.213 16.64 30.72 33.707 44.373 50.347s25.173 33.28 34.987 49.92c9.813 16.64 17.493 33.28 23.040 49.92s8.107 33.707 8.107 50.347c0 22.613-3.84 43.52-11.52 62.293s-18.773 34.56-33.28 47.36c-14.507 13.227-32.853 23.040-53.76 30.293-21.76 6.827-46.080 10.24-73.387 10.24-29.44 0-55.893-4.693-78.933-13.653s-42.667-21.76-58.027-37.547c-15.787-15.787-27.733-34.133-35.84-55.467-7.68-20.053-11.52-41.387-11.947-64h91.307c0.427 13.227 2.133 25.6 5.547 37.12 3.84 12.373 9.813 23.040 17.067 32 7.68 8.96 17.493 15.787 29.013 20.907s25.6 7.68 40.96 7.68c13.227 0 24.747-2.133 34.56-6.4s18.347-10.667 25.173-18.347c6.827-7.68 11.947-17.067 15.787-27.733 3.413-10.667 5.547-22.187 5.547-34.56 0-9.387-1.28-18.347-3.413-27.733-2.56-9.387-6.4-19.2-12.373-29.867s-13.653-22.613-23.893-35.413c-9.813-12.8-22.187-27.733-37.547-43.947l-177.92-194.133v-63.573h368.213v72.96h-253.867zM85.333 469.334v-85.333h341.333v85.333h-341.333z" /> | ||
533 | <glyph unicode="" d="M426.667 640h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667v170.667zM853.333 170.667h-85.333v453.12l-128-43.52v72.533l200.533 72.533h12.8v-554.667z" /> | ||
534 | <glyph unicode="" d="M684.8 243.627l122.027 130.987c16.213 16.64 30.72 33.707 44.373 50.347s25.173 33.28 34.987 49.92c9.813 16.64 17.493 33.28 23.040 49.92s8.107 33.707 8.107 50.347c0 22.613-3.84 43.52-11.52 62.293s-18.773 34.56-33.28 47.36c-14.507 13.227-32.853 23.040-53.76 30.293-21.76 6.827-46.080 10.24-73.387 10.24-29.44 0-55.893-4.693-78.933-13.653s-42.667-21.76-58.027-37.547c-15.787-15.787-27.733-34.133-35.84-55.467-7.68-20.053-11.52-41.387-11.947-64h91.307c0.427 13.227 2.133 25.6 5.547 37.12 3.84 12.373 9.813 23.040 17.067 32 7.68 8.96 17.493 15.787 29.013 20.907s25.6 7.68 40.96 7.68c13.227 0 24.747-2.133 34.56-6.4s18.347-10.667 25.173-18.347c6.827-7.68 11.947-17.067 15.787-27.733 3.413-10.667 5.547-22.187 5.547-34.56 0-9.387-1.28-18.347-3.413-27.733-2.56-9.387-6.4-19.2-12.373-29.867s-13.653-22.613-23.893-35.413c-9.813-12.8-22.187-27.733-37.547-43.947l-177.92-194.133v-63.573h368.213v72.96h-253.867zM341.333 640h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667v170.667z" /> | ||
535 | <glyph unicode="" d="M688.64 405.334c0-42.667-4.267-78.933-12.8-108.8s-20.48-54.187-35.413-72.533c-15.36-18.773-33.707-32-55.467-40.533s-45.653-12.8-72.533-12.8c-26.453 0-50.347 4.267-72.107 12.8s-40.533 21.76-55.893 40.533c-15.36 18.773-27.733 43.093-36.267 72.533-8.533 29.867-12.8 66.133-12.8 108.8v87.040c0 42.667 4.267 78.933 12.8 108.8s20.48 53.76 35.84 72.107c15.36 18.347 34.133 31.573 55.893 39.68 21.333 8.107 45.653 12.373 72.107 12.373 26.88 0 50.773-4.267 72.533-12.373s40.533-21.333 55.893-39.68c15.36-18.347 27.307-42.24 35.84-72.107s12.8-65.707 12.8-108.8v-87.040zM598.613 506.027c0 27.307-2.133 50.347-5.547 69.12-3.84 18.773-9.387 33.707-17.067 45.227-7.253 11.52-16.64 19.627-27.307 24.747-10.667 5.547-23.040 8.107-36.693 8.107s-26.027-2.56-36.693-7.68-20.053-13.227-27.307-24.747c-7.253-11.52-13.227-26.453-17.067-45.227s-5.547-41.813-5.547-69.12v-113.92c0-27.307 2.133-50.347 5.973-69.12 3.84-19.2 9.813-34.56 17.067-46.507s16.64-20.48 27.307-26.027 23.040-8.107 37.12-8.107c14.080 0 26.453 2.56 37.12 8.107s19.627 14.080 26.88 26.027c7.253 11.947 12.8 27.307 16.64 46.507s5.547 42.24 5.547 69.12v113.493z" /> | ||
536 | <glyph unicode="" d="M640 213.334v-85.333h85.333v85.333h85.333v85.333h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333zM853.333 853.334h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM213.333 725.334h256v-85.333h-256v85.333zM853.333 85.334h-682.667l682.667 682.667v-682.667z" /> | ||
537 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM597.333 298.667h85.333v426.667h-170.667v-85.333h85.333v-341.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333z" /> | ||
538 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333zM725.333 384h-170.667v85.333h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-170.667h256v85.333z" /> | ||
539 | <glyph unicode="" d="M896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM725.333 384v64c0 35.413-28.587 64-64 64 35.413 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-85.333v-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333z" /> | ||
540 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM640 298.667h85.333v426.667h-85.333v-170.667h-85.333v170.667h-85.333v-256h170.667v-170.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333z" /> | ||
541 | <glyph unicode="" d="M896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM725.333 384v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667v85.333h-256v-256h170.667v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333z" /> | ||
542 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333zM554.667 298.667h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667v85.333h-170.667c-46.933 0-85.333-37.973-85.333-85.333v-256c0-47.36 38.4-85.333 85.333-85.333zM554.667 469.334h85.333v-85.333h-85.333v85.333z" /> | ||
543 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333zM554.667 298.667l170.667 341.333v85.333h-256v-85.333h170.667l-170.667-341.333h85.333z" /> | ||
544 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333zM554.667 298.667h85.333c46.933 0 85.333 37.973 85.333 85.333v64c0 35.413-28.587 64-64 64 35.413 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-64c0-35.413 28.587-64 64-64-35.413 0-64-28.587-64-64v-64c0-47.36 38.4-85.333 85.333-85.333zM554.667 640h85.333v-85.333h-85.333v85.333zM554.667 469.334h85.333v-85.333h-85.333v85.333z" /> | ||
545 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM597.333 426.667v170.667c0 47.36-38.4 85.333-85.333 85.333h-42.667c-46.933 0-85.333-37.973-85.333-85.333v-42.667c0-47.36 38.4-85.333 85.333-85.333h42.667v-42.667h-128v-85.333h128c46.933 0 85.333 37.973 85.333 85.333zM469.333 554.667v42.667h42.667v-42.667h-42.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 554.667h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-85.333h85.333v85.333h85.333v-256h-597.333v597.333h597.333v-256z" /> | ||
546 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333zM640 725.334h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-85.333c0-47.36 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333v256c0 47.36-38.4 85.333-85.333 85.333zM640 554.667h-85.333v85.333h85.333v-85.333z" /> | ||
547 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128l-298.667 341.333v-341.333h-298.667l298.667 341.333v256h298.667v-597.333z" /> | ||
548 | <glyph unicode="" d="M213.333 298.667h-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h170.667v85.333h-170.667v170.667zM213.333 725.334h170.667v85.333h-170.667c-46.933 0-85.333-38.4-85.333-85.333v-170.667h85.333v170.667zM810.667 810.667h-170.667v-85.333h170.667v-170.667h85.333v170.667c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v170.667h-85.333v-170.667zM512 554.667c-70.827 0-128-57.173-128-128s57.173-128 128-128 128 57.173 128 128-57.173 128-128 128z" /> | ||
549 | <glyph unicode="" d="M825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-229.973-69.973-283.307-172.373-128.427-13.653-228.693-122.027-228.693-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627zM810.667 170.667h-554.667c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667 170.667-76.373 170.667-170.667h85.333c0 117.76-79.36 216.747-187.733 246.613 43.093 57.173 110.933 94.72 187.733 94.72 129.28 0 234.667-105.387 234.667-234.667v-21.333h64c70.4 0 128-57.6 128-128s-57.6-128-128-128z" /> | ||
550 | <glyph unicode="" d="M853.333 768h-170.667l-170.667 170.667-170.667-170.667h-170.667c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM853.333 85.334h-682.667v597.333h192.853l150.187 149.333 148.48-149.333h191.147v-597.333zM768 597.334h-512v-426.667h512z" /> | ||
551 | <glyph unicode="" d="M597.333 682.667l-160-213.333 121.6-162.133-68.267-51.2c-72.107 96-192 256-192 256l-256-341.333h938.667l-384 512z" /> | ||
552 | <glyph unicode="" d="M128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333z" /> | ||
553 | <glyph unicode="" d="M469.333 765.014v86.187c-85.76-8.533-163.84-42.667-226.987-94.293l60.587-61.013c47.36 36.693 104.107 61.44 166.4 69.12zM781.653 756.907c-63.147 51.627-141.227 85.76-226.987 94.293v-86.187c62.293-7.68 119.040-32.427 166.4-69.12l60.587 61.013zM850.347 469.334h86.187c-8.533 85.76-42.667 163.84-94.293 226.987l-61.013-60.587c36.693-47.36 61.44-104.107 69.12-166.4zM242.773 635.734l-61.013 60.587c-51.627-63.147-85.76-141.227-94.293-226.987h86.187c7.68 62.293 32.427 119.040 69.12 166.4zM173.653 384h-86.187c8.533-85.76 42.667-163.84 94.293-226.987l61.013 61.013c-36.693 46.933-61.44 103.68-69.12 165.973zM640 426.667c0 70.827-57.173 128-128 128s-128-57.173-128-128 57.173-128 128-128 128 57.173 128 128zM781.227 217.6l61.013-61.013c51.627 63.147 85.76 141.653 94.293 226.987h-86.187c-7.68-61.867-32.427-118.613-69.12-165.973zM554.667 88.32v-86.187c85.76 8.533 163.84 42.667 226.987 94.293l-61.013 61.013c-46.933-36.693-103.68-61.44-165.973-69.12zM242.347 96.427c63.147-51.627 141.653-85.76 226.987-94.293v86.187c-62.293 7.68-119.040 32.427-166.4 69.12l-60.587-61.013z" /> | ||
554 | <glyph unicode="" d="M797.867 409.6c-11.947 6.827-24.32 12.373-36.693 17.067 12.373 4.693 24.747 10.24 36.693 17.067 81.92 47.36 127.573 133.12 128 221.44-76.373 43.947-173.653 47.36-256 0-11.947-6.827-23.040-14.933-33.28-23.040 2.133 13.227 3.413 26.88 3.413 40.533 0 94.72-51.627 177.067-128 221.44-76.373-44.373-128-126.72-128-221.44 0-13.653 1.28-27.307 3.413-40.533-10.24 8.533-21.333 16.64-33.28 23.467-81.92 47.36-179.2 43.947-256 0 0-88.32 45.653-174.080 128-221.44 11.947-6.827 24.32-12.373 36.693-17.067-12.373-4.693-24.747-10.24-36.693-17.067-81.92-47.36-127.573-133.12-128-221.44 76.373-43.947 173.653-47.36 256 0 11.947 6.827 23.040 14.933 33.28 23.040-2.133-13.653-3.413-27.307-3.413-40.96 0-94.72 51.627-177.067 128-221.44 76.373 44.373 128 126.72 128 221.44 0 13.653-1.28 27.307-3.413 40.533 10.24-8.533 21.333-16.213 33.28-23.040 81.92-47.36 179.2-43.947 256 0-0.427 88.32-46.080 174.080-128 221.44zM512 256c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667 170.667-76.373 170.667-170.667-76.373-170.667-170.667-170.667z" /> | ||
555 | <glyph unicode="" d="M680.96 499.627l-117.333-151.040-83.627 100.693-117.333-150.613h469.333l-151.040 200.96zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333v-597.333z" /> | ||
556 | <glyph unicode="" d="M298.667 469.334h-256v-85.333h256v85.333zM391.253 607.574l-90.453 90.453-60.16-60.16 90.453-90.453 60.16 60.16zM554.667 896h-85.333v-256h85.333v256zM783.36 637.867l-60.16 60.16-90.453-90.453 60.16-60.16 90.453 90.453zM725.333 469.334v-85.333h256v85.333h-256zM512 554.667c-70.827 0-128-57.173-128-128s57.173-128 128-128 128 57.173 128 128-57.173 128-128 128zM632.747 245.76l90.453-90.453 60.16 60.16-90.453 90.453-60.16-60.16zM240.64 215.467l60.16-60.16 90.453 90.453-60.16 60.16-90.453-90.453zM469.333-42.666h85.333v256h-85.333v-256z" /> | ||
557 | <glyph unicode="" d="M128 853.334v-512h128v-384l298.667 512h-170.667l170.667 384h-426.667zM810.667 853.334h-85.333l-136.533-384h81.067l29.867 85.333h136.533l29.867-85.333h81.067l-136.533 384zM718.933 612.267l49.067 155.733 49.067-155.733h-98.133z" /> | ||
558 | <glyph unicode="" d="M139.52 810.667l-54.187-54.187 213.333-213.333v-159.147h128v-384l152.747 261.973 177.067-176.64 54.187 54.187-671.147 671.147zM725.333 512h-170.667l170.667 341.333h-426.667v-93.013l360.96-360.96 65.707 112.64z" /> | ||
559 | <glyph unicode="" d="M298.667 853.334v-469.333h128v-384l298.667 512h-170.667l170.667 341.333z" /> | ||
560 | <glyph unicode="" d="M640 42.667h85.333v85.333h-85.333v-85.333zM810.667 554.667h85.333v85.333h-85.333v-85.333zM128 725.334v-597.333c0-46.933 38.4-85.333 85.333-85.333h170.667v85.333h-170.667v597.333h170.667v85.333h-170.667c-46.933 0-85.333-38.4-85.333-85.333zM810.667 810.667v-85.333h85.333c0 46.933-38.4 85.333-85.333 85.333zM469.333-42.666h85.333v938.667h-85.333v-938.667zM810.667 213.334h85.333v85.333h-85.333v-85.333zM640 725.334h85.333v85.333h-85.333v-85.333zM810.667 384h85.333v85.333h-85.333v-85.333zM810.667 42.667c46.933 0 85.333 38.4 85.333 85.333h-85.333v-85.333z" /> | ||
561 | <glyph unicode="" d="M469.333 554.667h85.333v-85.333h-85.333zM384 469.334h85.333v-85.333h-85.333zM554.667 469.334h85.333v-85.333h-85.333zM640 554.667h85.333v-85.333h-85.333zM298.667 554.667h85.333v-85.333h-85.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM384 170.667h-85.333v85.333h85.333v-85.333zM554.667 170.667h-85.333v85.333h85.333v-85.333zM725.333 170.667h-85.333v85.333h85.333v-85.333zM810.667 469.334h-85.333v-85.333h85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h85.333v85.333h-85.333v256h597.333v-256z" /> | ||
562 | <glyph unicode="" d="M426.667 426.667c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM256 597.334c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM256 256c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 597.334c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333-85.333-38.4-85.333-85.333 38.4-85.333 85.333-85.333zM597.333 256c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 426.667c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM597.333 597.334c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM426.667 768c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
563 | <glyph unicode="" d="M341.333 768v-61.867l85.333-85.333v147.2h170.667v-170.667h-147.2l85.333-85.333h61.867v-61.867l85.333-85.333v147.2h170.667v-170.667h-147.2l85.333-85.333h61.867v-61.867l85.333-85.333v659.2c0 46.933-38.4 85.333-85.333 85.333h-659.2l85.333-85.333h61.867zM682.667 768h170.667v-170.667h-170.667v170.667zM54.187 884.48l-54.187-54.613 85.333-85.333v-659.2c0-46.933 38.4-85.333 85.333-85.333h659.627l85.333-85.333 54.187 54.187-915.627 915.627zM426.667 403.2l61.867-61.867h-61.867v61.867zM170.667 659.2l61.867-61.867h-61.867v61.867zM341.333 85.334h-170.667v170.667h170.667v-170.667zM341.333 341.334h-170.667v170.667h147.2l23.467-23.467v-147.2zM597.333 85.334h-170.667v170.667h147.2l23.467-23.040v-147.627zM682.667 85.334v62.293l62.293-62.293h-62.293z" /> | ||
564 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM341.333 85.334h-170.667v170.667h170.667v-170.667zM341.333 341.334h-170.667v170.667h170.667v-170.667zM341.333 597.334h-170.667v170.667h170.667v-170.667zM597.333 85.334h-170.667v170.667h170.667v-170.667zM597.333 341.334h-170.667v170.667h170.667v-170.667zM597.333 597.334h-170.667v170.667h170.667v-170.667zM853.333 85.334h-170.667v170.667h170.667v-170.667zM853.333 341.334h-170.667v170.667h170.667v-170.667zM853.333 597.334h-170.667v170.667h170.667v-170.667z" /> | ||
565 | <glyph unicode="" d="M768 213.334l-628.48 628.48-54.187-54.613 170.667-170.667v-147.2h-85.333v170.667h-85.333v-426.667h85.333v170.667h85.333v-170.667h85.333v317.867l42.667-42.667v-275.2h170.667c28.587 0 53.76 14.080 69.12 35.84l270.507-270.507 54.187 54.187-180.48 180.48zM554.667 298.667h-85.333v104.533l85.333-85.333v-19.2zM768 384h42.667l34.987-139.52 31.147-31.147h61.867l-50.773 177.92c29.867 13.227 50.773 43.093 50.773 78.080v85.333c0 46.933-38.4 85.333-85.333 85.333h-170.667v-232.533l85.333-85.333v61.867zM768 554.667h85.333v-85.333h-85.333v85.333zM640 450.134v104.533c0 46.933-38.4 85.333-85.333 85.333h-104.533l189.867-189.867z" /> | ||
566 | <glyph unicode="" d="M256 469.334h-85.333v170.667h-85.333v-426.667h85.333v170.667h85.333v-170.667h85.333v426.667h-85.333v-170.667zM554.667 640h-170.667v-426.667h170.667c46.933 0 85.333 38.4 85.333 85.333v256c0 46.933-38.4 85.333-85.333 85.333zM554.667 298.667h-85.333v256h85.333v-256zM938.667 469.334v85.333c0 46.933-38.4 85.333-85.333 85.333h-170.667v-426.667h85.333v170.667h42.667l42.667-170.667h85.333l-50.773 177.92c29.867 13.227 50.773 43.093 50.773 78.080zM853.333 469.334h-85.333v85.333h85.333v-85.333z" /> | ||
567 | <glyph unicode="" d="M725.333 682.667c-141.227 0-256-114.773-256-256s114.773-256 256-256 256 114.773 256 256-114.773 256-256 256zM213.333 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM213.333 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333z" /> | ||
568 | <glyph unicode="" d="M213.333 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM725.333 682.667c-141.227 0-256-114.773-256-256s114.773-256 256-256 256 114.773 256 256-114.773 256-256 256zM725.333 256c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667 170.667-76.373 170.667-170.667-76.373-170.667-170.667-170.667z" /> | ||
569 | <glyph unicode="" d="M756.48 425.814l169.813 169.813c16.64 16.64 16.64 43.52 0 60.16l-185.173 185.173c-16.64 16.64-43.52 16.64-60.16 0l-169.813-169.813-169.813 169.813c-8.533 8.107-19.2 12.373-30.293 12.373-10.667 0-21.76-4.267-29.867-12.373l-185.173-185.173c-16.64-16.64-16.64-43.52 0-60.16l169.813-169.813-169.813-169.813c-16.64-16.64-16.64-43.52 0-60.16l185.173-185.173c16.64-16.64 43.52-16.64 60.16 0l169.813 169.813 169.813-169.813c8.533-8.533 19.2-12.373 30.293-12.373s21.76 4.267 30.293 12.373l185.173 185.173c16.64 16.64 16.64 43.52 0 60.16l-170.24 169.813zM512 554.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM311.040 471.040l-154.88 154.453 154.88 154.88 154.453-154.453-154.453-154.88zM426.667 384c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667zM512 298.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667zM597.333 469.334c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM710.827 70.827l-154.88 154.453 154.88 154.88 154.453-154.453-154.453-154.88z" /> | ||
570 | <glyph unicode="" d="M682.667 512h-85.333v-85.333h85.333v85.333zM682.667 341.334h-85.333v-85.333h85.333v85.333zM341.333 512h-85.333v-85.333h85.333v85.333zM512 512h-85.333v-85.333h85.333v85.333zM853.333 768h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM853.333 170.667h-682.667v512h682.667v-512z" /> | ||
571 | <glyph unicode="" d="M896 128v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333zM362.667 362.667l106.667-128.427 149.333 192.427 192-256h-597.333l149.333 192z" /> | ||
572 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM234.667 618.667h85.333v85.333h64v-85.333h85.333v-64h-85.333v-85.333h-64v85.333h-85.333v64zM810.667 128h-597.333l597.333 597.333v-597.333zM725.333 213.334v64h-213.333v-64h213.333z" /> | ||
573 | <glyph unicode="" d="M597.333 682.667l-160-213.333 121.6-162.133-68.267-51.2c-72.107 96-192 256-192 256l-256-341.333h938.667l-384 512z" /> | ||
574 | <glyph unicode="" d="M256 810.667h-128v-128c70.827 0 128 57.173 128 128zM597.333 810.667h-85.333c0-212.053-171.947-384-384-384v-85.333c259.413 0 469.333 210.347 469.333 469.333zM426.667 810.667h-85.333c0-117.76-95.573-213.333-213.333-213.333v-85.333c165.12 0 298.667 133.547 298.667 298.667zM426.667 42.667h85.333c0 212.053 171.947 384 384 384v85.333c-258.987 0-469.333-210.347-469.333-469.333zM768 42.667h128v128c-70.827 0-128-57.173-128-128zM597.333 42.667h85.333c0 117.76 95.573 213.333 213.333 213.333v85.333c-165.12 0-298.667-133.547-298.667-298.667z" /> | ||
575 | <glyph unicode="" d="M426.667 810.667h-85.333c0-15.787-1.707-30.72-5.12-45.227l67.84-67.84c14.507 34.56 22.613 72.96 22.613 113.067zM128 756.48l121.173-121.173c-34.56-23.893-75.947-37.973-121.173-37.973v-85.333c68.693 0 131.84 23.467 182.187 62.293l61.013-61.013c-66.56-54.187-151.040-86.613-243.2-86.613v-85.333c115.627 0 221.44 42.24 303.36 111.787l106.667-106.667c-69.12-82.347-111.36-188.16-111.36-303.787h85.333c0 92.16 32.427 176.64 86.613 242.773l61.013-61.013c-38.827-49.92-62.293-113.067-62.293-181.76h85.333c0 45.227 14.080 86.613 37.973 121.173l121.173-121.173 54.187 54.187-713.813 713.813-54.187-54.187zM597.333 810.667h-85.333c0-64-15.787-124.16-43.52-177.493l62.293-62.293c41.813 69.973 66.56 151.893 66.56 239.787zM850.773 250.88c14.507 3.413 29.44 5.12 45.227 5.12v85.333c-40.107 0-78.507-8.107-113.493-22.187l68.267-68.267zM656.213 445.44l62.293-62.293c53.333 27.733 113.493 43.52 177.493 43.52v85.333c-87.893 0-169.813-24.747-239.787-66.56z" /> | ||
576 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667z" /> | ||
577 | <glyph unicode="" d="M811.093 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM640.427 490.667c0-35.413-28.587-64-64-64 35.413 0 64-28.587 64-64v-64c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-85.333v85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-64z" /> | ||
578 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM640 213.334h-85.333v170.667h-170.667v256h85.333v-170.667h85.333v170.667h85.333v-426.667z" /> | ||
579 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM640 554.667h-170.667v-85.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-170.667v256h256v-85.333z" /> | ||
580 | <glyph unicode="" d="M469.333 298.667h85.333v85.333h-85.333v-85.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM640 554.667h-170.667v-85.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v256c0 47.36 38.4 85.333 85.333 85.333h170.667v-85.333z" /> | ||
581 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM597.333 213.334h-85.333v341.333h-85.333v85.333h170.667v-426.667z" /> | ||
582 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM640 469.334c0-47.36-38.4-85.333-85.333-85.333h-85.333v-85.333h170.667v-85.333h-256v170.667c0 47.36 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-85.333z" /> | ||
583 | <glyph unicode="" d="M512 512c-164.693 0-298.667-133.973-298.667-298.667h85.333c0 117.76 95.573 213.333 213.333 213.333s213.333-95.573 213.333-213.333h85.333c0 164.693-133.973 298.667-298.667 298.667zM512 682.667c-258.987 0-469.333-210.347-469.333-469.333h85.333c0 211.627 172.373 384 384 384s384-172.373 384-384h85.333c0 258.987-210.347 469.333-469.333 469.333z" /> | ||
584 | <glyph unicode="" d="M554.667 640h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667v170.667zM512 853.334c-235.093 0-426.667-191.573-426.667-426.667s191.573-426.667 426.667-426.667h341.333c46.933 0 85.333 38.4 85.333 85.333v341.333c0 235.093-191.573 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333z" /> | ||
585 | <glyph unicode="" d="M768 768l85.333-170.667h-128l-85.333 170.667h-85.333l85.333-170.667h-128l-85.333 170.667h-85.333l85.333-170.667h-128l-85.333 170.667h-42.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v597.333h-170.667z" /> | ||
586 | <glyph unicode="" d="M945.92 547.414c0 165.12-133.547 298.667-298.667 298.667s-298.667-133.547-298.667-298.667c0-148.053 107.52-270.507 248.747-293.973v-168.107h-341.333v128h42.667v170.667c0 23.467-19.2 42.667-42.667 42.667h-128c-23.467 0-42.667-19.2-42.667-42.667v-170.667h42.667v-213.333h682.667v85.333h-128v165.547c148.053 17.493 263.253 143.36 263.253 296.533zM192 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64z" /> | ||
587 | <glyph unicode="" d="M554.667 250.88c148.053 17.493 263.253 143.36 263.253 296.533 0 165.12-133.547 298.667-298.667 298.667s-298.667-133.547-298.667-298.667c0-148.053 107.52-270.507 248.747-293.973v-168.107h-256v-85.333h597.333v85.333h-256v165.547z" /> | ||
588 | <glyph unicode="" d="M657.493 622.507l-60.16 60.16-256-256 256-256 60.16 60.16-195.413 195.84z" /> | ||
589 | <glyph unicode="" d="M426.667 682.667l-60.16-60.16 195.413-195.84-195.413-195.84 60.16-60.16 256 256z" /> | ||
590 | <glyph unicode="" d="M512 810.667c-212.053 0-384-171.947-384-384s171.947-384 384-384c35.413 0 64 28.587 64 64 0 16.64-6.4 31.573-16.64 43.093-9.813 11.093-16.213 26.027-16.213 42.24 0 35.413 28.587 64 64 64h75.52c117.76 0 213.333 95.573 213.333 213.333 0 188.587-171.947 341.333-384 341.333zM277.333 426.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM405.333 597.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM618.667 597.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM746.667 426.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64z" /> | ||
591 | <glyph unicode="" d="M512 853.334c-235.947 0-426.667-190.72-426.667-426.667s190.72-426.667 426.667-426.667 426.667 190.72 426.667 426.667-190.72 426.667-426.667 426.667zM512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333 341.333-153.173 341.333-341.333-153.173-341.333-341.333-341.333z" /> | ||
592 | <glyph unicode="" d="M853.333 659.627v-465.493c-110.933 32.853-225.28 49.493-341.333 49.493s-230.4-16.64-341.333-49.493v465.493c110.933-32.853 225.28-49.493 341.333-49.493 116.053-0.427 230.4 16.213 341.333 49.493zM914.347 768c-4.267 0-8.533-0.853-13.227-2.56-125.44-46.933-257.28-69.973-389.12-69.973s-263.68 23.467-389.12 69.973c-4.693 1.707-9.387 2.56-13.227 2.56-14.507 0-24.32-9.813-24.32-26.88v-629.333c0-16.64 9.813-26.453 24.32-26.453 4.267 0 8.533 0.853 13.227 2.56 125.44 46.933 257.28 69.973 389.12 69.973s263.68-23.467 389.12-69.973c4.693-1.707 8.96-2.56 13.227-2.56 14.080 0 24.32 9.813 24.32 26.88v628.907c0 17.067-10.24 26.88-24.32 26.88z" /> | ||
593 | <glyph unicode="" d="M850.773 37.547c-46.933 125.44-69.973 257.28-69.973 389.12s23.467 263.68 69.973 389.12c1.707 4.693 2.56 9.387 2.56 13.227 0 14.507-9.813 24.32-26.88 24.32h-628.907c-17.067 0-26.88-9.813-26.88-24.32 0-4.267 0.853-8.533 2.56-13.227 46.933-125.44 70.4-257.28 70.4-389.12s-23.467-263.68-69.973-389.12c-2.133-4.693-2.987-9.387-2.987-13.227 0-14.080 9.813-24.32 26.88-24.32h629.333c16.64 0 26.88 10.24 26.88 24.32-0.427 4.267-1.28 8.533-2.987 13.227zM279.040 85.334c32.853 110.933 49.493 225.28 49.493 341.333s-16.64 230.4-49.493 341.333h465.493c-32.853-110.933-49.493-225.28-49.493-341.333s16.64-230.4 49.493-341.333h-465.493z" /> | ||
594 | <glyph unicode="" d="M512 682.667c104.533 0 200.96-8.533 311.040-27.307 20.053-75.947 30.293-152.747 30.293-228.693s-10.24-152.747-30.293-228.693c-110.080-18.773-206.507-27.307-311.040-27.307s-200.96 8.533-311.040 27.307c-20.053 75.947-30.293 152.747-30.293 228.693s10.24 152.747 30.293 228.693c110.080 18.773 206.507 27.307 311.040 27.307zM512 768c-116.48 0-222.72-10.24-339.2-30.72l-39.68-6.827-10.667-38.4c-24.747-88.32-37.12-177.067-37.12-265.387s12.373-177.067 37.12-265.387l10.667-37.973 39.68-6.827c116.48-20.907 222.72-31.147 339.2-31.147s222.72 10.24 339.2 30.72l39.68 6.827 10.667 37.973c24.747 88.747 37.12 177.493 37.12 265.813s-12.373 177.067-37.12 265.387l-10.667 37.973-39.68 6.827c-116.48 20.907-222.72 31.147-339.2 31.147z" /> | ||
595 | <glyph unicode="" d="M981.333 170.667v512c0 46.933-38.4 85.333-85.333 85.333h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333zM362.667 405.334l106.667-128.427 149.333 192.427 192-256h-597.333l149.333 192z" /> | ||
596 | <glyph unicode="" d="M768 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM256 768h213.333v-341.333l-106.667 64-106.667-64v341.333zM256 128l128 164.693 91.307-110.080 128 164.693 164.693-219.307h-512z" /> | ||
597 | <glyph unicode="" d="M648.533 426.667c0-75.405-61.128-136.533-136.533-136.533s-136.533 61.128-136.533 136.533c0 75.405 61.128 136.533 136.533 136.533s136.533-61.128 136.533-136.533zM384 853.334l-78.080-85.333h-135.253c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333h-135.253l-78.080 85.333h-256zM512 213.334c-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333-95.573-213.333-213.333-213.333z" /> | ||
598 | <glyph unicode="" d="M938.667 256v512c0 46.933-38.4 85.333-85.333 85.333h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333zM469.333 426.667l86.613-115.627 126.72 158.293 170.667-213.333h-512l128 170.667zM85.333 682.667v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333h-85.333z" /> | ||
599 | <glyph unicode="" d="M896 128v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333zM362.667 362.667l106.667-128.427 149.333 192.427 192-256h-597.333l149.333 192z" /> | ||
600 | <glyph unicode="" d="M512 416c52.907 0 96 43.093 96 96s-43.093 96-96 96-96-43.093-96-96 43.093-96 96-96zM704 245.334c0 64-128 96-192 96s-192-32-192-96v-32h384v32zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v597.333h597.333v-597.333z" /> | ||
601 | <glyph unicode="" d="M512 746.667c-213.333 0-395.52-132.693-469.333-320 73.813-187.307 256-320 469.333-320s395.52 132.693 469.333 320c-73.813 187.307-256 320-469.333 320zM512 213.334c-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333-95.573-213.333-213.333-213.333zM512 554.667c-70.827 0-128-57.173-128-128s57.173-128 128-128 128 57.173 128 128-57.173 128-128 128z" /> | ||
602 | <glyph unicode="" d="M303.36 574.72l-60.16 60.587c-38.4-49.493-62.293-106.667-69.547-165.973h86.187c5.973 37.12 20.907 73.387 43.52 105.387zM259.84 384h-86.187c7.253-59.307 30.72-116.48 69.12-165.973l60.16 60.587c-22.187 32-37.12 67.84-43.093 105.387zM302.933 157.014c49.493-38.4 107.093-61.44 166.4-68.693v86.613c-37.12 6.4-72.96 20.907-104.96 43.947l-61.44-61.867zM554.667 765.014v130.987l-194.133-194.133 194.133-189.867v166.827c121.173-20.48 213.333-125.44 213.333-252.16s-92.16-231.68-213.333-252.16v-86.187c168.533 20.907 298.667 164.267 298.667 338.347s-130.133 317.44-298.667 338.347z" /> | ||
603 | <glyph unicode="" d="M663.467 701.867l-194.133 194.133v-130.987c-168.107-20.907-298.667-164.267-298.667-338.347s130.133-317.44 298.667-338.347v86.187c-121.173 20.48-213.333 125.44-213.333 252.16s92.16 231.68 213.333 252.16v-166.827l194.133 189.867zM850.347 469.334c-7.253 59.307-30.72 116.48-69.12 165.973l-60.587-60.587c23.040-32 37.547-68.267 43.52-105.387h86.187zM554.667 174.934v-86.187c59.307 7.253 116.907 30.293 166.4 68.693l-61.44 61.44c-32-23.040-67.84-37.973-104.96-43.947zM720.64 278.187l60.587-60.16c38.4 49.493 61.867 106.667 69.12 165.973h-86.187c-5.973-37.12-20.48-73.387-43.52-105.813z" /> | ||
604 | <glyph unicode="" d="M426.667 597.334v-341.333l213.333 170.667-213.333 170.667zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v597.333h597.333v-597.333z" /> | ||
605 | <glyph unicode="" d="M896 682.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-341.333c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333v341.333c0 46.933-38.4 85.333-85.333 85.333zM896 256h-768v341.333h85.333v-170.667h85.333v170.667h85.333v-170.667h85.333v170.667h85.333v-170.667h85.333v170.667h85.333v-170.667h85.333v170.667h85.333v-341.333z" /> | ||
606 | <glyph unicode="" d="M107.947 100.267l57.173-23.893v385.28l-103.68-250.027c-17.493-43.52 3.413-93.44 46.507-111.36zM939.947 258.134l-211.627 510.72c-13.227 32-44.373 51.627-77.227 52.48-11.093 0-22.613-1.707-33.707-6.4l-314.453-130.133c-32-13.227-51.627-43.947-52.48-76.8-0.427-11.52 1.707-23.040 6.4-34.133l211.627-510.72c13.227-32.427 44.8-52.053 78.080-52.48 11.093 0 22.187 2.133 32.853 6.4l314.027 130.133c43.52 17.92 64.427 67.84 46.507 110.933zM336.213 565.334c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667zM250.88 96c0-46.933 38.4-85.333 85.333-85.333h61.867l-147.2 355.84v-270.507z" /> | ||
607 | <glyph unicode="" d="M853.333 768h-135.253l-78.080 85.333h-256l-78.080-85.333h-135.253c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM640 277.334v106.667h-256v-106.667l-149.333 149.333 149.333 149.333v-106.667h256v106.667l149.333-149.333-149.333-149.333z" /> | ||
608 | <glyph unicode="" d="M768 533.334v149.333c0 23.467-19.2 42.667-42.667 42.667h-597.333c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h597.333c23.467 0 42.667 19.2 42.667 42.667v149.333l170.667-170.667v554.667l-170.667-170.667zM554.667 277.334v106.667h-256v-106.667l-149.333 149.333 149.333 149.333v-106.667h256v106.667l149.333-149.333-149.333-149.333z" /> | ||
609 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333zM661.333 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM362.667 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM512 192c99.413 0 183.893 62.293 218.027 149.333h-436.053c34.133-87.040 118.613-149.333 218.027-149.333z" /> | ||
610 | <glyph unicode="" d="M832.427 807.254l-701.013-701.013c3.84-14.507 11.52-27.733 21.76-38.4 10.667-10.24 23.893-17.92 38.4-21.76l701.44 701.013c-8.107 29.44-31.147 52.48-60.587 60.16zM506.88 810.667l-378.88-378.88v-120.747l499.627 499.627h-120.747zM213.333 810.667c-46.933 0-85.333-38.4-85.333-85.333v-85.333l170.667 170.667h-85.333zM810.667 42.667c23.467 0 44.8 9.387 60.16 25.173 15.787 15.36 25.173 36.693 25.173 60.16v85.333l-170.667-170.667h85.333zM396.373 42.667h120.747l378.88 378.88v120.747l-499.627-499.627z" /> | ||
611 | <glyph unicode="" d="M692.907 607.574c-49.92 49.92-115.2 75.093-180.907 75.093v-256l-180.907-180.907c99.84-99.84 261.973-99.84 362.24 0 99.84 99.84 99.84 261.973-0.427 361.813zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333z" /> | ||
612 | <glyph unicode="" d="M495.36 385.28c-6.827 10.24-15.36 19.627-26.453 27.733-10.667 8.107-23.893 14.933-39.68 20.48 12.8 5.973 24.32 12.8 34.133 21.333s17.92 17.493 24.32 27.307c6.4 9.813 11.52 19.627 14.507 30.293 3.413 10.24 4.693 20.907 4.693 31.147 0 23.467-3.84 44.373-11.947 62.293-7.68 17.92-18.773 32.853-33.28 45.227-14.080 11.947-31.147 21.333-51.2 27.307-19.2 5.547-41.387 8.533-65.28 8.533-23.467 0-45.227-3.413-64.853-10.24-20.053-7.253-37.12-17.067-51.2-29.44s-25.6-26.88-33.28-43.947c-8.533-16.64-12.373-35.413-12.373-55.040h84.48c0 11.093 2.133 20.907 5.973 29.44s9.387 16.213 16.213 22.187c7.253 5.973 15.36 10.667 24.747 14.080s19.627 5.12 31.147 5.12c26.027 0 45.227-6.827 58.027-20.053s18.773-32 18.773-56.32c0-11.52-1.707-22.187-5.12-31.573s-8.96-17.493-16.213-24.32c-7.253-6.827-16.213-11.947-26.88-15.787s-23.467-5.547-37.973-5.547h-49.92v-66.987h50.347c14.507 0 27.307-1.707 38.827-4.693 11.52-3.413 21.333-8.107 29.44-14.933s14.507-15.36 18.773-26.027c4.267-10.24 6.827-23.040 6.827-37.12 0-26.453-7.68-46.507-22.613-60.587s-35.84-20.907-61.867-20.907c-12.373 0-23.893 1.707-34.133 5.547-10.24 3.413-18.773 8.533-26.027 15.36s-12.8 14.507-16.64 23.893c-3.84 9.387-5.973 19.627-5.973 30.72h-84.907c0-23.467 4.693-43.947 13.653-61.867s21.333-32.853 36.693-44.8 32.853-20.907 52.907-26.88 40.96-8.96 63.147-8.96c24.32 0 46.507 3.413 67.413 9.813s38.827 16.213 53.76 29.013c15.36 12.8 27.307 28.16 35.84 46.933 8.533 18.347 12.8 39.68 12.8 63.147 0 12.373-1.707 24.747-4.693 36.693-3.413 10.667-8.107 21.76-14.933 32.427zM890.453 325.547c-5.973 11.947-14.933 22.613-26.88 31.573s-26.027 16.64-43.093 22.613-36.267 11.52-57.6 16.213c-14.933 2.987-27.307 6.4-37.12 9.813s-17.493 6.827-23.467 10.667c-5.973 3.84-9.813 8.107-11.947 12.8s-3.413 10.24-3.413 16.64 1.28 11.947 3.84 17.493c2.56 5.547 6.4 10.667 11.52 14.507 5.12 4.267 11.52 7.68 19.2 10.24s17.067 3.84 27.307 3.84c10.667 0 20.053-1.707 28.16-4.693s14.933-7.253 20.48-12.373c5.547-5.12 9.387-11.093 12.373-17.92 2.56-6.827 4.267-13.653 4.267-20.907h83.2c0 16.64-3.413 32-10.24 46.507s-16.64 26.88-29.44 37.547c-12.8 10.667-28.16 18.773-46.507 25.173s-39.253 9.387-62.293 9.387c-21.76 0-41.813-2.987-59.307-8.96s-32.853-14.080-45.227-24.32c-12.373-10.24-21.76-22.187-28.587-35.84s-9.813-27.733-9.813-43.093 3.413-29.013 9.813-40.96c6.4-11.947 15.787-22.187 27.307-31.147s25.6-16.213 41.813-22.613c16.213-5.973 34.56-11.093 54.187-15.36 16.64-3.413 30.293-7.253 40.533-11.093s18.347-8.107 24.32-12.373c5.547-4.267 9.387-9.387 11.52-14.507s2.987-10.667 2.987-16.64c0-13.653-5.547-24.32-17.067-32.853s-28.16-12.373-49.92-12.373c-9.387 0-18.347 0.853-27.307 3.413-8.96 2.133-17.067 5.547-23.893 10.24-7.253 4.693-12.8 11.093-17.493 18.773s-7.253 17.493-7.68 28.587h-80.64c0-15.36 3.413-30.293 10.24-44.8s16.64-27.733 29.867-39.68c13.227-11.52 29.44-20.907 49.067-28.16s41.813-10.667 67.413-10.667c22.613 0 43.093 2.56 61.44 8.107s34.133 13.227 47.36 23.040c13.227 9.813 23.040 21.76 30.293 35.413s10.667 28.587 10.667 45.227c-0.853 17.067-3.84 31.573-10.24 43.52z" /> | ||
613 | <glyph unicode="" d="M0 609.28v-71.68l128 42.667v-409.6h85.333v512h-10.667l-202.667-73.387zM1014.613 325.547c-5.973 11.947-14.933 22.613-26.88 31.573s-26.027 16.64-43.093 22.613-36.267 11.52-57.6 16.213c-14.933 2.987-27.307 6.4-37.12 9.813s-17.493 6.827-23.467 10.667c-5.973 3.84-9.813 8.107-11.947 12.8s-3.413 10.24-3.413 16.64c0 5.973 1.28 11.947 3.84 17.493s6.4 10.667 11.52 14.507c5.12 4.267 11.52 7.68 19.2 10.24s17.067 3.84 27.307 3.84c10.667 0 20.053-1.707 28.16-4.693s14.933-7.253 20.48-12.373c5.547-5.12 9.387-11.093 12.373-17.92 2.56-6.827 4.267-13.653 4.267-20.907h83.2c0 16.64-3.413 32-10.24 46.507s-16.64 26.88-29.44 37.547c-12.8 10.667-28.16 18.773-46.507 25.173s-39.253 9.387-62.293 9.387c-21.76 0-41.813-2.987-59.307-8.96s-32.853-14.080-45.227-24.32c-12.373-10.24-21.76-22.187-28.587-35.84s-9.813-27.733-9.813-43.093 3.413-29.44 9.813-40.96c6.4-11.947 15.36-22.187 27.307-31.147 11.52-8.96 25.6-16.213 41.813-22.613 16.213-5.973 34.56-11.093 54.187-15.36 16.64-3.413 30.293-7.253 40.533-11.093s18.347-8.107 24.32-12.373c5.547-4.267 9.387-9.387 11.52-14.507s2.987-10.667 2.987-16.64c0-13.653-5.547-24.32-17.067-32.853s-28.16-12.373-49.92-12.373c-9.387 0-18.347 0.853-27.307 3.413-8.96 2.133-17.067 5.547-23.893 10.24-7.253 4.693-12.8 11.093-17.493 18.773s-7.253 17.493-7.68 28.587h-80.64c0-15.36 3.413-30.293 10.24-44.8s16.64-27.733 29.867-39.68c13.227-11.52 29.44-20.907 49.067-28.16s41.813-10.667 67.413-10.667c22.613 0 43.093 2.56 61.44 8.107s34.133 13.227 47.36 23.040c13.227 9.813 23.040 21.76 30.293 35.413s10.667 28.587 10.667 45.227c-0.853 17.067-3.84 31.573-10.24 43.52zM589.653 637.867c-14.507 17.067-32 29.867-52.48 37.547-20.053 7.68-43.093 11.52-67.84 11.52s-47.36-3.84-67.84-11.52c-20.48-7.68-37.973-20.053-52.48-37.547s-25.6-39.68-33.707-67.84c-7.68-27.733-11.947-61.867-11.947-101.973v-81.92c0-40.107 3.84-74.24 11.947-101.973 8.107-28.16 19.2-50.773 34.133-68.267 14.507-17.493 32-30.293 52.48-37.973s43.093-11.947 67.84-11.947c25.173 0 47.787 3.84 67.84 11.947 20.48 7.68 37.547 20.48 52.053 37.973s25.6 40.107 33.28 68.267c7.68 27.733 11.947 61.867 11.947 101.973v81.92c0 40.107-3.84 74.24-11.947 101.973-7.68 28.16-18.773 50.773-33.28 67.84zM550.4 374.614c0-25.6-1.707-47.36-5.12-65.28s-8.533-32.427-15.36-43.52c-6.827-11.093-15.36-19.2-25.173-24.32s-21.76-7.68-34.987-7.68c-12.8 0-24.747 2.56-34.987 7.68s-18.773 13.227-25.6 24.32c-6.827 11.093-12.373 25.6-16.213 43.52s-5.547 39.68-5.547 65.28v106.667c0 25.6 1.707 47.36 5.547 64.853s8.96 31.573 16.213 42.667c6.827 10.667 15.36 18.347 25.6 23.467 10.24 4.693 21.76 7.253 34.56 7.253 13.227 0 24.747-2.56 34.56-7.253 10.24-4.693 18.773-12.373 25.6-23.467 6.827-10.667 12.373-24.747 15.787-42.24s5.547-39.253 5.547-64.853v-107.093z" /> | ||
614 | <glyph unicode="" d="M512 768c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM512 341.334c-113.92 0-341.333-57.173-341.333-170.667v-85.333h682.667v85.333c0 113.92-227.413 170.667-341.333 170.667z" /> | ||
615 | <glyph unicode="" d="M812.373 744.534l-60.587-60.587c-66.133 52.48-149.333 84.053-239.787 84.053-78.080 0-150.613-23.467-211.2-63.147l62.293-62.293c43.52 25.173 94.72 40.107 148.907 40.107 165.12 0 298.667-133.547 298.667-298.667 0-54.187-14.933-105.387-40.107-148.907l61.867-61.867c40.107 60.16 63.573 132.693 63.573 210.773 0 90.453-31.573 173.653-84.053 239.36l60.587 60.587-60.16 60.587zM640 896h-256v-85.333h256v85.333zM469.333 535.894l85.333-85.333v146.773h-85.333v-61.44zM128.853 768l-54.187-54.187 117.333-117.76c-40.533-60.587-64-133.547-64-212.053 0-212.053 171.52-384 384-384 78.507 0 151.467 23.467 212.48 64l106.667-106.667 54.187 54.187-756.48 756.48zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667 0 54.613 14.933 105.813 40.533 150.187l407.893-407.893c-43.947-26.027-95.147-40.96-149.76-40.96z" /> | ||
616 | <glyph unicode="" d="M640 896h-256v-85.333h256v85.333zM469.333 341.334h85.333v256h-85.333v-256zM811.947 623.36l60.587 60.587c-18.347 21.76-38.4 42.24-60.16 60.16l-60.587-60.587c-66.133 52.907-149.333 84.48-239.787 84.48-212.053 0-384-171.947-384-384s171.52-384 384-384 384 171.947 384 384c0 90.453-31.573 173.653-84.053 239.36zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667z" /> | ||
617 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM469.333 88.32c-168.107 20.907-298.667 164.267-298.667 338.347s130.133 317.44 298.667 338.347v-676.693zM554.667 765.014c43.947-5.547 85.333-19.2 122.453-39.68h-122.453v39.68zM554.667 640h223.573c10.667-13.227 20.48-27.733 29.013-42.667h-252.587v42.667zM554.667 512h287.573c3.413-14.080 6.4-28.16 8.107-42.667h-295.68v42.667zM554.667 88.32v39.68h122.453c-37.12-20.48-78.507-34.133-122.453-39.68zM778.24 213.334h-223.573v42.667h252.587c-8.533-14.933-18.347-29.44-29.013-42.667zM842.24 341.334h-287.573v42.667h295.68c-1.707-14.507-4.693-28.587-8.107-42.667z" /> | ||
618 | <glyph unicode="" d="M938.667 170.667v85.333h-597.333v512h85.333l-128 128-128-128h85.333v-85.333h-170.667v-85.333h170.667v-341.333c0-46.933 38.4-85.333 85.333-85.333h341.333v-85.333h-85.333l128-128 128 128h-85.333v85.333h170.667zM426.667 597.334h256v-256h85.333v256c0 46.933-38.4 85.333-85.333 85.333h-256v-85.333z" /> | ||
619 | <glyph unicode="" d="M128 213.334v-85.333h256v85.333h-256zM128 725.334v-85.333h426.667v85.333h-426.667zM554.667 42.667v85.333h341.333v85.333h-341.333v85.333h-85.333v-256h85.333zM298.667 554.667v-85.333h-170.667v-85.333h170.667v-85.333h85.333v256h-85.333zM896 384v85.333h-426.667v-85.333h426.667zM640 554.667h85.333v85.333h170.667v85.333h-170.667v85.333h-85.333v-256z" /> | ||
620 | <glyph unicode="" d="M292.267 398.934h98.133l-49.067 155.733-49.067-155.733zM938.667 640l-51.2-268.373-64 268.373h-68.267l-63.573-268.373-51.627 268.373h-32.427c-62.72 78.080-158.293 128-266.24 128-188.587 0-341.333-152.747-341.333-341.333s152.747-341.333 341.333-341.333c133.547 0 249.173 77.227 305.067 189.013l4.267-18.347h74.667l64 260.267 64-260.267h74.667l87.467 384h-76.8zM439.467 256l-29.867 85.333h-136.533l-29.867-85.333h-81.067l136.533 384h85.333l136.533-384h-81.067z" /> | ||
621 | <glyph unicode="" d="M826.027 510.294c-29.44 147.2-158.72 257.707-314.027 257.707-123.307 0-230.4-69.973-283.733-172.373-128.427-13.653-228.267-122.453-228.267-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-197.973 211.627z" /> | ||
622 | <glyph unicode="" d="M151.467 147.627l60.16-60.16 76.373 76.8-60.16 60.16-76.373-76.8zM469.333-19.2h85.333v125.867h-85.333v-125.867zM170.667 490.667h-128v-85.333h128v85.333zM640 669.44v205.227h-256v-205.227c-76.373-44.373-128-126.72-128-221.44 0-141.227 114.773-256 256-256s256 114.773 256 256c0 94.72-51.627 177.067-128 221.44zM853.333 490.667v-85.333h128v85.333h-128zM735.573 163.84l76.373-76.8 60.16 60.16-76.8 76.373-59.733-59.733z" /> | ||
623 | <glyph unicode="" d="M213.333 320h597.333v256h-597.333v-256zM469.333 915.2v-125.867h85.333v125.867h-85.333zM812.373 808.534l-76.373-76.373 60.16-60.16 76.8 76.373-60.587 60.16zM554.667-19.2v125.867h-85.333v-125.867h85.333zM872.533 147.627l-76.8 76.373-60.16-60.16 76.373-76.8 60.587 60.587zM151.467 748.374l76.373-76.373 60.16 60.16-76.373 76.373-60.16-60.16zM211.627 87.467l76.373 76.8-60.16 60.16-76.373-76.373 60.16-60.587z" /> | ||
624 | <glyph unicode="" d="M288.427 732.16l-76.8 76.373-60.16-60.16 76.373-76.373 60.587 60.16zM170.667 490.667h-128v-85.333h128v85.333zM554.667 915.2h-85.333v-125.867h85.333v125.867zM872.533 748.374l-60.16 60.16-76.373-76.373 60.16-60.16 76.373 76.373zM735.573 163.84l76.373-76.8 60.16 60.16-76.8 76.373-59.733-59.733zM853.333 490.667v-85.333h128v85.333h-128zM512 704c-141.227 0-256-114.773-256-256s114.773-256 256-256 256 114.773 256 256-114.773 256-256 256zM469.333-19.2h85.333v125.867h-85.333v-125.867zM151.467 147.627l60.16-60.16 76.373 76.8-60.16 60.16-76.373-76.8z" /> | ||
625 | <glyph unicode="" d="M810.667 896h-597.333c-46.933 0-84.907-38.4-84.907-85.333l-0.427-551.68c0-29.44 14.933-55.467 37.547-70.827l346.453-230.827 346.027 230.827c22.613 15.36 37.547 41.387 37.547 70.827l0.427 551.68c0 46.933-38.4 85.333-85.333 85.333zM426.667 256l-213.333 213.333 60.16 60.16 153.173-152.747 323.84 323.84 60.16-60.587-384-384z" /> | ||
626 | <glyph unicode="" d="M682.667 733.867c42.24 0 76.8 34.56 76.8 76.8s-34.56 76.8-76.8 76.8c-42.667 0-76.8-34.56-76.8-76.8s34.133-76.8 76.8-76.8zM810.667 426.667c-117.76 0-213.333-95.573-213.333-213.333s95.573-213.333 213.333-213.333 213.333 95.573 213.333 213.333-95.573 213.333-213.333 213.333zM810.667 64c-82.347 0-149.333 66.987-149.333 149.333s66.987 149.333 149.333 149.333 149.333-66.987 149.333-149.333-66.987-149.333-149.333-149.333zM631.467 512h179.2v76.8h-136.533l-82.347 139.52c-12.8 21.333-35.84 35.413-62.293 35.413-20.053 0-37.973-8.107-51.2-21.333l-157.867-157.867c-13.653-12.8-21.76-31.147-21.76-51.2 0-26.88 14.080-49.493 36.267-62.72l142.933-86.613v-213.333h76.8v276.48l-96 71.253 98.987 99.413 73.813-105.813zM213.333 426.667c-117.76 0-213.333-95.573-213.333-213.333s95.573-213.333 213.333-213.333 213.333 95.573 213.333 213.333-95.573 213.333-213.333 213.333zM213.333 64c-82.347 0-149.333 66.987-149.333 149.333s66.987 149.333 149.333 149.333 149.333-66.987 149.333-149.333-66.987-149.333-149.333-149.333z" /> | ||
627 | <glyph unicode="" d="M170.667 256c0-37.547 16.64-71.253 42.667-94.72v-75.947c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v42.667h341.333v-42.667c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v75.947c26.027 23.467 42.667 57.173 42.667 94.72v426.667c0 149.333-152.747 170.667-341.333 170.667s-341.333-21.333-341.333-170.667v-426.667zM320 213.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM704 213.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM768 469.334h-512v213.333h512v-213.333z" /> | ||
628 | <glyph unicode="" d="M807.253 682.24c-8.533 25.173-32.427 43.093-60.587 43.093h-469.333c-28.16 0-51.627-17.92-60.587-43.093l-88.747-255.573v-341.333c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v42.667h512v-42.667c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v341.333l-88.747 255.573zM277.333 256c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM746.667 256c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM213.333 469.334l64 192h469.333l64-192h-597.333z" /> | ||
629 | <glyph unicode="" d="M853.333 42.667c-59.307 0-118.613 20.053-170.667 56.32-104.107-72.96-237.227-72.96-341.333 0-52.053-36.267-111.36-56.32-170.667-56.32h-85.333v-85.333h85.333c58.88 0 116.907 14.933 170.667 42.24 107.52-55.040 233.813-55.040 341.333 0 53.76-27.733 111.787-42.24 170.667-42.24h85.333v85.333h-85.333zM168.533 128h2.133c68.267 0 128.853 37.547 170.667 85.333 41.813-47.787 102.4-85.333 170.667-85.333s128.853 37.547 170.667 85.333c41.813-47.787 102.4-85.333 170.667-85.333h2.133l80.64 285.013c3.413 11.093 2.56 23.040-2.56 33.28s-14.507 17.92-25.6 21.333l-54.613 17.92v197.12c0 46.933-38.4 85.333-85.333 85.333h-128v128h-256v-128h-128c-46.933 0-85.333-38.4-85.333-85.333v-197.12l-55.040-17.92c-11.093-3.413-20.48-11.093-25.6-21.333s-6.4-22.187-2.56-33.28l81.067-285.013zM256 682.667h512v-169.387l-256 84.053-256-84.053v169.387z" /> | ||
630 | <glyph unicode="" d="M512 853.334c-188.587 0-341.333-21.333-341.333-170.667v-405.333c0-82.347 66.987-149.333 149.333-149.333l-64-64v-21.333h512v21.333l-64 64c82.347 0 149.333 66.987 149.333 149.333v405.333c0 149.333-152.747 170.667-341.333 170.667zM320 213.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM469.333 469.334h-213.333v213.333h213.333v-213.333zM704 213.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM768 469.334h-213.333v213.333h213.333v-213.333z" /> | ||
631 | <glyph unicode="" d="M170.667 277.334c0-82.347 66.987-149.333 149.333-149.333l-64-64v-21.333h512v21.333l-64 64c82.347 0 149.333 66.987 149.333 149.333v448c0 149.333-152.747 170.667-341.333 170.667s-341.333-21.333-341.333-170.667v-448zM512 213.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333zM768 512h-512v213.333h512v-213.333z" /> | ||
632 | <glyph unicode="" d="M512 853.334c-188.587 0-341.333-21.333-341.333-170.667v-405.333c0-82.347 66.987-149.333 149.333-149.333l-64-64v-21.333h512v21.333l-64 64c82.347 0 149.333 66.987 149.333 149.333v405.333c0 149.333-152.747 170.667-341.333 170.667zM320 213.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM469.333 469.334h-213.333v213.333h213.333v-213.333zM704 213.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM768 469.334h-213.333v213.333h213.333v-213.333z" /> | ||
633 | <glyph unicode="" d="M597.333 776.534c42.24 0 76.8 34.56 76.8 76.8 0 42.667-34.56 76.8-76.8 76.8-42.667 0-76.8-34.56-76.8-76.8s34.133-76.8 76.8-76.8zM602.453 512h208.213v76.8h-154.453l-85.333 142.080c-12.8 21.333-35.84 35.413-62.293 35.413-7.253 0-14.507-1.28-20.907-2.987l-231.68-72.107v-221.867h76.8v156.587l90.027 28.16-166.827-654.080h76.8l122.453 346.027 99.413-132.693v-213.333h76.8v273.493l-106.24 193.707 31.147 122.453 46.080-77.653z" /> | ||
634 | <glyph unicode="" d="M926.293 456.96l-384 384c-16.64 16.64-43.52 16.64-60.16 0l-384-384c-16.64-16.64-16.64-43.52 0-60.16l384-384c16.64-16.64 43.52-16.64 60.16 0l384 384c16.64 16.213 16.64 43.093 0 60.16zM597.333 320v106.667h-170.667v-128h-85.333v170.667c0 23.467 19.2 42.667 42.667 42.667h213.333v106.667l149.333-149.333-149.333-149.333z" /> | ||
635 | <glyph unicode="" d="M896 256v85.333l-341.333 213.333v234.667c0 35.413-28.587 64-64 64s-64-28.587-64-64v-234.667l-341.333-213.333v-85.333l341.333 106.667v-234.667l-85.333-64v-64l149.333 42.667 149.333-42.667v64l-85.333 64v234.667l341.333-106.667z" /> | ||
636 | <glyph unicode="" d="M298.667 384c70.827 0 128 57.173 128 128s-57.173 128-128 128-128-57.173-128-128 57.173-128 128-128zM810.667 640h-341.333v-298.667h-341.333v384h-85.333v-640h85.333v128h768v-128h85.333v384c0 94.293-76.373 170.667-170.667 170.667z" /> | ||
637 | <glyph unicode="" d="M845.227 299.094l50.773 39.253-61.013 61.013-50.773-39.253 61.013-61.013zM826.027 500.48l69.973 54.187-384 298.667-124.16-96.853 335.787-336.213 102.4 80.213zM139.52 896l-54.187-54.187 180.053-180.053-137.387-107.093 69.547-54.187 314.453-244.48 89.6 69.547 61.013-61.013-150.613-116.907-314.453 244.48-69.547-53.76 384-298.667 211.2 164.267 161.28-161.28 54.187 54.187-799.147 799.147z" /> | ||
638 | <glyph unicode="" d="M511.573 147.627l-314.453 244.48-69.12-53.76 384-298.667 384 298.667-69.547 54.187-314.88-244.907zM512 256l384 298.667-384 298.667-384-298.667 69.547-54.187 314.453-244.48z" /> | ||
639 | <glyph unicode="" d="M896 256v85.333l-341.333 213.333v234.667c0 35.413-28.587 64-64 64s-64-28.587-64-64v-234.667l-341.333-213.333v-85.333l341.333 106.667v-234.667l-85.333-64v-64l149.333 42.667 149.333-42.667v64l-85.333 64v234.667l341.333-106.667z" /> | ||
640 | <glyph unicode="" d="M469.333 213.334h85.333v42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v128c0 23.467-19.2 42.667-42.667 42.667h-128v42.667h170.667v85.333h-85.333v42.667h-85.333v-42.667h-42.667c-23.467 0-42.667-19.2-42.667-42.667v-128c0-23.467 19.2-42.667 42.667-42.667h128v-42.667h-170.667v-85.333h85.333v-42.667zM853.333 768h-682.667c-47.36 0-84.907-37.973-84.907-85.333l-0.427-512c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v512c0 47.36-37.973 85.333-85.333 85.333zM853.333 170.667h-682.667v512h682.667v-512z" /> | ||
641 | <glyph unicode="" d="M853.333 426.667c0 46.933 38.4 85.333 85.333 85.333v170.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-84.907-38.4-84.907-85.333v-170.667c46.933 0 84.907-38.4 84.907-85.333s-37.973-85.333-85.333-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v170.667c-46.933 0-85.333 38.4-85.333 85.333zM664.747 221.867l-152.747 98.133-152.747-98.133 46.080 175.787-140.373 114.773 180.907 10.667 66.133 168.107 65.707-168.533 180.907-10.667-140.373-114.773 46.507-175.36z" /> | ||
642 | <glyph unicode="" d="M469.333 384v-256h-213.333v-85.333h512v85.333h-213.333v256l341.333 341.333v85.333h-768v-85.333l341.333-341.333zM320 640l-85.333 85.333h554.667l-85.333-85.333h-384z" /> | ||
643 | <glyph unicode="" d="M853.333 810.667h-682.667v-426.667c0-94.293 76.373-170.667 170.667-170.667h256c94.293 0 170.667 76.373 170.667 170.667v128h85.333c47.36 0 85.333 37.973 85.333 85.333v128c0 47.36-37.973 85.333-85.333 85.333zM853.333 597.334h-85.333v128h85.333v-128zM85.333 42.667h768v85.333h-768v-85.333z" /> | ||
644 | <glyph unicode="" d="M725.333 725.334c35.413 0 64 28.587 64 64 0 42.667-64 115.2-64 115.2s-64-72.533-64-115.2c0-35.413 28.587-64 64-64zM512 725.334c35.413 0 64 28.587 64 64 0 42.667-64 115.2-64 115.2s-64-72.533-64-115.2c0-35.413 28.587-64 64-64zM298.667 725.334c35.413 0 64 28.587 64 64 0 42.667-64 115.2-64 115.2s-64-72.533-64-115.2c0-35.413 28.587-64 64-64zM807.253 596.907c-8.533 25.173-32.427 43.093-60.587 43.093h-469.333c-28.16 0-51.627-17.92-60.587-43.093l-88.747-255.573v-341.333c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v42.667h512v-42.667c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v341.333l-88.747 255.573zM277.333 170.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM746.667 170.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM213.333 384l64 192h469.333l64-192h-597.333z" /> | ||
645 | <glyph unicode="" d="M810.667 640v128h-597.333v-128h-128v-554.667h341.333v170.667h170.667v-170.667h341.333v554.667h-128zM469.333 512h-85.333v-42.667h85.333v-42.667h-128v128h85.333v42.667h-85.333v42.667h128v-128zM682.667 426.667h-42.667v85.333h-85.333v128h42.667v-85.333h42.667v85.333h42.667v-213.333z" /> | ||
646 | <glyph unicode="" d="M128 853.334l85.76-777.813c5.12-42.667 40.96-75.52 84.907-75.52h426.667c43.947 0 79.787 32.853 84.907 75.52l85.76 777.813h-768zM512 128c-70.827 0-128 57.173-128 128 0 85.333 128 230.4 128 230.4s128-145.067 128-230.4c0-70.827-57.173-128-128-128zM782.080 597.334h-540.16l-18.773 170.667h577.28l-18.347-170.667z" /> | ||
647 | <glyph unicode="" d="M512-0c212.053 0 384 171.947 384 384-212.053 0-384-171.947-384-384zM238.933 501.334c0-58.88 47.787-106.667 106.667-106.667 22.613 0 43.093 6.827 60.587 18.773l-0.853-8.107c0-58.88 47.787-106.667 106.667-106.667s106.667 47.787 106.667 106.667l-0.853 8.107c17.067-11.947 37.973-18.773 60.587-18.773 58.88 0 106.667 47.787 106.667 106.667 0 42.667-25.173 78.933-61.013 96 35.84 17.067 61.013 53.333 61.013 96 0 58.88-47.787 106.667-106.667 106.667-22.613 0-43.093-6.827-60.587-18.773l0.853 8.107c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667l0.853-8.107c-17.067 11.947-37.973 18.773-60.587 18.773-58.88 0-106.667-47.787-106.667-106.667 0-42.667 25.173-78.933 61.013-96-35.84-17.067-61.013-53.333-61.013-96zM512 704c58.88 0 106.667-47.787 106.667-106.667s-47.787-106.667-106.667-106.667-106.667 47.787-106.667 106.667 47.787 106.667 106.667 106.667zM128 384c0-212.053 171.947-384 384-384 0 212.053-171.947 384-384 384z" /> | ||
648 | <glyph unicode="" d="M843.52 630.187l0.427 0.427-158.72 158.72-45.227-45.227 90.027-90.027c-40.107-15.36-68.693-53.76-68.693-99.413 0-58.88 47.787-106.667 106.667-106.667 15.36 0 29.44 3.413 42.667 8.96v-307.627c0-23.467-19.2-42.667-42.667-42.667s-42.667 19.2-42.667 42.667v192c0 46.933-38.4 85.333-85.333 85.333h-42.667v298.667c0 46.933-38.4 85.333-85.333 85.333h-256c-46.933 0-85.333-38.4-85.333-85.333v-682.667h426.667v320h64v-213.333c0-58.88 47.787-106.667 106.667-106.667s106.667 47.787 106.667 106.667v405.333c0 29.44-11.947 56.32-31.147 75.52zM512 512h-256v213.333h256v-213.333zM768 512c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667z" /> | ||
649 | <glyph unicode="" d="M298.667 170.667c-46.933 0-84.907-38.4-84.907-85.333s37.973-85.333 84.907-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM42.667 853.334v-85.333h85.333l153.6-323.84-57.6-104.533c-6.827-11.947-10.667-26.027-10.667-40.96 0-46.933 38.4-85.333 85.333-85.333h512v85.333h-494.080c-5.973 0-10.667 4.693-10.667 10.667l1.28 5.12 38.4 69.547h317.867c32 0 60.16 17.493 74.667 43.947l152.747 276.907c3.413 5.973 5.12 13.227 5.12 20.48 0 23.467-19.2 42.667-42.667 42.667h-631.040l-40.107 85.333h-139.52zM725.333 170.667c-46.933 0-84.907-38.4-84.907-85.333s37.973-85.333 84.907-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
650 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM768 341.334h-170.667v-170.667h-170.667v170.667h-170.667v170.667h170.667v170.667h170.667v-170.667h170.667v-170.667z" /> | ||
651 | <glyph unicode="" d="M298.667 384c70.827 0 128 57.173 128 128s-57.173 128-128 128-128-57.173-128-128 57.173-128 128-128zM810.667 640h-341.333v-298.667h-341.333v384h-85.333v-640h85.333v128h768v-128h85.333v384c0 94.293-76.373 170.667-170.667 170.667z" /> | ||
652 | <glyph unicode="" d="M391.253 220.587c66.56-66.56 174.933-66.56 241.493 0s66.56 174.933 0 241.493l-241.493-241.493zM768 852.907l-512 0.427c-47.36 0-85.333-37.973-85.333-85.333v-682.667c0-47.36 37.973-85.333 85.333-85.333h512c47.36 0 85.333 37.973 85.333 85.333v682.667c0 47.36-37.973 84.907-85.333 84.907zM426.667 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM298.667 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667-42.667 19.2-42.667 42.667 19.2 42.667 42.667 42.667zM512 85.334c-141.227 0-256 114.773-256 256s114.773 256 256 256 256-114.773 256-256-114.773-256-256-256z" /> | ||
653 | <glyph unicode="" d="M512 445.867c-100.693 93.867-235.52 151.467-384 151.467v-469.333c148.48 0 283.307-57.6 384-151.467 100.693 93.44 235.52 151.467 384 151.467v469.333c-148.48 0-283.307-57.6-384-151.467zM512 597.334c70.827 0 128 57.173 128 128s-57.173 128-128 128-128-57.173-128-128 57.173-128 128-128z" /> | ||
654 | <glyph unicode="" d="M810.667 682.667h-85.333c0 117.76-95.573 213.333-213.333 213.333s-213.333-95.573-213.333-213.333h-85.333c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM512 810.667c70.827 0 128-57.173 128-128h-256c0 70.827 57.173 128 128 128zM512 384c-117.76 0-213.333 95.573-213.333 213.333h85.333c0-70.827 57.173-128 128-128s128 57.173 128 128h85.333c0-117.76-95.573-213.333-213.333-213.333z" /> | ||
655 | <glyph unicode="" d="M768 810.667v-85.333h-85.333v85.333h-341.333v-85.333h-85.333v85.333h-85.333v-768h85.333v85.333h85.333v-85.333h341.333v85.333h85.333v-85.333h85.333v768h-85.333zM341.333 213.334h-85.333v85.333h85.333v-85.333zM341.333 384h-85.333v85.333h85.333v-85.333zM341.333 554.667h-85.333v85.333h85.333v-85.333zM768 213.334h-85.333v85.333h85.333v-85.333zM768 384h-85.333v85.333h85.333v-85.333zM768 554.667h-85.333v85.333h85.333v-85.333z" /> | ||
656 | <glyph unicode="" d="M913.493 444.587l-384 384c-15.36 15.36-36.693 24.747-60.16 24.747h-298.667c-46.933 0-85.333-38.4-85.333-85.333v-298.667c0-23.467 9.387-44.8 25.173-60.587l384-384c15.36-15.36 36.693-24.747 60.16-24.747s44.8 9.387 60.16 25.173l298.667 298.667c15.787 15.36 25.173 36.693 25.173 60.16s-9.813 45.227-25.173 60.587zM234.667 640c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64z" /> | ||
657 | <glyph unicode="" d="M554.667 810.667h-298.667v-768h170.667v256h128c141.227 0 256 114.773 256 256s-114.773 256-256 256zM563.2 469.334h-136.533v170.667h136.533c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333z" /> | ||
658 | <glyph unicode="" d="M896 725.334h-112.64l48.64 133.973-100.267 36.693-62.293-170.667h-541.44v-85.333l85.333-256-85.333-256v-85.333h768v85.333l-85.333 256 85.333 256v85.333zM682.667 341.334h-128v-128h-85.333v128h-128v85.333h128v128h85.333v-128h128v-85.333z" /> | ||
659 | <glyph unicode="" d="M282.453 478.294c61.44-120.747 160.427-219.307 281.173-281.173l93.867 93.867c11.52 11.52 28.587 15.36 43.52 10.24 47.787-15.787 99.413-24.32 152.32-24.32 23.467 0 42.667-19.2 42.667-42.667v-148.907c0-23.467-19.2-42.667-42.667-42.667-400.64 0-725.333 324.693-725.333 725.333 0 23.467 19.2 42.667 42.667 42.667h149.333c23.467 0 42.667-19.2 42.667-42.667 0-53.333 8.533-104.533 24.32-152.32 4.693-14.933 1.28-31.573-10.667-43.52l-93.867-93.867z" /> | ||
660 | <glyph unicode="" d="M512 853.334c-152.32 0-288.853-65.707-383.573-170.667l383.573-682.667 383.573 682.667c-94.293 104.533-231.253 170.667-383.573 170.667zM298.667 640c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333-85.333 38.4-85.333 85.333zM512 298.667c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333z" /> | ||
661 | <glyph unicode="" d="M853.333 426.667c0 46.933 38.4 85.333 85.333 85.333v170.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-84.907-38.4-84.907-85.333v-170.667c46.933 0 84.907-38.4 84.907-85.333s-37.973-85.333-85.333-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v170.667c-46.933 0-85.333 38.4-85.333 85.333zM664.747 221.867l-152.747 98.133-152.747-98.133 46.080 175.787-140.373 114.773 180.907 10.667 66.133 168.107 65.707-168.533 180.907-10.667-140.373-114.773 46.507-175.36z" /> | ||
662 | <glyph unicode="" d="M853.333 768h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM853.333 597.334l-341.333-213.333-341.333 213.333v85.333l341.333-213.333 341.333 213.333v-85.333z" /> | ||
663 | <glyph unicode="" d="M810.667 597.334h-597.333c-70.827 0-128-57.173-128-128v-256h170.667v-170.667h512v170.667h170.667v256c0 70.827-57.173 128-128 128zM682.667 128h-341.333v213.333h341.333v-213.333zM810.667 426.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667zM768 810.667h-512v-170.667h512v170.667z" /> | ||
664 | <glyph unicode="" d="M345.6 369.494l120.747 120.747-299.52 299.093c-66.56-66.56-66.56-174.507 0-241.493l178.773-178.347zM634.88 446.72c65.28-30.293 157.013-8.96 224.853 58.88 81.493 81.493 97.28 198.4 34.56 261.12-62.293 62.293-179.2 46.933-261.12-34.56-67.84-67.84-89.173-159.573-58.88-224.853l-416.427-416.427 60.16-60.16 293.973 293.12 293.547-293.547 60.16 60.16-293.547 293.547 62.72 62.72z" /> | ||
665 | <glyph unicode="" d="M648.533 426.667c0-75.405-61.128-136.533-136.533-136.533s-136.533 61.128-136.533 136.533c0 75.405 61.128 136.533 136.533 136.533s136.533-61.128 136.533-136.533zM384 853.334l-78.080-85.333h-135.253c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333h-135.253l-78.080 85.333h-256zM512 213.334c-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333 213.333-95.573 213.333-213.333-95.573-213.333-213.333-213.333z" /> | ||
666 | <glyph unicode="" d="M853.333 597.334h-128v170.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-469.333h85.333c0-70.827 57.173-128 128-128s128 57.173 128 128h256c0-70.827 57.173-128 128-128s128 57.173 128 128h85.333v213.333l-128 170.667zM256 149.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM832 533.334l83.627-106.667h-190.293v106.667h106.667zM768 149.334c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64z" /> | ||
667 | <glyph unicode="" d="M807.253 682.24c-8.533 25.173-32.427 43.093-60.587 43.093h-106.667v85.333h-256v-85.333h-106.667c-28.16 0-51.627-17.92-60.587-43.093l-88.747-255.573v-341.333c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v42.667h512v-42.667c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v341.333l-88.747 255.573zM277.333 256c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM746.667 256c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM213.333 469.334l64 192h469.333l64-192h-597.333z" /> | ||
668 | <glyph unicode="" d="M810.667 853.334h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h170.667l128-128 128 128h170.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 712.534c63.573 0 115.2-51.627 115.2-115.2s-51.627-115.2-115.2-115.2c-63.573 0-115.2 51.627-115.2 115.2s51.627 115.2 115.2 115.2zM768 256h-512v38.4c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267v-38.4z" /> | ||
669 | <glyph unicode="" d="M874.667 810.667l-6.827-1.28-227.84-88.32-256 89.6-240.64-81.067c-8.96-2.987-15.36-10.667-15.36-20.48v-645.12c0-11.947 9.387-21.333 21.333-21.333l6.827 1.28 227.84 88.32 256-89.6 240.64 81.067c8.96 2.987 15.36 10.667 15.36 20.48v645.12c0 11.947-9.387 21.333-21.333 21.333zM640 128l-256 90.027v507.307l256-90.027v-507.307z" /> | ||
670 | <glyph unicode="" d="M512 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM893.44 469.334c-19.627 177.92-160.853 319.147-338.773 338.773v87.893h-85.333v-87.893c-177.92-19.627-319.147-160.853-338.773-338.773h-87.893v-85.333h87.893c19.627-177.92 160.853-319.147 338.773-338.773v-87.893h85.333v87.893c177.92 19.627 319.147 160.853 338.773 338.773h87.893v85.333h-87.893zM512 128c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667 298.667-133.547 298.667-298.667-133.547-298.667-298.667-298.667z" /> | ||
671 | <glyph unicode="" d="M512 853.334l-320-780.373 30.293-30.293 289.707 128 289.707-128 30.293 30.293z" /> | ||
672 | <glyph unicode="" d="M768 597.334c0 141.227-114.773 256-256 256s-256-114.773-256-256c0-192 256-469.333 256-469.333s256 277.333 256 469.333zM426.667 597.334c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333-37.973-85.333-85.333-85.333c-46.933 0-85.333 38.4-85.333 85.333zM213.333 85.334v-85.333h597.333v85.333h-597.333z" /> | ||
673 | <glyph unicode="" d="M512 853.334c-165.12 0-298.667-133.547-298.667-298.667 0-224 298.667-554.667 298.667-554.667s298.667 330.667 298.667 554.667c0 165.12-133.547 298.667-298.667 298.667zM512 448c-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667 106.667-47.787 106.667-106.667-47.787-106.667-106.667-106.667z" /> | ||
674 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM256 341.334v105.387l293.547 293.547c8.533 8.533 21.76 8.533 30.293 0l75.52-75.52c8.533-8.533 8.533-21.76 0-30.293l-293.973-293.12h-105.387zM768 341.334h-320l85.333 85.333h234.667v-85.333z" /> | ||
675 | <glyph unicode="" d="M345.6 369.494l120.747 120.747-299.52 299.093c-66.56-66.56-66.56-174.507 0-241.493l178.773-178.347zM634.88 446.72c65.28-30.293 157.013-8.96 224.853 58.88 81.493 81.493 97.28 198.4 34.56 261.12-62.293 62.293-179.2 46.933-261.12-34.56-67.84-67.84-89.173-159.573-58.88-224.853l-416.427-416.427 60.16-60.16 293.973 293.12 293.547-293.547 60.16 60.16-293.547 293.547 62.72 62.72z" /> | ||
676 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM213.333 725.76h128c0-70.827-57.173-128.427-128-128.427v128.427zM213.333 426.667v85.333c117.76 0 213.333 96 213.333 213.76h85.333c0-165.12-133.547-299.093-298.667-299.093zM213.333 170.667l149.333 192 106.667-128.427 149.333 192.427 192-256h-597.333z" /> | ||
677 | <glyph unicode="" d="M853.333 768h-682.667v-85.333h682.667v85.333zM896 341.334v85.333l-42.667 213.333h-682.667l-42.667-213.333v-85.333h42.667v-256h426.667v256h170.667v-256h85.333v256h42.667zM512 170.667h-256v170.667h256v-170.667z" /> | ||
678 | <glyph unicode="" d="M597.333 682.667l-160-213.333 121.6-162.133-68.267-51.2c-72.107 96-192 256-192 256l-256-341.333h938.667l-384 512z" /> | ||
679 | <glyph unicode="" d="M853.333 512h-128v48.64c73.387 19.2 128 85.333 128 164.693h-128v42.667c0 23.467-19.2 42.667-42.667 42.667h-341.333c-23.467 0-42.667-19.2-42.667-42.667v-42.667h-128c0-79.36 54.613-145.493 128-164.693v-48.64h-128c0-79.36 54.613-145.493 128-164.693v-48.64h-128c0-79.36 54.613-145.493 128-164.693v-48.64c0-23.467 19.2-42.667 42.667-42.667h341.333c23.467 0 42.667 19.2 42.667 42.667v48.64c73.387 19.2 128 85.333 128 164.693h-128v48.64c73.387 19.2 128 85.333 128 164.693zM512 128c-47.36 0-85.333 38.4-85.333 85.333s37.973 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-37.973-85.333-85.333-85.333zM512 341.334c-47.36 0-85.333 38.4-85.333 85.333s37.973 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-37.973-85.333-85.333-85.333zM512 554.667c-47.36 0-85.333 38.4-85.333 85.333 0 47.36 37.973 85.333 85.333 85.333 46.933 0 85.333-37.973 85.333-85.333 0-46.933-37.973-85.333-85.333-85.333z" /> | ||
680 | <glyph unicode="" d="M170.667 597.334h170.667v170.667h-170.667v-170.667zM426.667 85.334h170.667v170.667h-170.667v-170.667zM170.667 85.334h170.667v170.667h-170.667v-170.667zM170.667 341.334h170.667v170.667h-170.667v-170.667zM426.667 341.334h170.667v170.667h-170.667v-170.667zM682.667 768v-170.667h170.667v170.667h-170.667zM426.667 597.334h170.667v170.667h-170.667v-170.667zM682.667 341.334h170.667v170.667h-170.667v-170.667zM682.667 85.334h170.667v170.667h-170.667v-170.667z" /> | ||
681 | <glyph unicode="" d="M853.333 469.334h-519.253l238.507 238.507-60.587 60.16-341.333-341.333 341.333-341.333 60.16 60.16-238.080 238.507h519.253v85.333z" /> | ||
682 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 341.334l-170.667 170.667h341.333l-170.667-170.667z" /> | ||
683 | <glyph unicode="" d="M298.667 512l213.333-213.333 213.333 213.333z" /> | ||
684 | <glyph unicode="" d="M298.667 341.334l213.333 213.333 213.333-213.333z" /> | ||
685 | <glyph unicode="" d="M512 768l-60.16-60.16 238.080-238.507h-519.253v-85.333h519.253l-238.080-238.507 60.16-60.16 341.333 341.333z" /> | ||
686 | <glyph unicode="" d="M512 853.334c-235.947 0-426.667-190.72-426.667-426.667s190.72-426.667 426.667-426.667 426.667 190.72 426.667 426.667-190.72 426.667-426.667 426.667zM725.333 273.494l-60.16-60.16-153.173 153.173-153.173-153.173-60.16 60.16 153.173 153.173-153.173 153.173 60.16 60.16 153.173-153.173 153.173 153.173 60.16-60.16-153.173-153.173 153.173-153.173z" /> | ||
687 | <glyph unicode="" d="M384 248.747l-177.92 177.92-60.587-60.16 238.507-238.507 512 512-60.16 60.16z" /> | ||
688 | <glyph unicode="" d="M657.493 622.507l-60.16 60.16-256-256 256-256 60.16 60.16-195.413 195.84z" /> | ||
689 | <glyph unicode="" d="M426.667 682.667l-60.16-60.16 195.413-195.84-195.413-195.84 60.16-60.16 256 256z" /> | ||
690 | <glyph unicode="" d="M810.667 665.174l-60.16 60.16-238.507-238.507-238.507 238.507-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 238.507 238.507 238.507-238.507 60.16 60.16-238.507 238.507z" /> | ||
691 | <glyph unicode="" d="M512 597.334l-256-256 60.16-60.16 195.84 195.413 195.84-195.413 60.16 60.16z" /> | ||
692 | <glyph unicode="" d="M707.84 572.16l-195.84-195.413-195.84 195.413-60.16-60.16 256-256 256 256z" /> | ||
693 | <glyph unicode="" d="M213.333 256h128v-128h85.333v213.333h-213.333v-85.333zM341.333 597.334h-128v-85.333h213.333v213.333h-85.333v-128zM597.333 128h85.333v128h128v85.333h-213.333v-213.333zM682.667 597.334v128h-85.333v-213.333h213.333v85.333h-128z" /> | ||
694 | <glyph unicode="" d="M298.667 341.334h-85.333v-213.333h213.333v85.333h-128v128zM213.333 512h85.333v128h128v85.333h-213.333v-213.333zM725.333 213.334h-128v-85.333h213.333v213.333h-85.333v-128zM597.333 725.334v-85.333h128v-128h85.333v213.333h-213.333z" /> | ||
695 | <glyph unicode="" d="M128 170.667h768v85.333h-768v-85.333zM128 384h768v85.333h-768v-85.333zM128 682.667v-85.333h768v85.333h-768z" /> | ||
696 | <glyph unicode="" d="M256 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM768 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM512 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
697 | <glyph unicode="" d="M512 597.334c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333-85.333-38.4-85.333-85.333 38.4-85.333 85.333-85.333zM512 512c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333zM512 256c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333 85.333 38.4 85.333 85.333-38.4 85.333-85.333 85.333z" /> | ||
698 | <glyph unicode="" d="M753.067 667.734c-61.867 61.867-146.773 100.267-241.067 100.267-188.587 0-340.907-152.747-340.907-341.333s152.32-341.333 340.907-341.333c159.147 0 291.84 108.8 329.813 256h-88.747c-34.987-99.413-129.707-170.667-241.067-170.667-141.227 0-256 114.773-256 256s114.773 256 256 256c70.827 0 133.973-29.44 180.053-75.947l-137.387-137.387h298.667v298.667l-100.267-100.267z" /> | ||
699 | <glyph unicode="" d="M316.16 145.494l60.587-60.16 135.253 135.253 135.253-135.253 60.16 60.16-195.413 195.84-195.84-195.84zM707.84 707.84l-60.587 60.16-135.253-135.253-135.253 135.253-60.587-60.16 195.84-195.84 195.84 195.84z" /> | ||
700 | <glyph unicode="" d="M512 689.92l135.253-135.253 60.16 60.16-195.413 195.84-195.84-195.84 60.587-60.16 135.253 135.253zM512 163.414l-135.253 135.253-60.16-60.16 195.413-195.84 195.84 195.84-60.587 60.16-135.253-135.253z" /> | ||
701 | <glyph unicode="" d="M213.333 256c0-165.12 133.547-298.667 298.667-298.667s298.667 133.547 298.667 298.667v170.667h-597.333v-170.667zM687.787 752.214l89.6 89.6-34.987 35.413-98.133-98.56c-40.107 20.053-84.48 32-132.267 32s-92.16-11.947-131.84-32l-98.56 98.56-34.987-35.413 89.6-89.6c-74.24-54.187-122.88-141.227-122.88-240.213v-42.667h597.333v42.667c0 98.987-48.64 186.027-122.88 240.213zM384 554.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667zM640 554.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667 42.667-19.2 42.667-42.667-19.2-42.667-42.667-42.667z" /> | ||
702 | <glyph unicode="" d="M607.573 426.24l98.987-98.987c11.947 30.72 18.773 64.427 18.773 99.413s-6.827 67.84-18.347 98.56l-99.413-98.987zM833.28 652.374l-53.76-53.76c26.88-51.627 41.813-109.653 41.813-171.52s-15.36-120.32-41.813-171.52l51.2-51.2c41.387 65.707 65.707 143.36 65.707 226.56-0.427 80.64-23.467 156.587-63.147 221.44zM670.293 609.707l-243.627 243.627h-42.667v-323.84l-195.84 195.84-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 195.84 195.84v-323.84h42.667l243.627 243.627-183.467 183.040 183.467 183.040zM469.333 689.92l80.213-80.213-80.213-80.213v160.427zM549.547 243.627l-80.213-80.213v160.427l80.213-80.213z" /> | ||
703 | <glyph unicode="" d="M853.333 256h85.333v85.333h-85.333v-85.333zM853.333 640v-213.333h85.333v213.333h-85.333zM426.667 768c-188.587 0-341.333-152.747-341.333-341.333s152.747-341.333 341.333-341.333 341.333 152.747 341.333 341.333-152.747 341.333-341.333 341.333zM426.667 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333 85.333-38.4 85.333-85.333-38.4-85.333-85.333-85.333z" /> | ||
704 | <glyph unicode="" d="M512 853.334c-234.667 0-426.667-192-426.667-426.667s192-426.667 426.667-426.667 426.667 192 426.667 426.667-192 426.667-426.667 426.667zM170.667 426.667c0 187.733 153.6 341.333 341.333 341.333 76.8 0 149.333-25.6 209.067-72.533l-477.867-477.867c-46.933 59.733-72.533 132.267-72.533 209.067zM512 85.334c-76.8 0-149.333 25.6-209.067 72.533l477.867 477.867c46.933-59.733 72.533-132.267 72.533-209.067 0-187.733-153.6-341.333-341.333-341.333z" /> | ||
705 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333 0 78.933 26.88 151.467 72.107 209.067l478.293-478.293c-57.6-45.227-130.133-72.107-209.067-72.107zM781.227 217.6l-478.293 478.293c57.6 45.227 130.133 72.107 209.067 72.107 188.587 0 341.333-152.747 341.333-341.333 0-78.933-26.88-151.467-72.107-209.067z" /> | ||
706 | <glyph unicode="" d="M807.253 724.907c-8.533 25.173-32.427 43.093-60.587 43.093h-469.333c-28.16 0-51.627-17.92-60.587-43.093l-88.747-255.573v-341.333c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v42.667h512v-42.667c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v341.333l-88.747 255.573zM277.333 298.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM746.667 298.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM213.333 512l64 192h469.333l64-192h-597.333z" /> | ||
707 | <glyph unicode="" d="M705.28 466.774l-45.227 45.227-208.213-208.213-90.453 90.453-45.227-45.227 135.68-135.68 253.44 253.44zM810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v469.333h597.333v-469.333z" /> | ||
708 | <glyph unicode="" d="M397.227 213.334l104.107 104.107 104.107-104.107 45.227 45.227-104.107 104.107 104.107 104.107-45.227 45.227-104.107-104.107-104.107 104.107-45.227-45.227 104.107-104.107-104.107-104.107 45.227-45.227zM810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v469.333h597.333v-469.333z" /> | ||
709 | <glyph unicode="" d="M725.333 512h-426.667v-85.333h426.667v85.333zM810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM810.667 128h-597.333v469.333h597.333v-469.333zM597.333 341.334h-298.667v-85.333h298.667v85.333z" /> | ||
710 | <glyph unicode="" d="M853.333 682.667h-341.333l-85.333 85.333h-256c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM579.413 170.667l-152.747 89.6-152.747-89.6 40.533 173.653-134.827 116.907 177.493 15.36 69.547 163.413 69.547-163.84 177.493-15.36-134.827-116.907 40.533-173.227z" /> | ||
711 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM213.333 341.334l149.333 192 106.667-128.427 149.333 192.427 192-256h-597.333z" /> | ||
712 | <glyph unicode="" d="M938.667 810.667h-640c-29.44 0-52.48-14.933-67.84-37.547l-230.827-346.453 230.827-346.027c15.36-22.613 41.387-37.973 70.827-37.973h637.013c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM384 362.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM597.333 362.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM810.667 362.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64z" /> | ||
713 | <glyph unicode="" d="M832 512c7.253 0 14.080-1.28 21.333-2.133v386.133l-810.667-810.667h554.667v128c0 37.973 16.64 71.68 42.667 95.147v11.52c0 105.813 86.187 192 192 192zM938.667 256v64c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667v-64c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667h213.333c23.467 0 42.667 19.2 42.667 42.667v170.667c0 23.467-19.2 42.667-42.667 42.667zM896 256h-128v64c0 35.413 28.587 64 64 64s64-28.587 64-64v-64z" /> | ||
714 | <glyph unicode="" d="M627.627 533.334l97.707 97.707v-161.707h21.333l121.6 121.6-91.307 91.733 91.733 91.733-122.027 121.6h-21.333v-161.707l-97.707 97.707-30.293-30.293 119.040-119.040-119.040-119.040 30.293-30.293zM768 814.507l40.107-40.107-40.107-40.107v80.213zM768 631.040l40.107-40.107-40.107-40.107v80.213zM853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.52-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 281.173l93.867 94.293c11.947 11.093 15.36 27.733 10.667 42.667-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667z" /> | ||
715 | <glyph unicode="" d="M768 469.334l213.333 213.333-213.333 213.333v-128h-170.667v-170.667h170.667v-128zM853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.52-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 281.173l93.867 94.293c11.947 11.093 15.36 27.733 10.667 42.667-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667z" /> | ||
716 | <glyph unicode="" d="M853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.52-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 281.173l93.867 94.293c11.947 11.093 15.36 27.733 10.667 42.667-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667zM810.667 426.667h85.333c0 212.053-171.947 384-384 384v-85.333c165.12 0 298.667-133.547 298.667-298.667zM640 426.667h85.333c0 117.76-95.573 213.333-213.333 213.333v-85.333c70.827 0 128-57.173 128-128z" /> | ||
717 | <glyph unicode="" d="M853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.52-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 281.173l93.867 94.293c11.947 11.093 15.36 27.733 10.667 42.667-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667zM853.333 768v21.333c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667v-21.333c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667h213.333c23.467 0 42.667 19.2 42.667 42.667v170.667c0 23.467-19.2 42.667-42.667 42.667zM819.2 768h-145.067v21.333c0 40.107 32.427 72.533 72.533 72.533s72.533-32.427 72.533-72.533v-21.333z" /> | ||
718 | <glyph unicode="" d="M277.333 704l234.667-234.667 298.667 298.667-42.667 42.667-256-256-192 192h149.333v64h-256v-256h64v149.333zM1011.627 227.414c-130.133 123.307-305.92 199.253-499.627 199.253s-369.493-75.947-499.627-199.253c-7.68-7.68-12.373-18.347-12.373-30.293s4.693-22.613 12.373-30.293l105.813-105.813c7.68-7.68 18.347-12.373 30.293-12.373 11.52 0 22.187 4.693 29.867 11.947 33.707 31.573 72.107 58.027 113.493 78.933 14.080 6.827 23.893 21.333 23.893 38.4v132.267c61.867 20.48 128 31.147 196.267 31.147s134.4-10.667 196.267-30.72v-132.267c0-16.64 9.813-31.573 23.893-38.4 41.813-20.907 79.787-47.787 113.92-78.933 7.68-7.68 18.347-11.947 29.867-11.947 11.947 0 22.613 4.693 30.293 12.373l105.813 105.813c7.68 7.68 12.373 18.347 12.373 30.293s-5.12 22.187-12.8 29.867z" /> | ||
719 | <glyph unicode="" d="M725.333 810.667h-85.333v-298.667h85.333v298.667zM853.333 277.334c-53.333 0-104.533 8.533-152.32 24.32-14.933 4.693-31.573 1.28-43.52-10.24l-93.867-93.867c-120.747 61.44-219.733 160-281.173 281.173l93.867 94.293c11.947 11.093 15.36 27.733 10.667 42.667-15.787 47.787-24.32 98.987-24.32 152.32 0 23.467-19.2 42.667-42.667 42.667h-149.333c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667zM810.667 810.667v-298.667h85.333v298.667h-85.333z" /> | ||
720 | <glyph unicode="" d="M853.333 682.667h-170.667v85.333l-85.333 85.333h-170.667l-85.333-85.333v-85.333h-170.667c-47.36 0-84.907-37.973-84.907-85.333l-0.427-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333zM426.667 768h170.667v-85.333h-170.667v85.333zM512 128l-213.333 213.333h128v170.667h170.667v-170.667h128l-213.333-213.333z" /> | ||
721 | <glyph unicode="" d="M853.333 682.667h-170.667v85.333l-85.333 85.333h-170.667l-85.333-85.333v-85.333h-170.667c-47.36 0-84.907-37.973-84.907-85.333l-0.427-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333zM426.667 768h170.667v-85.333h-170.667v85.333zM448 192l-149.333 149.333 60.16 60.16 89.173-89.173 221.013 221.013 60.16-60.16-281.173-281.173z" /> | ||
722 | <glyph unicode="" d="M768 853.334h-341.333l-255.147-256-0.853-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM512 597.334h-85.333v170.667h85.333v-170.667zM640 597.334h-85.333v170.667h85.333v-170.667zM768 597.334h-85.333v170.667h85.333v-170.667z" /> | ||
723 | <glyph unicode="" d="M768 853.334h-341.333l-255.147-256-0.853-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333zM554.667 213.334h-85.333v85.333h85.333v-85.333zM554.667 384h-85.333v213.333h85.333v-213.333z" /> | ||
724 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM554.667 341.334h-85.333v85.333h85.333v-85.333zM554.667 512h-85.333v170.667h85.333v-170.667z" /> | ||
725 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM384 469.334h-85.333v85.333h85.333v-85.333zM554.667 469.334h-85.333v85.333h85.333v-85.333zM725.333 469.334h-85.333v85.333h85.333v-85.333z" /> | ||
726 | <glyph unicode="" d="M426.667 667.734v89.173c-34.133-8.96-66.133-23.040-95.147-40.96l62.293-62.293c10.667 5.12 21.333 10.24 32.853 14.080zM122.027 707.84l100.693-100.693c-32.853-52.053-52.053-113.92-52.053-180.48 0-94.293 38.827-179.2 100.693-240.64l-100.693-100.693h256v256l-95.573-95.573c-46.080 46.507-75.093 110.080-75.093 180.907 0 42.667 10.667 82.773 29.013 118.187l344.747-344.747c-10.667-5.547-21.333-10.667-32.853-14.507v-89.173c34.133 8.96 66.133 23.040 95.147 40.96l100.693-100.693 54.187 54.187-670.293 671.147-54.613-54.187zM853.333 768h-256v-256l95.573 95.573c46.080-46.507 75.093-110.080 75.093-180.907 0-42.667-10.667-82.773-29.013-118.187l62.293-62.293c32.853 52.053 52.053 113.92 52.053 180.48 0 94.293-38.827 179.2-100.693 240.64l100.693 100.693z" /> | ||
727 | <glyph unicode="" d="M128 426.667c0-94.293 38.827-179.2 100.693-240.64l-100.693-100.693h256v256l-95.573-95.573c-46.080 46.507-75.093 110.080-75.093 180.907 0 111.36 71.253 206.080 170.667 241.067v89.173c-147.2-37.973-256-171.093-256-330.24zM469.333 213.334h85.333v85.333h-85.333v-85.333zM896 768h-256v-256l95.573 95.573c46.080-46.507 75.093-110.080 75.093-180.907 0-111.36-71.253-206.080-170.667-241.067v-89.173c147.2 37.973 256 171.093 256 330.24 0 94.293-38.827 179.2-100.693 240.64l100.693 100.693zM469.333 384h85.333v256h-85.333v-256z" /> | ||
728 | <glyph unicode="" d="M512 768v128l-170.667-170.667 170.667-170.667v128c141.227 0 256-114.773 256-256 0-43.093-10.667-84.053-29.867-119.467l62.293-62.293c33.28 52.48 52.907 114.773 52.907 181.76 0 188.587-152.747 341.333-341.333 341.333zM512 170.667c-141.227 0-256 114.773-256 256 0 43.093 10.667 84.053 29.867 119.467l-62.293 62.293c-33.28-52.48-52.907-114.773-52.907-181.76 0-188.587 152.747-341.333 341.333-341.333v-128l170.667 170.667-170.667 170.667v-128z" /> | ||
729 | <glyph unicode="" d="M725.333 895.574l-426.667 0.427c-46.933 0-85.333-38.4-85.333-85.333v-768c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v768c0 46.933-38.4 84.907-85.333 84.907zM725.333 128h-426.667v597.333h426.667v-597.333zM682.667 384h-128v213.333h-85.333v-213.333h-128l170.667-170.667 170.667 170.667z" /> | ||
730 | <glyph unicode="" d="M85.333 256v-85.333c117.76 0 213.333-95.573 213.333-213.333h85.333c0 165.12-133.547 298.667-298.667 298.667zM85.333 85.334v-128h128c0 70.827-57.173 128-128 128zM85.333 426.667v-85.333c212.053 0 384-171.947 384-384h85.333c0 259.413-209.92 469.333-469.333 469.333zM725.333 895.574l-426.667 0.427c-46.933 0-85.333-38.4-85.333-85.333v-314.453c29.44-6.827 58.027-15.787 85.333-27.307v256.427h426.667v-554.667h-129.28c22.187-53.333 35.84-110.507 40.533-170.667h88.747c46.933 0 85.333 38.4 85.333 85.333v725.333c0 46.933-38.4 84.907-85.333 84.907z" /> | ||
731 | <glyph unicode="" d="M807.253 724.907c-8.533 25.173-32.427 43.093-60.587 43.093h-469.333c-28.16 0-51.627-17.92-60.587-43.093l-88.747-255.573v-341.333c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v42.667h512v-42.667c0-23.467 19.2-42.667 42.667-42.667h42.667c23.467 0 42.667 19.2 42.667 42.667v341.333l-88.747 255.573zM277.333 298.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM746.667 298.667c-35.413 0-64 28.587-64 64s28.587 64 64 64 64-28.587 64-64-28.587-64-64-64zM213.333 512l64 192h469.333l64-192h-597.333z" /> | ||
732 | <glyph unicode="" d="M0 298.667h85.333v256h-85.333v-256zM128 213.334h85.333v426.667h-85.333v-426.667zM938.667 554.667v-256h85.333v256h-85.333zM810.667 213.334h85.333v426.667h-85.333v-426.667zM704 810.667h-384c-35.413 0-64-28.587-64-64v-640c0-35.413 28.587-64 64-64h384c35.413 0 64 28.587 64 64v640c0 35.413-28.587 64-64 64zM682.667 128h-341.333v597.333h341.333v-597.333z" /> | ||
733 | <glyph unicode="" d="M853.333 853.334h-682.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-768 170.667 170.667h597.333c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM768 341.334l-170.667 136.533v-136.533h-341.333v341.333h341.333v-136.533l170.667 136.533v-341.333z" /> | ||
734 | <glyph unicode="" d="M938.667 768v21.333c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667v-21.333c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667h213.333c23.467 0 42.667 19.2 42.667 42.667v170.667c0 23.467-19.2 42.667-42.667 42.667zM904.533 768h-145.067v21.333c0 40.107 32.427 72.533 72.533 72.533s72.533-32.427 72.533-72.533v-21.333zM807.253 426.667c1.707-14.080 3.413-28.16 3.413-42.667 0-88.747-34.133-169.387-89.6-229.973-11.093 34.56-42.667 59.307-81.067 59.307h-42.667v128c0 23.467-19.2 42.667-42.667 42.667h-256v85.333h85.333c23.467 0 42.667 19.2 42.667 42.667v85.333h85.333c46.933 0 85.333 38.4 85.333 85.333v108.373c-40.533 12.8-83.2 19.627-128 19.627-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667c0 14.507-0.853 28.587-2.133 42.667h-86.613zM426.667 45.654c-168.533 20.907-298.667 164.267-298.667 338.347 0 26.453 3.413 51.627 8.96 76.373l204.373-204.373v-42.667c0-46.933 38.4-85.333 85.333-85.333v-82.347z" /> | ||
735 | <glyph unicode="" d="M512 682.667c47.36 0 85.333 38.4 85.333 85.333 0 16.213-4.267 31.147-12.373 43.947l-72.96 126.72-72.96-126.72c-8.107-12.8-12.373-27.733-12.373-43.947 0-46.933 38.4-85.333 85.333-85.333zM708.267 256.427l-45.653 45.653-46.080-45.653c-55.467-55.467-152.747-55.893-208.64 0l-45.653 45.653-46.507-45.653c-27.733-27.733-64.853-43.093-104.107-43.093-31.147 0-59.733 9.813-83.627 26.027v-196.693c0-23.467 19.2-42.667 42.667-42.667h682.667c23.467 0 42.667 19.2 42.667 42.667v196.693c-23.893-16.213-52.48-26.027-83.627-26.027-39.253 0-76.373 15.36-104.107 43.093zM768 554.667h-213.333v85.333h-85.333v-85.333h-213.333c-70.827 0-128-57.173-128-128v-65.707c0-46.080 37.547-83.627 83.627-83.627 22.187 0 43.52 8.533 58.88 24.32l91.307 90.88 90.88-90.88c31.573-31.573 86.613-31.573 118.187 0l91.307 90.88 90.88-90.88c15.787-15.787 36.693-24.32 58.88-24.32 46.080 0 83.627 37.547 83.627 83.627v65.707c0.427 70.827-56.747 128-127.573 128z" /> | ||
736 | <glyph unicode="" d="M512 640v170.667h-426.667v-768h853.333v597.333h-426.667zM256 128h-85.333v85.333h85.333v-85.333zM256 298.667h-85.333v85.333h85.333v-85.333zM256 469.334h-85.333v85.333h85.333v-85.333zM256 640h-85.333v85.333h85.333v-85.333zM426.667 128h-85.333v85.333h85.333v-85.333zM426.667 298.667h-85.333v85.333h85.333v-85.333zM426.667 469.334h-85.333v85.333h85.333v-85.333zM426.667 640h-85.333v85.333h85.333v-85.333zM853.333 128h-341.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h341.333v-426.667zM768 469.334h-85.333v-85.333h85.333v85.333zM768 298.667h-85.333v-85.333h85.333v85.333z" /> | ||
737 | <glyph unicode="" d="M341.333 512h-128v128h-85.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333zM768 469.334c70.827 0 127.573 57.173 127.573 128s-56.747 128-127.573 128c-13.653 0-26.88-2.133-38.827-5.973 24.32-34.56 38.4-76.373 38.4-122.027s-14.507-87.040-38.4-122.027c11.947-3.84 25.173-5.973 38.827-5.973zM554.667 469.334c70.827 0 127.573 57.173 127.573 128s-56.747 128-127.573 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM837.12 377.174c35.413-31.147 58.88-70.827 58.88-121.173v-85.333h128v85.333c0 65.707-101.12 106.24-186.88 121.173zM554.667 384c-85.333 0-256-42.667-256-128v-85.333h512v85.333c0 85.333-170.667 128-256 128z" /> | ||
738 | <glyph unicode="" d="M682.667 469.334c70.827 0 127.573 57.173 127.573 128s-56.747 128-127.573 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM341.333 469.334c70.827 0 127.573 57.173 127.573 128s-56.747 128-127.573 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM341.333 384c-99.413 0-298.667-49.92-298.667-149.333v-106.667h597.333v106.667c0 99.413-199.253 149.333-298.667 149.333zM682.667 384c-12.373 0-26.453-0.853-41.387-2.133 49.493-35.84 84.053-84.053 84.053-147.2v-106.667h256v106.667c0 99.413-199.253 149.333-298.667 149.333z" /> | ||
739 | <glyph unicode="" d="M640 469.334v256l-128 128-128-128v-85.333h-256v-597.333h768v426.667h-256zM298.667 128h-85.333v85.333h85.333v-85.333zM298.667 298.667h-85.333v85.333h85.333v-85.333zM298.667 469.334h-85.333v85.333h85.333v-85.333zM554.667 128h-85.333v85.333h85.333v-85.333zM554.667 298.667h-85.333v85.333h85.333v-85.333zM554.667 469.334h-85.333v85.333h85.333v-85.333zM554.667 640h-85.333v85.333h85.333v-85.333zM810.667 128h-85.333v85.333h85.333v-85.333zM810.667 298.667h-85.333v85.333h85.333v-85.333z" /> | ||
740 | <glyph unicode="" d="M511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333zM661.333 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM362.667 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64-64-28.587-64-64 28.587-64 64-64zM512 192c99.413 0 183.893 62.293 218.027 149.333h-436.053c34.133-87.040 118.613-149.333 218.027-149.333z" /> | ||
741 | <glyph unicode="" d="M490.667-0c46.933 0 85.333 38.4 85.333 85.333h-170.667c0-46.933 38.4-85.333 85.333-85.333zM768 256v234.667c0 130.987-90.88 240.64-213.333 269.653v29.013c0 35.413-28.587 64-64 64s-64-28.587-64-64v-29.013c-122.453-29.013-213.333-138.667-213.333-269.653v-234.667l-85.333-85.333v-42.667h725.333v42.667l-85.333 85.333zM682.667 213.334h-384v277.333c0 106.24 85.76 192 192 192s192-85.76 192-192v-277.333z" /> | ||
742 | <glyph unicode="" d="M490.667-0c46.933 0 85.333 38.4 85.333 85.333h-170.667c0-46.933 38.4-85.333 85.333-85.333zM768 490.667c0 130.987-90.88 240.64-213.333 269.653v29.013c0 35.413-28.587 64-64 64s-64-28.587-64-64v-29.013c-21.76-5.12-42.24-13.653-61.867-23.893l403.2-402.773v157.013zM756.48 128l85.333-85.333 54.187 54.187-713.813 713.813-54.187-54.187 124.587-124.587c-24.747-41.387-39.253-89.6-39.253-141.227v-234.667l-85.333-85.333v-42.667h628.48z" /> | ||
743 | <glyph unicode="" d="M280.747 785.92l-61.013 61.013c-101.973-77.653-169.387-198.4-175.787-334.933h85.333c6.4 113.067 64.427 212.053 151.467 273.92zM852.053 512h85.333c-6.4 136.533-73.813 257.28-176.213 334.933l-61.013-61.013c87.467-61.867 145.493-160.853 151.893-273.92zM768 490.667c0 130.987-90.88 240.64-213.333 269.653v29.013c0 35.413-28.587 64-64 64s-64-28.587-64-64v-29.013c-122.453-29.013-213.333-138.667-213.333-269.653v-234.667l-85.333-85.333v-42.667h725.333v42.667l-85.333 85.333v234.667zM490.667-0c5.973 0 11.52 0.427 17.067 1.707 27.733 5.547 50.773 24.747 61.44 50.347 4.267 10.24 6.827 21.333 6.827 33.28h-170.667c0-46.933 38.4-85.333 85.333-85.333z" /> | ||
744 | <glyph unicode="" d="M490.667-0c46.933 0 85.333 38.4 85.333 85.333h-170.667c0-46.933 38.4-85.333 85.333-85.333zM768 256v234.667c0 130.987-90.88 240.64-213.333 269.653v29.013c0 35.413-28.587 64-64 64s-64-28.587-64-64v-29.013c-122.453-29.013-213.333-138.667-213.333-269.653v-234.667l-85.333-85.333v-42.667h725.333v42.667l-85.333 85.333zM597.333 520.534l-119.467-145.067h119.467v-76.8h-213.333v76.8l119.467 145.067h-119.467v76.8h213.333v-76.8z" /> | ||
745 | <glyph unicode="" d="M490.667-0c46.933 0 85.333 38.4 85.333 85.333h-170.667c0-46.933 38.4-85.333 85.333-85.333zM768 256v234.667c0 130.987-90.88 240.64-213.333 269.653v29.013c0 35.413-28.587 64-64 64s-64-28.587-64-64v-29.013c-122.453-29.013-213.333-138.667-213.333-269.653v-234.667l-85.333-85.333v-42.667h725.333v42.667l-85.333 85.333z" /> | ||
746 | <glyph unicode="" d="M128 725.334v-256h213.333l-42.667 170.667 170.667-42.667v213.333h-256c-46.933 0-85.333-38.4-85.333-85.333zM341.333 384h-213.333v-256c0-46.933 38.4-85.333 85.333-85.333h256v213.333l-170.667-42.667 42.667 170.667zM725.333 213.334l-170.667 42.667v-213.333h256c46.933 0 85.333 38.4 85.333 85.333v256h-213.333l42.667-170.667zM810.667 810.667h-256v-213.333l170.667 42.667-42.667-170.667h213.333v256c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
747 | <glyph unicode="" d="M853.333 768h-135.253l-78.080 85.333h-256l-78.080-85.333h-135.253c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM512 640c69.547 0 130.56-33.707 169.813-85.333h-169.813c-70.827 0-128-57.173-128-128 0-14.933 2.987-29.44 7.68-42.667h-88.747c-2.56 13.653-4.267 28.16-4.267 42.667 0 117.76 95.573 213.333 213.333 213.333zM512 213.334c-69.547 0-130.56 33.707-169.813 85.333h169.813c70.827 0 128 57.173 128 128 0 14.933-2.987 29.44-7.68 42.667h88.747c2.987-13.653 4.267-28.16 4.267-42.667 0-117.76-95.573-213.333-213.333-213.333z" /> | ||
748 | <glyph unicode="" d="M704 384c-51.2 0-130.987-14.507-192-42.667-61.013 28.587-140.8 42.667-192 42.667-92.587 0-277.333-46.080-277.333-138.667v-117.333h938.667v117.333c0 92.587-184.747 138.667-277.333 138.667zM533.333 192h-426.667v53.333c0 23.040 109.227 74.667 213.333 74.667s213.333-51.627 213.333-74.667v-53.333zM917.333 192h-320v53.333c0 19.627-8.533 36.693-22.187 52.053 37.547 12.8 83.627 22.613 128.853 22.613 104.107 0 213.333-51.627 213.333-74.667v-53.333zM320 426.667c82.347 0 149.333 66.987 149.333 149.333s-66.987 149.333-149.333 149.333-149.333-66.987-149.333-149.333 66.987-149.333 149.333-149.333zM320 661.334c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333-85.333 38.4-85.333 85.333 38.4 85.333 85.333 85.333zM704 426.667c82.347 0 149.333 66.987 149.333 149.333s-66.987 149.333-149.333 149.333-149.333-66.987-149.333-149.333 66.987-149.333 149.333-149.333zM704 661.334c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333-85.333 38.4-85.333 85.333 38.4 85.333 85.333 85.333z" /> | ||
749 | <glyph unicode="" d="M682.667 469.334c70.827 0 127.573 57.173 127.573 128s-56.747 128-127.573 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM341.333 469.334c70.827 0 127.573 57.173 127.573 128s-56.747 128-127.573 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM341.333 384c-99.413 0-298.667-49.92-298.667-149.333v-106.667h597.333v106.667c0 99.413-199.253 149.333-298.667 149.333zM682.667 384c-12.373 0-26.453-0.853-41.387-2.133 49.493-35.84 84.053-84.053 84.053-147.2v-106.667h256v106.667c0 99.413-199.253 149.333-298.667 149.333z" /> | ||
750 | <glyph unicode="" d="M640 426.667c94.293 0 170.667 76.373 170.667 170.667s-76.373 170.667-170.667 170.667-170.667-76.373-170.667-170.667 76.373-170.667 170.667-170.667zM256 512v128h-85.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128zM640 341.334c-113.92 0-341.333-57.173-341.333-170.667v-85.333h682.667v85.333c0 113.493-227.413 170.667-341.333 170.667z" /> | ||
751 | <glyph unicode="" d="M512 686.934c49.493 0 89.6-40.107 89.6-89.6s-40.107-89.6-89.6-89.6-89.6 40.107-89.6 89.6 40.107 89.6 89.6 89.6zM512 302.934c126.72 0 260.267-62.293 260.267-89.6v-46.933h-520.533v46.933c0 27.307 133.547 89.6 260.267 89.6zM512 768c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667 170.667 76.373 170.667 170.667-76.373 170.667-170.667 170.667zM512 384c-113.92 0-341.333-57.173-341.333-170.667v-128h682.667v128c0 113.493-227.413 170.667-341.333 170.667z" /> | ||
752 | <glyph unicode="" d="M512 426.667c94.293 0 170.667 76.373 170.667 170.667s-76.373 170.667-170.667 170.667-170.667-76.373-170.667-170.667 76.373-170.667 170.667-170.667zM512 341.334c-113.92 0-341.333-57.173-341.333-170.667v-85.333h682.667v85.333c0 113.493-227.413 170.667-341.333 170.667z" /> | ||
753 | <glyph unicode="" d="M426.667 597.334h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667zM618.667 679.254v-77.653l106.667 21.333v-452.267h85.333v554.667z" /> | ||
754 | <glyph unicode="" d="M810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM384 213.334h-85.333v298.667h85.333v-298.667zM554.667 213.334h-85.333v426.667h85.333v-426.667zM725.333 213.334h-85.333v170.667h85.333v-170.667z" /> | ||
755 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM469.333 88.32c-168.533 20.907-298.667 164.267-298.667 338.347 0 26.453 3.413 51.627 8.96 76.373l204.373-204.373v-42.667c0-46.933 38.4-85.333 85.333-85.333v-82.347zM763.733 196.694c-11.093 34.56-42.667 59.307-81.067 59.307h-42.667v128c0 23.467-19.2 42.667-42.667 42.667h-256v85.333h85.333c23.467 0 42.667 19.2 42.667 42.667v85.333h85.333c46.933 0 85.333 38.4 85.333 85.333v17.493c125.013-50.773 213.333-173.227 213.333-316.16 0-88.747-34.133-169.387-89.6-229.973z" /> | ||
756 | <glyph unicode="" d="M213.333 376.32v-170.667l298.667-162.987 298.667 162.987v170.667l-298.667-162.987-298.667 162.987zM512 810.667l-469.333-256 469.333-256 384 209.493v-294.827h85.333v341.333l-469.333 256z" /> | ||
757 | <glyph unicode="" d="M768 252.587c-32.427 0-61.44-12.8-83.627-32.853l-304.213 177.067c2.133 9.813 3.84 19.627 3.84 29.867s-1.707 20.053-3.84 29.867l300.8 175.36c23.040-21.333 53.333-34.56 87.040-34.56 70.827 0 128 57.173 128 128s-57.173 128-128 128-128-57.173-128-128c0-10.24 1.707-20.053 3.84-29.867l-300.8-175.36c-23.040 21.333-53.333 34.56-87.040 34.56-70.827 0-128-57.173-128-128s57.173-128 128-128c33.707 0 64 13.227 87.040 34.56l303.787-177.493c-2.133-8.96-3.413-18.347-3.413-27.733 0-68.693 55.893-124.587 124.587-124.587s124.587 55.893 124.587 124.587-55.893 124.587-124.587 124.587z" /> | ||
758 | <glyph unicode="" d="M576 910.080s31.573-113.067 31.573-204.8c0-87.893-57.6-159.147-145.493-159.147-88.32 0-154.88 71.253-154.88 159.147l1.28 15.36c-86.187-102.4-137.813-235.093-137.813-379.307 0-188.587 152.747-341.333 341.333-341.333s341.333 152.747 341.333 341.333c0 229.973-110.507 435.2-277.333 568.747zM499.627 128c-75.947 0-137.387 59.733-137.387 133.973 0 69.12 44.8 117.76 119.893 133.12 75.52 15.36 153.6 51.627 197.12 110.080 16.64-55.040 25.173-113.067 25.173-172.373 0-113.067-91.733-204.8-204.8-204.8z" /> | ||
759 | <glyph unicode="" d="M810.667 725.334v-597.333h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" /> | ||
760 | <glyph unicode="" d="M810.667 810.667h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c47.36 0 85.333 38.4 85.333 85.333v597.333c0 46.933-37.973 85.333-85.333 85.333zM426.667 213.334l-213.333 213.333 60.16 60.16 153.173-152.747 323.84 323.84 60.16-60.587-384-384z" /> | ||
761 | <glyph unicode="" d="M512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333z" /> | ||
762 | <glyph unicode="" d="M512 640c-117.76 0-213.333-95.573-213.333-213.333s95.573-213.333 213.333-213.333 213.333 95.573 213.333 213.333-95.573 213.333-213.333 213.333zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667 426.667 191.147 426.667 426.667-191.147 426.667-426.667 426.667zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333 341.333-152.747 341.333-341.333-152.747-341.333-341.333-341.333z" /> | ||
763 | <glyph unicode="" d="M938.667 523.094l-306.773 26.453-119.893 282.453-119.893-282.88-306.773-26.027 232.96-201.813-69.973-299.947 263.68 159.147 263.68-159.147-69.547 299.947 232.533 201.813zM512 260.267v396.8l72.96-172.373 186.88-16.213-141.653-122.88 42.667-182.613-160.853 97.28z" /> | ||
764 | <glyph unicode="" d="M938.667 544.427l-306.773 26.453-119.893 282.453-119.893-282.88-306.773-26.027 232.96-201.813-69.973-299.947 263.68 159.147 263.68-159.147-69.547 299.947 232.533 201.813zM512 281.6l-160.427-96.853 42.667 182.613-141.653 122.88 186.88 16.213 72.533 171.947 72.96-172.373 186.88-16.213-141.653-122.88 42.667-182.613-160.853 97.28z" /> | ||
765 | <glyph unicode="" d="M512 201.814l263.68-159.147-69.973 299.947 232.96 201.813-306.773 26.027-119.893 282.88-119.893-282.88-306.773-26.027 232.96-201.813-69.973-299.947z" /> | ||
766 | <glyph unicode="" d="M1032.533 597.334l59.733 72.533c-21.333 12.8-226.133 183.467-537.6 183.467s-516.267-170.667-537.6-183.467l537.6-669.867 298.667 371.2v226.133c0 0 179.2 0 179.2 0z" horiz-adv-x="1109" /> | ||
767 | <glyph unicode="" d="M900.267 576c34.133 0 68.267-8.533 98.133-25.6l93.867 119.467c-17.067 12.8-221.867 183.467-533.333 183.467s-516.267-170.667-537.6-183.467l537.6-669.867 179.2 221.867c-34.133 38.4-51.2 85.333-51.2 136.533 0 123.733 98.133 217.6 213.333 217.6z" horiz-adv-x="1109" /> | ||
768 | <glyph unicode="" d="M938.667 597.334v256l-853.333-853.333h682.667v597.333h170.667z" /> | ||
769 | </font></defs></svg> \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.ttf deleted file mode 100644 index e12f0cc4..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.woff b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.woff deleted file mode 100644 index 201581f2..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.woff2 b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.woff2 deleted file mode 100644 index 5efd1b93..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/material-design-icons/Material-Design-Icons.woff2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.ttf deleted file mode 100644 index 68822caf..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.woff b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.woff deleted file mode 100644 index 1f75afdc..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.woff2 b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.woff2 deleted file mode 100644 index 350d1c3a..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Bold.woff2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.ttf deleted file mode 100644 index aa453407..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.woff b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.woff deleted file mode 100644 index 3480c6c8..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.woff2 b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.woff2 deleted file mode 100644 index 9a4d98c4..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Light.woff2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.ttf deleted file mode 100644 index a3c1a1f1..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.woff b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.woff deleted file mode 100644 index 1186773f..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.woff2 b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.woff2 deleted file mode 100644 index d10a5926..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Medium.woff2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.ttf deleted file mode 100644 index 0e58508a..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.woff b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.woff deleted file mode 100644 index f823258a..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.woff2 b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.woff2 deleted file mode 100644 index b7082ef3..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Regular.woff2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.ttf b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.ttf deleted file mode 100644 index 8779333b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.ttf +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.woff b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.woff deleted file mode 100644 index 2a98c1e4..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.woff +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.woff2 b/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.woff2 deleted file mode 100644 index a38025a1..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/font/roboto/Roboto-Thin.woff2 +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/bg-select.png b/src/Wallabag/CoreBundle/Resources/public/themes/material/img/bg-select.png deleted file mode 100644 index 95120441..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/bg-select.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-other_themes.png b/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-other_themes.png deleted file mode 100755 index c90aa46f..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-other_themes.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-square.png b/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-square.png deleted file mode 100644 index d5e05977..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-square.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-w.png b/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-w.png deleted file mode 100755 index 65dc607b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-w.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-wallabag.svg b/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-wallabag.svg deleted file mode 100644 index 40193e1c..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/img/logo-wallabag.svg +++ /dev/null | |||
@@ -1,300 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In --> | ||
3 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ | ||
4 | <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/"> | ||
5 | ]> | ||
6 | <svg version="1.1" | ||
7 | xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" | ||
8 | x="0px" y="0px" width="800px" height="800px" viewBox="0 0 800 800" overflow="visible" enable-background="new 0 0 800 800" | ||
9 | xml:space="preserve"> | ||
10 | <defs> | ||
11 | </defs> | ||
12 | <image overflow="visible" width="800" height="800" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAYAAADbcAZoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ | ||
13 | bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp | ||
14 | bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 | ||
15 | eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz | ||
16 | NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo | ||
17 | dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw | ||
18 | dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv | ||
19 | IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS | ||
20 | ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD | ||
21 | cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl | ||
22 | SUQ9InhtcC5paWQ6MkMyNzEzMDQ4QTgzMTFFM0JGNkJCRDhDMjI5OTRBNkIiIHhtcE1NOkRvY3Vt | ||
23 | ZW50SUQ9InhtcC5kaWQ6MkMyNzEzMDU4QTgzMTFFM0JGNkJCRDhDMjI5OTRBNkIiPiA8eG1wTU06 | ||
24 | RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQzI3MTMwMjhBODMxMUUzQkY2 | ||
25 | QkJEOEMyMjk5NEE2QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQzI3MTMwMzhBODMxMUUz | ||
26 | QkY2QkJEOEMyMjk5NEE2QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w | ||
27 | bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtTNJDcAADxbSURBVHja7N37ddPK2gfgybf2/9ungm0q | ||
28 | IFSAqYBQAaYCQgWECgIVJFRAqABTAaYCvCvY2RXk85yMDibkYsu6zEjPs5ZWuCSxNZKl96eZkQ6u | ||
29 | rq4CAABAF/5PEwAAAAIIAAAggAAAAAggAACAAAIAACCAAAAAAggAACCAAAAACCAAAIAAAgAAIIAA | ||
30 | AAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAAAggAAAAAggAACAAAIAACCAAAAAAggAACCAAAAA | ||
31 | CCAAAIAAAgAAIIAAAAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAACAAAIAAAggAACAAAIAACCA | ||
32 | AAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAgAACAAAggAAAAAIIAACAAAIA | ||
33 | AAggAACAAAIAACCAAAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAAAIIAAAg | ||
34 | gAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAIAAAgAACCAAAAACCAAAIIAAAAACCAAAgAAC | ||
35 | AAAIIAAAAAIIAAAggAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAIAAAgAACCAAAAACCAAA | ||
36 | IIAAAAACiCYAAAAEEAAAYHD+0ATAWB0cHMQvk/VynP5pkRbY13S9zNfLn+vl63q5uO2brq6utBQw | ||
37 | vvOvgx8w8gDyab0cbfxzDCCv1stKC1FTDLRvU7itvLgthDgHAwIIwPgCyJf1Mrvlv5cpjNx59Ro2 | ||
38 | HK6Xl+G612Nyy//HQPtIAAEQQAAB5K4AsukyhZDPwggbpuG69+x1+vNDHoUbPWvOwcAYmYQOjN3l | ||
39 | Ft8Tr2jPw/VwrX/Wy1m4vuLN+FRzhr6tlx/r5XTL8BF2+D4AAQRgwL7XKEDnqQD9lv7M8G0G0FMB | ||
40 | FEAAAahrscfPxiI09obEK+En4fax/5RrmsJG1et1pEkA9mcOCDDeA+D1HJCoqQNhHM71Yb28D9sN | ||
41 | 7SJP83A9oXzW8O99djPwOgcDY6QHBKC5ieWxByTefjX2iBxr1qJUQ+vitjtrIXwAIIAA/M/XForZ | ||
42 | 01TMKmTzDx4nG8Fj2uJr6RUDCIZgAWM+AP4cgjVNBWhbYg/Lm+DhhrmZp6DY1dydg5v/4BwMjJEe | ||
43 | EIDrYNBmOIiTl+MdswzLysMs/OzxmHS4jwEggAD8T9sPGKyGZcUHH041dy8mKXT0sQ0EEAABBOAX | ||
44 | nzt6nVm47g1xS9duxXaPvR7znl7/q00AIIAAbFqE7iYJxyvx8aF2p5q9Eyfhutejz+e0LG0GAAEE | ||
45 | 4LYQ0qU4J+Rb8ADDNoNeHHL1doT7FoAAAlCAzz28Znya+o/0lWbDR+z1mGfwXmLvh1vwAgggAL9Z | ||
46 | 9Fgsf8ukWB5S+Dgc+X4FIIAAZG4V+r1b0ZkQsrfDFOZy6lEyAR1AAAG406Ln1z9LC7urJvdP7VMA | ||
47 | AghAKb5n8B7mQkit8JHjM1bM/wAQQAAeLBhzIITsHj5ynMi/sHkABBCAUgpGIWQ7ZyHfu4iZ/wEg | ||
48 | gAA8aCWEFCM+zDHnp8ovbCIAAQSgpABShRBPTb+9XY4zfn/mfwAIIABbF465OQ5u0bvpsIBQtrCZ | ||
49 | AAQQgG38m+n7ikOxjmye/046P0tfc2b+B4AAArCVnIfN5DzhuiunhbTBwkcJQAAB2MYy4/dWPWxv | ||
50 | MtJtE3uA5oXsQ+Z/AAggAIMwTSFkjOtdyh3BlnZTAAEEYEhmYXx3xiph3kfF/A8AAQRgcOKdscYy | ||
51 | KX2eQlcp9IAA3OHg6upKKwDjPAAeHNz1X7HQ/VLIasR5Bk9Cfs8uaVLs9fgRypr3crDNNzkHA2Ok | ||
52 | BwSg/OJ86E9KPy0sfOj9ABBAAHZS2m1uZ+vlZKDbIq7bvLD3vPIRAhBAAHZR4i1u34ZhPh+kxIn2 | ||
53 | 332EAAQQgDEY2lCs40JDled/AAggADv5s9D3HYv1k4Fsg9gL9bbQ924OCIAAArBzIV+qWLRPB7AN | ||
54 | jsN4n/YOIIAAUJTSh2JNQ7m9H9HCLggggACMySyU/YDCtzYhgAACQFlKe3ZGZRrKu+3uppVdD0AA | ||
55 | ARijWMgfF/i+S+/9EEAABBCA0XodypqQHt/r3GYDEEAAKFNpt7IdwtwPt+AFEEAARm0eyugFmYZh | ||
56 | 9H78a5cDEEAAdvV1YOtTwm153fkKQAABYCBmaclVHCo2H0hbr+xuAAIIwK4uB7hOOfcwHA+onQUQ | ||
57 | AAEEYGdDnEg8C/n2gry2ywEIIABjdjnQ9cqx0J+HMh+YOKbwCtCog6urK60AjPMAeHBw338P9eD4 | ||
58 | KOQ1TOjbejkc0m61yzc7BwNjpAcE4Harga5XTnNBZgMLHwsfGwABBKCuoQ6lmYd8ngvycmBte+lj | ||
59 | AyCAANT1fcDrNs/gPQzp1rtj2GcABBCAli0GvG45TEaf22cAxskkdGC8B8CDB+cLD/kA+Wq9nPf4 | ||
60 | +j9CPkPBmvKfsOMwLOdgYIz0gADc7WLA69bn/IvDAYaPVTAHBEAAAdjT1wGv26zHEDDEBw8ufFwA | ||
61 | BBCAfV0MfP36CgJHA2zLzz4uANsxBwQY7wHwYKtnxg3tQXmb4pCh//QQPj4NsC13nv8ROQcDY6QH | ||
62 | BOB+Hwa8bpPQfW/EywG240Uw/wNAAAFQXG7l+cADTxcMvwIQQAAacxmGPRdknoJBF47sHwAIIAAP | ||
63 | ezfw9Tvu6HWeD7DtDL8C2JFJ6MB4D4DbTUKvnIVhPr07pAL6UcuFdOxl+WeAbRfbbVX3h52DgTHS | ||
64 | AwKwnSH3gkxSwGrT8QDbbbFP+AAQQAC4Tyw0zwe8fnF+xryl3x1vY/xWKAVAAAHYzZsw7PH+bQwz | ||
65 | i+FjiM/9iGF04SMBIIAAtCmGj6Ff9Y4h5DQ0c2esGGa+rJep/QCAiknowHgPgLtNQt8Ui+rZCJoo | ||
66 | 3uHp+3r565YQUT0dfnnj35cpvMwGGDwqsSfsfRO/yDkYEEAABJBtxAL7R+ju+RnkY7FenjX1y5yD | ||
67 | gTEyBAtgd3EIzivNMMrt/kIzAAggAH2Iw5PMAxiXZ8FDBwEEEIAenYRh35qXn2KP11IzAOzPHBBg | ||
68 | vAfA+nNAboq3mT3SooMOH60ETedgQAABEEDqiJPR452xDrWq8CGAANzPECyA/cV5Ac+C4Vi2KQAP | ||
69 | 0gMCjPcA2FwPyKY2niZOt+Jcj3i3q1XbL+QcDIyRHhCAZsUhO280Q7Hinc2edBE+AMZKDwgw3gNg | ||
70 | Oz0glVm4npzuYYVlWKTg2OmdrpyDgTHSAwLQXkH7KH0l7+30LC1uswsggAAUrZrI/CZ4gF1uzjeC | ||
71 | h5AI0CFDsIDxHgDbHYJ1UxyKdRpMUO9T7OH4mMJHFoHQORgQQAAEkLbN1svb9JV2xZBxsV6+pq/Z | ||
72 | 9UI5BwNjZAgWQLcW4XrYTye3eeW/4eM8GAIHIIAAjFy8Ih8nqb8SRFoTh72dpQWATBiCBYz3ANjP | ||
73 | EKy7xPkhx7ZKa+L8j9jzlFVPiHMwMEZ6QAD6Nwsmp7ftcL38SF8BEEAARisGjy/BAwu7MEltLewB | ||
74 | CCAAo2R+Qj8hJLb5iaYA6Ic5IMB4D4D9zgGJRfDcVujVebi+CUBvnIOBMfpDEwB0qhoGZC5C/6oA | ||
75 | 6En1AB3SAwKM9wDYfQ+I8JGn3u6Q5RwMjJE5IADCx9gdBjcCABBAAIQPhBAAAQQA4UMIAUAAARA+ | ||
76 | EEIABBAA4QMhBAABBED4QAgB6J7b8ALjPQC2cxte4WNY4i16n7T1y52DgTHSAwLQrE/Cx6DEbXmm | ||
77 | GQAEEIAcxUJ1phkGZy6EAAggALk5TYUqww0hx5oBYH/mgADjPQA2NwckFqeukI/Dq/Vy3tQvcw4G | ||
78 | BBAAAWRXR+F63gfjESelLwUQAAEEoOsA4lat43SZQshKAAHYnTkgAPXE0PFJ+LDtARBAALoQC9Cp | ||
79 | Zhgtt+cFEEAAOhPveDXTDKMX5/+caAaA3ZgDAoz3AFhvDsg8uPLNr16sl4s6P+gcDAggAALIfUw6 | ||
80 | 5za1J6U7BwNjZAgWwHZi6DgTPrhj33ArZgABBKBRMXwcagbuYFI6gAAC0JjjcD3hGO4zTwsA9zAH | ||
81 | BBjvAXC7OSDxyvY3rcWWdpoP4hwMjJEeEIC7VfM+YJd9xnwQAAEEoJb4vA/zPthV3GdONAPA7QzB | ||
82 | AsZ7ALx/CFac8+FKNvt4tl4W932DczAggAAIIFEcRvMjuOUu+1mF6/kglwIIwE+GYAH87pPwQQOm | ||
83 | wRwigN/oAQHGewC8vQck3nL3tIWXW4Wfd0Zarpd/d/jZv1IxWxW1U1uvKC/Wy8Vt/+EcDAggAOMO | ||
84 | ILGwj7fcrdv7UYWMrxt/jmHjsoW3H9/j4cbXKqTMbNnsxO3/6Lb9wDkYEEAAxh1AvuxYwMdwsUiB | ||
85 | Y9FS0KhjmkJJXJ4KJVmIPSAvBBAAAQQQQCrbDL1apaDxObPAsY3DFESqQGKOS/d+G4rlHAwIIADj | ||
86 | DCDTcPfQq1UqGj+G6x6PoagCyfOgh6Qrvw3Fcg4GBBCAcQaQeNeroxv/XYWOixE0xSSt/9P0Ve9I | ||
87 | e87XyysBBBBAAMYbQDYfOBivTH9IReJqxE0T2+S5MNKa/z2g0DkYEEAAxhVAqgcOhhQ83oey5nV0 | ||
88 | Yb4RRmhGDLePBBBAAAEYXwCJk87/FTy2Mklh5HXwHJImvFsvJ87BgAACMK4AMhE8apmtl5cpkFDf | ||
89 | o/U5eKUZgLH5P00AjJjwUc8iXE+k/s96eRPGPV+m7n73zv4HjJUeEGC8B8DfH0RIffG2vnF4lonr | ||
90 | 9ztP4eO/oc05GBBAAAQQ9hdDyMtg4nol9nRcbAaPinMwIIAACCA0p3q+SPWww7H1jMSwUd3W+dbh | ||
91 | Vs7BgAACIIDQns2HHU4Huo5Vb0d8iOXioW92DgYEEAABhG5MNwLJLJTdO7JKYeNzCh9bcw4GBBAA | ||
92 | AYR+HKbl6cafc3WZAsfX9HVZ9xc5BwMCCIAAQj5mKYj8tRFKuu4puUwBIy7fN/7cCOdgQAABEEAo | ||
93 | I5hsfn28EUymYbf5JYuNP39NX5cbwaPVZ3U4BwMCCIAAAp1xDgbGyJPQAQAAAQQAABBAAAAABBAA | ||
94 | AEAAAQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAAAQQAAAAAEEAAAQQAAAAAQQAABAAAEAABBAAAAA | ||
95 | AQQAABBAAAAABBAAAEAAAQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAADYyR+aAKC2yXo5XC+z9Pen | ||
96 | G/+3XC//rpdF+vPlANb3MC3TW9b17411LX2bztJ6/pm+Vr6mr0PapgCdO7i6utIKwDgPgAcHdX90 | ||
97 | vl6er5ejHX7mYr18SMVrSaZpfV+mPz9kldbzvLACPYaO1zW26cf0tRbnYEAAARBAHipST8OvV8V3 | ||
98 | FQPIiwKK8xg23qbwUcdlCiInma9n7PE42zF43BR7Q16FGr0/zsGAAAIggNzlOIWPJsTi/FnId7jS | ||
99 | cQofkwZ+V+3ivAMxSH5paD1DWs9zAQRAAAHYN4DEK+Tzhl8+xxDSRG9AKevadPioFUKcgwEBBEAA | ||
100 | uanJno/bCvMn4XreRA6+hf2Gl5USQmLo+NFC+Ng5hDgHAwIIgACy6TAV5W1apMK8b6cpbLVpmQJX | ||
101 | 32LPx6zF3791sHQOBsbIc0AA7i/K2zZruRje9j0cd/A6MdDNM1jXtts79qy89fEBEEAAdi2WuwoG | ||
102 | r3te1y5f//lI1nUe2hviBVA0Q7CA8R4A7x+CdRK6vYp90GNTdH0iGMu6PjgXxDkYGCM9IAC3e9rx | ||
103 | 6816Ws/pSF4zOhzJegIIIABka0wBpOshUY/tXgACCAAMNfAACCAAAAACCAAAIIAAAAACCAAAgAAC | ||
104 | AAAIIAAAAAIIAAAggAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAIAAAgAACCAAAAACCAAA | ||
105 | IIAAAAACCAAAgAACAAAIIAAAAAIIAAAggAAAAAggAACAAAIAAAggAAAAAggAACCAAAAACCAAAIAA | ||
106 | AgAACCAAAAACCAAAIIAAAAAIIAAAgAACAAAIIAAAAAIIAAAggAAAAAggAACAAAIAAAggAAAAAggA | ||
107 | ACCAAAAACCAAAIAAAgAACCAAAAACCAAAIIAAAAAIIAAAgAACAAAIIAAAAAIIAAAggAAAAAggAJCT | ||
108 | pSYAEEAAoCv/agIAAQQgVzNN0LqpJgAQQAAQBAQQAAEEYPRWHb/enz2t50wQAEAAAejf3x2/3uGI | ||
109 | 2ravsPV04CEWQAABYGvTkRTlfYatrttYAAEQQACyLR5jcTwZSfDpI4BMgqFfAAIIgADyi1kP4aOP | ||
110 | oryPMDDrYT09BwRAAAHY2mUPr9n1cKhZj+17NPC27WsfAhBAAArVx9Xrrovy5z2279OBt+3KRwhA | ||
111 | AAHIvYichu56JSY9FOU3A8F0gK8lgAAIIABFFZFvO3qd4wzad97R67zuYd2++vgACCAAu+pjGNYs | ||
112 | tN8LMumpKL8tGExbfo2j0M9cl5WPD4AAArCr7z297llo95a8bf/+XYLQWcG/XwABEEAAGtXXbVSn | ||
113 | 6+VLSyEhFuRHGbXxrKWQMGmxDbex8PEBEEAASgkg0WEqoKcNFuSx0J9n2M7z0GyvTNV2hyPcbwAE | ||
114 | EIDCLXoOId/Wy8mexfk8/Z55xu3cxHucpiDzrcfw0fc+A5C9g6urK60AjPMAeHCwzbfF4v9tJm/5 | ||
115 | IlzfXWn5QJF7mIrx+JyPo5DHfI9dXN5Y1/t6FGZpfZ+GfIaWvUjv/0HOwYAAAiCA3FbMf8u8WF+m | ||
116 | kHE48E22Ssth5qHqP2HLp6A7BwMCCIAAcpt/Qnm9CPRjsV6ebfvNzsHAGJkDAvCwC03Alj5rAoD7 | ||
117 | 6QEBxnsA3L4HZBau76oED9l6+FXkHAyMkR4QgIctggfL8bCLXcIHgAACwH0+aALsIwD7MwQLGO8B | ||
118 | cPshWFGchP4jmIzO7Vbr5dGuP+QcDIyRHhCA7cShNa5wc5d3mgBgO3pAgPEeAHfrAYn0gnCbVajR | ||
119 | +xE5BwNjpAcEYHuxF8SVbm56pQkAtqcHBBjvAXD3HpBKfDL6oRYkXN/56kXdH3YOBgQQAAFkG4cp | ||
120 | hDBusUfsUdjj1rvOwcAYGYIFsLtlMBTrMnjmxSttALA7PSDAeA+A9XtAKvHp6LORNt+T9TJdL59G | ||
121 | uv7v18ubfX+JczAwRnpAAOqLY/+XI1zvV2m9L5oowgu0GOl6AzRCDwgw3gPg/j0gUZwPEntCxnJr | ||
122 | 3hg+zm/829l6mY9k/WPwehYaGnrlHAwIIIy9kAKEkF3Dx5hCSKPhA/qi9qNvhmABNFOYPgnDHo51 | ||
123 | X/jY5v+FDwAEEIAGrVKBejGw9YoF94stw0UMIUOcG3GeAqbwASCAAGRZrA+lCF/WCFXvw3B6Ci5T | ||
124 | qPKkcwABBCBrsQiPV8wXA1iHOsPK4no/CmX3Bi3S+p/bnQEEEKBshyNZz6r3IF49XxVYeO/bi1P1 | ||
125 | Br0IZfWGrNJ7flbYdvOZBAQQgDschfHcsjY6D9e9AbkHkVV6j89Cs5PpL9L6v8s8iFTrX3rPza6m | ||
126 | 6TMJ0Bm34R3KhnQbXsoKIE/DeB/kNl8vL0M+T1BfrJePoZuhRpO0/q9T4ZuDi7T+FyPdH+OT7D+E | ||
127 | socLsiO1HwIIAghjE4vQf8L1lfYxFz3TjTDW9RXo5UbRvepp/Q9TEDvqIYzE9f6cvo75zlYxDMbn | ||
128 | tziBCCAggCCAMHjfUtHZ9HCfks1SUf44fW1qXP5lauOv6esiw6J7mta/WvdZw2ErLt831p+fD8+s | ||
129 | 5iohgIAAggDCoJ2ul+NwffXd8xXuNtkIIodhu7kzlxuhbjHidV/arx4MH7FN41DI95pEAAEBBAGE | ||
130 | oZulAqgqGvWEQPfhI4T6t1pGAAEBRAARQCjOPxtFUHXL1oVmgdbE+TZnG5+7Vbi+6xcCCHTKbXiB | ||
131 | vmyGjVgQxauyJ5oFWhGHPX4Kvw5lE/gBAQQYlc+3/NvbFESmmgcaEYdcxZs+HG/5GQRonSFYQ9mQ | ||
132 | hmBRnup2vHeJD6470UxQ+/N1nEL9beKwx/9opnFS+9E3PSBAX2IBdN/D32Lh9CNcP6sA2F78zHy7 | ||
133 | J3yEMN4HLwICCDByDw0BmYbrSbNxWNZMc8GDweNH+sxM9/zsAbTGEKyhbEhDsCjTQ8Owblqslw/B | ||
134 | 1Vu4GTzehu3nThl+NXJqP/qmBwToUyyEznf4/lm4vpNPNTRrogkZcXg/Dtv3eGwS4IFe6QEZyobU | ||
135 | A0K5Yqj4smeAib0iK03JCMS7Wr0O18/0qBvAPXxw5NR+CCAIIHB9FXe65+9Yhp/Dsy41KQMSg8Z8 | ||
136 | vbxMAWTfz8kTTSqAQJ8MwQJy8LGB3xELszgUJc4p+RTcPYthhI5PaZ8+bSB8hBTSAXqlB2QoG1IP | ||
137 | COUXW/+09Ltjj8jnoGeEMj4HcWjV8/S1aXH/f+RzgNoPAQQBBK7F3ot5y6+x2AgjK01OBmKvxiw0 | ||
138 | M7zqIefr5ZUmR+2HAIIAAtfiHX1OO3y91UYgiV9dFaYLVS/H0xQ8ph2+9iPBGwEEAQQBBH6KxdiX | ||
139 | Hl9/mYLIV4GEBsWAcbgROA57eh/nQe8HAggCCAII/KLNeSB1rDYCyTK4bSnbqYZUPQ7d93Dc51na | ||
140 | n0EAQQBBAIHN82Lm72+Rgsh3oYQUNg5T2KiCR6777TObCwEEAQQBBH73JeMi7r7ibnUjlBi+NSyT | ||
141 | G2FjWth+qvcDAYSs/KEJAPZyWyF6uRFG/g0/55ToMcnbYQobcZv+FX7O35gUvE4L4QPIjR6QoWxI | ||
142 | PSAMw8l6eTvwdVylpQony41wouekXZONQBG//pm+TkM+czWapveD36j96JseEIBuVcXu7I7/r4JI | ||
143 | DCl/p39b3Agv/G6zp6Jq28fp34YcMO5zIXwAOdIDMpQNqQeEYYiF4xfNsJXNMLIZVjZDzF1/LyGg | ||
144 | VareinAjVIQRB4ttee4Ht1L70Tc9IABl2rf43mZOytc93+PTB/6/9PkVOXsvfAC50gMylA2pB4Rh | ||
145 | iAXpN80Ae4nh8lEwp4g7qP3o2/9pAiAj7hIF+3sjfAA50wMylA2pB4ThcFCC+hbBQwd56CCr9kMA | ||
146 | QQABAQQa8iToSUQAIXOGYAG5UTxBPe98fgABBGB3xq5DveB+ohkAAQQA6MIrTQAIIABAFwy9AgQQ | ||
147 | AKATi2DoFSCAAAAdiPOlDL0CBBAAoBMxfKw0AyCAAABte79eLjQDIIAAAG1brJc3mgEQQACAtsW7 | ||
148 | Xb3QDIAAAgC0rZp07mGdgAACALQu9nx43gcggAAArYs9HwvNAAggAM2bagL4RZxwfq4ZgKE4uLq6 | ||
149 | 0gpD2JAHBxqBoXBQgp9i8PCwQZo9yKr96JkeEAAQPgAEEAAQPgAEEIA2zTQBCB+AAAIACB8AAggw | ||
150 | OFNNgPABIIAACCDQrvfCBzAWf2gCICN/aQJGKAaPc80AjIUeECAnU03AiFwKH8AYeRDhUDakBxEy | ||
151 | DP+sl4lmYCTh49l6WWoKuqb2QwBBAIGN86ImYASWKXxcagoEEMbIECwgFzNNwAicr5cnwgcggAD0 | ||
152 | 71ATMGDVfA93ugJGz12wgFy4AxZDtUzBw3wPgKAHBMiHHhCG6DyYbA7wC5PQh7IhTUKnfA5GDEk1 | ||
153 | 5OpCU5DdwVbtR88MwQJyMNMEDMhivbwIJpoD3MoQLCAHhl8xBFWvh1vsAtxDDwiQg6eagMJdpPAh | ||
154 | eAA8wByQoWxIc0AomyegU6pVCh4LTUEp1H70zRAsoG+HwgcFij0d79bLI+EDYDeGYAF9Oyq4AI23 | ||
155 | Vp2mhfE4Xy9vguFWALXoAQH69rzA9xyDR7zy/Wzj68KmHLy43Z8Ecz0ABBCgWNNQ5h2wPtwoQBcp | ||
156 | hLj16nCdBw8UBBBAgOLNCn3fqzv+Pd4J6YkidZDhQ68HgAACDMDzQt/35QPh5EkqWhlO+ACgIW7D | ||
157 | O5QN6Ta8lGe6Xn6U+pHb8vvO1svcphY+ICdqP/qmBwToy9EI1vFV0BNSqlW4vtMVAAIIMBAvC33f | ||
158 | ixohZGFzFxkezfkAEECAgTgMZd79KtQsSg3jKcu50AgggADD8rrg9/69xs+sgqFYJXmnCQAEEGA4 | ||
159 | JqHsidl1b7H72aYvwnm4+zbLAAggQIGOC3//dYtT8wnKICgCtMxteIeyId2Gl3LEW+9OS/641fy5 | ||
160 | aSj3tsNjEUPifzQDQ6f2o296QIAuzQsPH4s9fnZl89cOBV31Hl1oboD2/aEJgA69Lfz9Lwt6r6tU | ||
161 | UP+7Xv4M13cdm2YcAFdpiW38d/q63AgfJx3sP199RAEEEGA45qHs3o+SCtT4AL339/x/DCOTja9V | ||
162 | QAkthZQqXFQh7t8ULJYbXx/SRQBZ+ZgCtM8ckKFsSHNAyF/pcz+i/4T9hgN1ccB9KHzsahJ2f2bL | ||
163 | MrQzbKrt9nMgZRTUfvRNDwjQhZMBhI+2iuomrRoOHyGt8yKDdZv6GAEMg0noQNviFfTXA1iPRQHv | ||
164 | 8cOA96NDHyUAAQRgG2cphJTuYwHvcTng/ei5jxKAAALwkPl6ORrAeqwaKO67uIK/GPC+NOvgNfSy | ||
165 | AAggQMFiMXc6kHVp4vkQXfQCTQe6Lx11tG5HPrYAAghQplhsD2XoVdTE8KuZAFJbV3OIXg5onwUQ | ||
166 | QIBR+RKGM5xlFZqZW/G4g/c6xHkSs47CWxXgjn18AdrlOSBD2ZCeA0I+Ys/HfEDr09RzNbo42Maw | ||
167 | 9GhAbR97I76F7nt2noVhz6dh5NR+9E0PCCB83C0+A+O8gd/TVZvEQn1IV/Dfhn6GlX0KJqQDtEYP | ||
168 | yFA2pB4QhI82xPDxqoHfE4ekzToMTU/CdW9IyWLw+NFz+HwU8n/4JOxM7Uff9IAA+4rDZD4NMHxE | ||
169 | 7xr4HbMOw8fm9ih9MvVZBvt1HP6lJwSgYXpAhrIh9YDQX5E2pAnnm85DM70ffRWxceJ8nMtQ4hX8 | ||
170 | aei392PTZWrHpY87Q6H2o296QIC6DsOwrxA30ftx3GP7HKZwWGJPSE7P46hC9txHHkAAAfotEGNR | ||
171 | Nh3o+sW7Xq0aKFzfZhASS+yhmmT4fuKQsBMffQABBOhefLr5EOYY3CUOuWmq9yOHNqpCyNyuu7e3 | ||
172 | odxeJQABBCjONFwPuRr6g9rehf3nTcQC9XVG61RdwS8lOC4yfm+zcD0/ZeaQACCAAO05DuO4I1As | ||
173 | fJt46OBRpoX+USqej0ayHdoMdLEn5MShAUAAAZo1TYXWaRj+sJPY6/GqwXbLuXj+FPLvDXkT8n8a | ||
174 | +dvgVr0AAgjQmKrXYzaS9Y1Dr1Yj2r5Vb0jOQ+pehGaeRN+mao7NcQBgK54DMpQN6TkgNFtQnYVx | ||
175 | XdW9SMVuU2apKC3FIlz3OOT6rIu4P84LacdXIwuyFEjtR9/0gACVaqLy2IaULENzQ682C9H3BbXB | ||
176 | LG33XIfaxe1zXlA76g0BuIcekKFsSD0g7OckXN+1aWy3F237KdenBRajsU3eZFrwH6c2LcEi6A0h | ||
177 | U2o/BBAEEPo0D9cTaacjXf8nof1hR/NQ5iT+RchzWFZsz7OCwlycW/Q+gAACAogAguAx6uARdTms | ||
178 | J7ZzvOtUiUPb3odmno3SpGridymhLtcwhwACvTAHBMYXPOKdj86Ej06HGK3CdW/LuwLb6jjtM/OM | ||
179 | 3tMydNN71ZRZuJ4bcuIQBKAHZDgbUg8Id4tXieMtV8fe49FX+LitGC01AC5SiFpktG9/CmXdKnqV | ||
180 | 9sGFjyJ9UfshgCCA0JZY4M7DOCeX5xo+Ngvns5D/E8nvEtswDinKZVhWiZP9cxzahgACAggCCLXM | ||
181 | 1svLUMZzE7rS9t2u6pqHcp8yn9sE63koZ3L6ZhvGUHzhI4oAggCCAEJpJuFnb8dUc/yies5HrvMF | ||
182 | pqlwnhXcvrE3ZJHBeyltcnplEdyyFwEEAQQBhELEITzPg96Ou1ykwq6EYS4n4XqeTslt/SaDIrrE | ||
183 | eSEh7aMfgonqCCAIIAggZChe5X2ZwsdUc9xZzOX6ML2Htu1ZKPdJ9DkV0SXOC4ly6lFCAAEBBAFE | ||
184 | 6BA6thALt9KHs5RaPFdWIY87Pc1DuXNsTFJHAEEAQQChc7NwPbxK6NhOqb0e923/0p/XksOwrJJ7 | ||
185 | lUxSRwBBAEEAoVXV8zqepq9unbu96m5MlwPcJ+K8kJJ7Q3IYlhXbMfaEzAttw0UwSR0BBAGEDANI | ||
186 | PMEebpysKEMVOGah3HH/fTpP4WPohVncP0rvDVmF/odlzUPZtz02SR0BBAGErALIl/Dzri/ViWqI | ||
187 | V4RLNtkIGk9DubddFTz6239K7w2J+h6WVfpE/xyCHAIICCD8N4DctSGXafk7nbCWQkmnhU4VNg6D | ||
188 | Ho59Xabg8SGMeyjKLJTfG9L3QwyHEObOQ15Po0cAAQFkhAFkswdkm5P/ZjBZCiaNFIUxYPyVvs40 | ||
189 | SWNWKXSc20cHVUCH0P8tZ49SmCt1vtXQbryAAIIAQmEBJBa98eFb0z1/1SKd1L6nwm8lnPxS9B2m | ||
190 | No7L040/07w4VOdjcAegh4LvaSi/d63PW86W+uDCm8dtk9QRQBBA6DyAVCfSNu/0UgWReJL7O/zs | ||
191 | SalOgEMJGGGjGHl64++0a5lCx7nQu5OTUPZT1EPof27DcWrDkntD+hzWhgACAshIA0hlmk6kfdzK | ||
192 | dTOUVD0pNwPMpraKjc0wEW4JEX+Fnz0Xh8Etb/suPGMvx9jnduzrMF2AKD0sX6QgctlTG5Y8Qb06 | ||
193 | puoNQQBBAKHzALJZhMcQUj3MrtTidHVHoSA0lCuG0c+p2FxqjkaVfiU/hP4fwHcSyu5R0huCAIIA | ||
194 | Qm8B5LYw4iF39CUWk1/T15XmaNU0XPeGHBW+Huehvzs96Q1BAAEBhD0DyG0n11n4+TwKgYSmLVMB | ||
195 | VIUOuneUgsi04HVYhX7nhpyE8ntD3CkLAQQBhCwCiEBCm4FjEUwiz8VQbtn7LvT3FPAh9Ib0ObcG | ||
196 | AQQEEAFkK9MURB4Hz7Xgd9XNBqqw4VbN+RvCJPW4n70I/Q0pigHodSj3As0qtZ95VwKIRkAAIcsA | ||
197 | clcBcyiUjFIVMr6Hnw+upEzzFERKvt1snxPUp+G6N6Tk418ckmWCugACAghFBJC7Qsl0I5hUf6ZM | ||
198 | MVisbgSNlWYZnCEMy3qfCum+lP4UdUOyBBAQQCg2gGwTTP7a+LO5JXlYhJ/PaalChl6N8ZmlInpa | ||
199 | cGB+1mMRPUntd1Rw+73y2RdAQABhKAHkoaKn+vpn+P3p4zRTWGw+tb76u7kaDK2IvkwhpM8iOvYk | ||
200 | nRbcfn0OaUMAQQBBAMlC1VMyDT+vzD7dKJbGPMRrFX4OiYoF17/h16fPCxjUdRLKvd1sDreajcel | ||
201 | L6HcXl7zQgQQEEAYdQDZ1s0wcnOI1+NbioEchoHdFhKqMHHb92yGDmjTPFz3hpSqz1v1RtP18imU | ||
202 | e5EkBrhXPgYCCAggCCDdFg/Thn7XQnNSqFkqoku9kt93EV36kDYhRAABAQQBBOhc6cOJYhEdhxT1 | ||
203 | ORwxhpB5oe3nDlkCCAggCCCAELKjvu+QFZ2EcufVLFL7IYBA4/5PEwCQaQFfeoCKAaTU4UyzUPZ8 | ||
204 | IEAAAUAIGWUIOS84hMyFEEAAAaCPEFLypOQYQj71/B5KDyFzHwNAAAGgSxeFh5BZ6P9KfskhJD5k | ||
205 | cepjAAggAHRdQL8r+P3PQ7/PCCk5hEyCoVhAg9wFaygb0l2wgG6UfHvZ6EW47tHp0yyU+ayVOB9o | ||
206 | 4SNQPrUffdMDAsAu4hX888IDVN+F/yKUObn/pd0fEEAA6CuELAt97zF8fMrgfZR4h7GpXR8QQADo | ||
207 | y7OCQ8hsvRwJIb/x5HNAAAEgW5eFh5DTTN5HbL9HmbRjfA9xjsz5LWEk/v2D3R5ogknoQ9mQJqED | ||
208 | /YhDmuLD/g4LfO85zWfJpR03J+lPNt7Pwq4+HGo/BBAEEEAI6cdFKrhz0vddxlbhukcGAQQEEAQQ | ||
209 | QAhp4/CZ4Xs6WS9ve3x9t9sVQKBV5oAA0ITS54TkFkBehWYnha92+N7nNgEggAAghOzmTej/gYP7 | ||
210 | OE9tuWrwd77YMtQc2pUBAQQAIWQ3L1PBfd9woveZt2VswycNBalpCjNPguFVgAACgBDSuMO0LNJ7 | ||
211 | iYX3u/T3WNDHIU5vCmnLFw2916MUQp6l33dXb8hnuzDQJpPQh7IhTUIH8tP3xPQYOE4G1J6xHc/2 | ||
212 | aM8qjG1un3m4nvMxS+Hk48DajFuo/RBAEECAoevr1rI3C+6hhLrjUO8uWUNsDwQQCmQIFgBta/qB | ||
213 | f5dhu8nUswG2ZVzvk2AuByCAAMCDIeRVQ78r9gK82TKETAbannF+zbPUpiu7FyCAAMDvzlPR3MTz | ||
214 | LR5v+bsmI2jTRymIPDTp/6NdEMiBOSBD2ZDmgADlmK6XT2G/yemLFEAemuh+MMK2jXe7enojfH0M | ||
215 | zQ6Do2BqPwQQBBBgrE7D9YTq2oe+jT+frJfXN4ru+JyPN5oZBBAEEAQQgEq8Wn8W6g2Vunngi79j | ||
216 | Fq57Q+KzPpaaFwQQBBAEEIBwS3CIvSHzPQMIIIBQAJPQAehbnEgeJ1HHOR2LLX9mpdkABBAA2Mci | ||
217 | hZC4XDzwveZ2ABTKEKyhbEhDsIDhmYbrOR1P05+jr+H6bk4rzQP1qP0QQBBAAAABhNEwBAsAABBA | ||
218 | AAAAAQQAAEAAAQAABBAAAAABBAAAEEAAAAABBAAAQAABAAAEEAAAAAEEAAAQQAAAAAEEAABAAAEA | ||
219 | AAQQAAAAAQQAABBAAAAAAQQAAEAAAQAABBAAAAABBAAAEEAAAAABBAAAQAABAAAEEAAAAAEEAAAQ | ||
220 | QAAAAAEEAABAAAEAAAQQAAAAAQQAABBAAAAABBAAAEAAAQAABBAAAAABBAAAEEAAAAAEEAAAQAAB | ||
221 | AAAEEAAAAAEEAAAQQAAAAAQQAABAAAEAAAQQAAAAAQQAABBAAAAABBAAAEAAAQAABBAAAAABBAAA | ||
222 | EEAAAAAEEAAAQAABAAAEEAAAAAEEAAAQQAAAAAQQAABAAAEAABBAAAAAAQQAABBAAAAABBAAAEAA | ||
223 | AQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAAAQQAAAAAEEAAAQQAAAAAQQAABAAAEAABBAAAAAAQQA | ||
224 | ABBAAAAABBAAAEAAAQAAEEAAAAABBAAAEEAAAAAEEAAAQAABAAAQQAAAAAEEAABAAAEAAAQQAABA | ||
225 | AAEAABBAAAAAAQQAAEAAAQAABBAAAGDA/tAEAP81WS+HG39fZPb+Zht/Xq6XS5ssO9O0hLR9lpoE | ||
226 | 4Hd6QICxi4X9t/Xyz3r5srFcrZezjYKyDzEQfUrvZfO9Ve/10ObLwsl6+ZGWahtV+9RJCrcAJAdX | ||
227 | V1daYQgb8uBAI8Du5ilk3CdeyX4Wur+avc17i16tl3ObsheTFBBnD3zfMu1Deq3IgtoPAQQBBPpx | ||
228 | lIrHbazWy5MOC8hpuL6Cvs2V88v03lY2aedO18vxlt97nsIiCCCMniFYwFi93TEQHHX83rYdthO/ | ||
229 | 77XN2bnpDuEjmod+h/MBCCAAPdt1/kSXxeO05XWh+23U9T4EIIAAAAAIIAAAgAACAAAIIAAAAAII | ||
230 | AAAggAAAAAggAACAAAIAAAggAAAAAggAAFCQPzQBmZmsl/l6ebxepunfvq6Xi/WybPi1Zml52uLr | ||
231 | dLk+bZuldYjLn+vl8Mb/f01fV2ndlnZnbpim/abad57e+P+4z/y7Xi439qHLEbTLYfp8TW60SVz3 | ||
232 | 7+nPi/TZWg10v5imNgjpeDnZ+P+4zn9vtMNQ94vpxnH2ZhvcdqxdjOgzwtBcXV1ZBrAMxPF6+Sfu | ||
233 | lncsX+45IO9aSP944HWmDbzOvKP1aTsMfrpnHR5aPqXfkeN67rouJx2+ty87vrcvGe9HR+vl7IHP | ||
234 | wn3Lt/Vy2tBnsulAvuu6zG4Um6c12uVH+rnDAYSu0weOxdph+8/I8S6fEXWTpfe6VSMIIJk43eFA | ||
235 | u08xO9/ydf7Z88Q272h92roKt0/BeFd7nmVWRAog7ZrvWVTdtZ6zwgPIZIfjXUntsUsg/dbwfvEt | ||
236 | 7W8lmdX4nG+zbHWcVTdZBBCLALL7ifyko9epW9RNdizezzLaFicNB4/bgshJJusqgLT3ef7R4j5U | ||
237 | 9axNCjtuXaWr1N9CO0Vnzr2p1ZX+Ly3vF18K6BGZ7Nmr3MjxSt1k6XsxCZ0cPN/x+1/uUTC0+f2b | ||
238 | V/gmO35/DsVBLIzetlzITNJr5D78jHpOQ3NDGB/6zPwo8Op/W0OG5unzm2vxfZLeX9vbq+pVyLU3 | ||
239 | pNpvuzjmvw159rDDfwkg5HJlbBfTzNdn1/fX9wniKHR/5XAmhAzKJPwch97la+ZcbPZx3MmtByBu | ||
240 | o7NUDHf9mrntF/H9dN1zV11Ymvp4IIAAYz8pbp4chZBhhI8+C9+zUF5PyFC3RU4BMacQchr6G2o7 | ||
241 | DXkMWQQBBPivWeh//slhyGsODGUWvAqsX7dJDnNCzjLYL3J4DzEEHff8HhxnEUCALExT0ZaDo5DH | ||
242 | PBjKLPA2i25+Fpxve3z904w+02c9b4dc9kvHWQQQoHe5XTE+tUmKc5xZQRPfy8xm+WX79NEes9D/ | ||
243 | Ff+bIWDeUyj+lNk+4TiLAAL0WpjkdrecaTCZuCRxe73N8H29tml+0fU2yrUnqo99dacHA3b4udUL | ||
244 | ggACdG6SaeEYPbd5iipsc5xzcRTc8WfTLHR7seE40/afhm57g3IN6I6zZOMPTQCjctxA4bhYL5/X | ||
245 | y/KWYuf5HgVP9fyUS5spa7G4mu/5O1br5WK9fL2xveO+8zjs/iydm/vheUHtuUyfp0XDn6dK7BV6 | ||
246 | 1cF6TML+PVCXadvd3C/iPvd0z/3i+S1t3JYmeuLO035xmd73YVr3w422qHucfRWgb57G6EnoGajz | ||
247 | dNw6Tgb2OnXs85Tzbe92FAunuk977nJ4gCeh13O2xz70z5bhZbLH63Q17n4W9ntS9bYP5tv3CeL/ | ||
248 | dHhxY5/3eLJFuJjUPL5W7d2FyZ7H2U9hu16kwz2Os4fqJosnoQNdme9x9TBejXsWfu/1uM0ife+q | ||
249 | xusc2kxZm+wREuO+8yhs1ztxma7Sng90H4rr9SRsd0V+mT5P53tssy7apO5V/8u0fifh4d7Py/R9 | ||
250 | bzLeL/bppYnr9WLLY+dyj+PsLEDPBBAYj7pjf8/D7l32lzWLhKc2U9bqFlerVCztOrzuTY2fmWbe | ||
251 | hotQbwhM3UAWQvs9i4c1270KH8sdf+59jZ/pqvCue5x9n5YujrOemYMAAnRaPO5qGeqPF74I5nMM | ||
252 | Td2A+KLmvnCZ9qMcC8263u3xs29CvSvej1tep9ke67Os+bMfMy2867TFsmaQCDU/Hy70IIAAndin | ||
253 | QNjHsqP3Sb770fkeRWb0dUDtF8PDYo+fj4HsQ42fa3v4UZ2CdhH2u1nAMsN2OKwZcvY9zi4CCCBA | ||
254 | huqceJcNnNiWmn4wYmE1rfFzH/Z83dWA2vCigd9Rp2iftrxedYLpxz1fM8djS1/HWRBAgGyLx119 | ||
255 | buB1/9X0ow6xKyG08c/DZc02bXP4UZ3ffd5AO+SmTtD76GOBAAIMVd0hErAP+1A77ZHT8KOZ/eJ/ | ||
256 | HmsLEEAAaE6dAvZvzdYK7ZqnOj1BeggRQACgweIKAAQQAABAAAEAAAQQAAAAAQQAABBAAAAABBAA | ||
257 | AEAAgU79qQk695cmAFow1QQggEAJ6jxIbabZOm9zsA81H+wvBRBhDAQQ+OlrjZ/J+aFoelp+biPF | ||
258 | 43D0VcA+1fSNhLKhPXH7+YCOkwIIAggM+AQ87ehnhlJ073tSO7abDkqdAvZxA/vg0YDacNbQ53LX | ||
259 | Y0xuvR9NFMw57herHvaJWQABBLININOaJ706V193PSEsOmivOr1ML/d4vXhV77XddPSOwn5XeN9m | ||
260 | vG51ivrHDbzuvKPw2Obxa7pn4XwS8rzq/3eNn9m3J+dlAAEEOjuB7XrQrXu1bNeT5DzTNr6sue51 | ||
261 | i4SzkPcwOborYk/3KLTnA2uPeBzap4d0WjOUfW25LeocX+qGy9h+rwe0T8z3CFOHmX9GQAAha6ua | ||
262 | B95ti+N9rsbHE8MuQ4nqvM7XDtq4bvH4qUbBdBaGNWyGn0Vmnc9qnSBxtEdwyb3grBvOJ+nzWMci | ||
263 | w3aYpbbY9bj/JeR7cWOf4+ykRlt8CiCAwF4BpM4VtG2K40kqZKZ7vL+3W4ads1Dv6uaqgzauW4BM | ||
264 | 0gl/m/WvioO5XXqw6u5H8bNxsuX+dlqzICulPeLn5NuOIX2aPlt1ji+XHQSQuhdR5jsEsuPMw0d1 | ||
265 | LF/V3Ce+7HCemu/4/SCAwB3qXDmapBP5WSqQJzcO6Mfp//ctiKsivLqyf9vr/NjjdRYdtfHFnutf | ||
266 | hYvpjfWfp4LxWzAhcuj26a17mz4nxzcK6Wn6XJ1t/P/Q22OaPjO3tcfNwvQ0fbYOO/7cd/Ua89QO | ||
267 | pzeOH5P099ON/x9qKK229Y+0X8xv2d6zjXONIa4U7+Dq6korDGFDHhyUvgrHoYwhF01brZdHHb3W | ||
268 | POw+5KGX3bmj19n14PcubHcVvwnb9jptFj3POnhfk1QA5V78POsw2P8IzV2Jjr0Vy9DsLayfhG5u | ||
269 | wdtkO7Sli8/wLH1+sw5J69rvWYAe6QEhFxfWu3XnYXgPI6NblyP+rN7lY8MBb9Zg+FiE7p7/8cGu | ||
270 | 8L82X2kGEEAowyp0d8UyJx8G/noMzztN8Iv3GQf7Nx2+1nlwgcNnBAQQHLSzdx66v1L2Prg6x/4X | ||
271 | C95rhv+JRferTI+ny47bQeHd37EdBBCoaRHG1QvSx8k6Fglv7Go0sO8qsH66SEVnLmLwOOnhdd93 | ||
272 | HHpy9koTgABCWQftrrvx+xg20GcBdxFcwWb/z8wLzfCLN5kU3/G40ucE4xfBUKxoEfQIgQBCMVah | ||
273 | 2ytHl+lkfd7ha8bXOsmgWDq3u7GHZXCV97ZjSZ8hZJVBAKgCkBByfZx3nAUBhEJcdFTYbBYMrzo6 | ||
274 | UZxnVLS1vc653zFJgVTG/rwoMIT0UXTG41hXt9zd5r20HUJKKey7OLc4liGAQIMnlzZPYMvw+9XK | ||
275 | eKJoc2jS+5DfFeP4ftoYJlAVYp8zLjYvMn5vu7bbx54/q7HwXbV4HNjVqsf2qCald9kT8S5tg5wK | ||
276 | 0TYDURV8VzXeU1/H2Tct/m7zbihPfBChpfxlwOJ98eMDCq8aXE7C/Q9Si09l/tHg65XwhPD43IEv | ||
277 | Da7v5nMMdmnLo473rX+2fF99PMDx2w7tnctn9aShfShul/nG797lGHCW2fHrZIf9bNflS2jumSFt | ||
278 | arINTjZ+73zH49KQjrM/Ns4ru/7OL+omS+91q0YQQAoxTUXIjz0KmtOw25N65zsUgbctnzouqJsw | ||
279 | S++77glxfsdJd5vi47SnguChbdxXQTvZorD4FvJ7Kvk+n9Xqczq5pS22+Szm2B6bx5NPoZlwdlbA | ||
280 | RY27wljdY/jZHcfvsy3b7DCz4+xZzVD245aLaAKIpbjlYCTF6+AdHByMaXUP0/L4gZPKar18D/s/ | ||
281 | DXiaThjx69MHXu/vjdcreVzu5hOZnzbQxtN7iqb4O+LwhD7ni8Ti8PmNk3p8Xx9D/3MQjtJ72yy+ | ||
282 | 4r4Vh2mdF/BZnaXP6l3h/3JjH3qorWPh9fqWkBF/R3zI5vsCPneTG+1S/f2u4FQdS76G4dyqfJv9 | ||
283 | IqR1XqZ1vm+7Hqf94rbfdZ6OL7nuF7O0/LXFZ+TijuPstx0D1mJd+z0L0GfdKoAIINBD8bVZ5K80 | ||
284 | CzWKtl8KKk3CLUFuLPvFroXcxbr2cxttevWHJhjI0UeQpAyXisXmjPjCg32I24xxMva0xs98t6vQ | ||
285 | N3fBAgAo06zGz7htLwIIAAC1vKzxM27bS+/MAQEo9QBu7heMWbxBxSe1HyXSAwIAUJZZqHeL8AtN | ||
286 | Rw5MQgcA6D5ATNNS3Wp5scXPxTt9xVsOz2u+7mdNTw50wwGUegA3BAtKcxJuf5ZNZRXuvjX5bM/X | ||
287 | jr/3UfyD2o++6QEBAGjfabh+aOJ9pqHerXW38dEmIBd6QABKPYDrAYFSxKFT33p8/VVIvR+R2o++ | ||
288 | mYQOANCuo55f/5VNgAACADAej3t87XdhuwnuIIAAAAxEX08fPw/XE99BAAEAGJHvPYUPQ6/Ikkno | ||
289 | AKUewE1Ch1LE2+7+CHfffrdpb9bL+7v+U+1H3/SAAAC06zKFgrYt1suT+8IH5MBzQAAA2neevp61 | ||
290 | FDw+brwGZM0QLIBSD+CGYEGJZuH6aejx6z5Dslbr5SIFj+UuP6j2QwABQACBcZqmZZb+/le4+0no | ||
291 | MWT8G657O+Kfa99ZS+2HAAIAAIyGSegAAIAAAgAACCAAAAACCAAAIIAAAAAIIAAAgAACAAAIIAAA | ||
292 | AAIIAAAggAAAAAggAACAAAIAAAggAAAAAggAACCAAAAACCAAAIAAAgAACCAAAAACCAAAIIAAAAAI | ||
293 | IAAAgAACAAAIIAAAAAIIAAAggAAAAAggAACAAAIAAAggAAAAAggAACCAAAAACCAAAIAAAgAAIIAA | ||
294 | AAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAAAggAAAAAggAACAAAIAACCAAAAAAggAACCAAAAA | ||
295 | CCAAAIAAAgAAIIAAAAACCAAAIIAAAAAIIAAAgAACAAAggAAAAAIIAAAggAAAAAggAACAAAIAACCA | ||
296 | AAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAgAACAAAggAAAAAIIAACAAAIA | ||
297 | AAggAACAAAIAACCAAAAAAggAAIAAAgAACCAAAIAAAgAAIIAAAAACCAAAgAACAAAIIAAAgAACAAAg | ||
298 | gAAAAAIIAACAAAIAAAggAAAAAggAACCAAAAAAggAAEBt/y/AAEmyIDWRykGwAAAAAElFTkSuQmCC"> | ||
299 | </image> | ||
300 | </svg> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/init.js b/src/Wallabag/CoreBundle/Resources/public/themes/material/js/init.js deleted file mode 100755 index 491a7916..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/init.js +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | function init_filters() { | ||
2 | // no display if filters not aviable | ||
3 | if ($("div").is("#filters")) { | ||
4 | $('#button_filters').show(); | ||
5 | $('.button-collapse-right').sideNav({ edge: 'right' }); | ||
6 | $('#clear_form_filters').on('click', function(){ | ||
7 | $('#filters input').val(''); | ||
8 | $('#filters :checked').removeAttr('checked'); | ||
9 | return false; | ||
10 | }); | ||
11 | } | ||
12 | } | ||
13 | |||
14 | function init_export() { | ||
15 | // no display if export not aviable | ||
16 | if ($("div").is("#export")) { | ||
17 | $('#button_export').show(); | ||
18 | $('.button-collapse-right').sideNav({ edge: 'right' }); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | $(document).ready(function(){ | ||
23 | // sideNav | ||
24 | $('.button-collapse').sideNav(); | ||
25 | $('select').material_select(); | ||
26 | $('.collapsible').collapsible({ | ||
27 | accordion : false | ||
28 | }); | ||
29 | $('.datepicker').pickadate({ | ||
30 | selectMonths: true, | ||
31 | selectYears: 15, | ||
32 | formatSubmit: 'dd/mm/yyyy', | ||
33 | hiddenName: true, | ||
34 | format: 'dd/mm/yyyy', | ||
35 | }); | ||
36 | init_filters(); | ||
37 | init_export(); | ||
38 | |||
39 | $('#nav-btn-add-tag').on('click', function(){ | ||
40 | $(".nav-panel-add-tag").toggle(100); | ||
41 | $(".nav-panel-menu").addClass('hidden'); | ||
42 | $("#tag_label").focus(); | ||
43 | return false; | ||
44 | }); | ||
45 | $('#nav-btn-add').on('click', function(){ | ||
46 | $(".nav-panel-buttom").hide(100); | ||
47 | $(".nav-panel-add").show(100); | ||
48 | $(".nav-panels .action").hide(100); | ||
49 | $(".nav-panel-menu").addClass('hidden'); | ||
50 | $(".nav-panels").css('background', 'white'); | ||
51 | $("#entry_url").focus(); | ||
52 | return false; | ||
53 | }); | ||
54 | $('#nav-btn-search').on('click', function(){ | ||
55 | $(".nav-panel-buttom").hide(100); | ||
56 | $(".nav-panel-search").show(100); | ||
57 | $(".nav-panels .action").hide(100); | ||
58 | $(".nav-panel-menu").addClass('hidden'); | ||
59 | $(".nav-panels").css('background', 'white'); | ||
60 | $("#searchfield").focus(); | ||
61 | return false; | ||
62 | }); | ||
63 | $('.mdi-navigation-close').on('click', function(){ | ||
64 | $(".nav-panel-add").hide(100); | ||
65 | $(".nav-panel-search").hide(100); | ||
66 | $(".nav-panel-buttom").show(100); | ||
67 | $(".nav-panels .action").show(100); | ||
68 | $(".nav-panel-menu").removeClass('hidden'); | ||
69 | $(".nav-panels").css('background', 'transparent'); | ||
70 | return false; | ||
71 | }); | ||
72 | $(window).scroll(function () { | ||
73 | var s = $(window).scrollTop(), | ||
74 | d = $(document).height(), | ||
75 | c = $(window).height(); | ||
76 | var scrollPercent = (s / (d-c)) * 100; | ||
77 | $(".progress .determinate").css('width', scrollPercent+'%'); | ||
78 | }); | ||
79 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery-2.1.4.min.js b/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery-2.1.4.min.js deleted file mode 100644 index 49990d6e..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery-2.1.4.min.js +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | /*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ | ||
2 | !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ | ||
3 | return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)), | ||
4 | void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n}); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery.tinydot.js b/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery.tinydot.js deleted file mode 100644 index bf9eadef..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery.tinydot.js +++ /dev/null | |||
@@ -1,103 +0,0 @@ | |||
1 | /* | ||
2 | * jQuery tinydot 0.2.0 | ||
3 | * | ||
4 | * Copyright (c) Alexander Danilov | ||
5 | * modos189.ru | ||
6 | * | ||
7 | * Plugin website: | ||
8 | * tinydot.modos189.ru | ||
9 | * | ||
10 | * Licensed under the MIT license. | ||
11 | * http://en.wikipedia.org/wiki/MIT_License | ||
12 | */ | ||
13 | |||
14 | (function( $, undef ) | ||
15 | { | ||
16 | if ( $.fn.tinydot ) | ||
17 | { | ||
18 | return; | ||
19 | } | ||
20 | |||
21 | $.fn.tinydot = function( o ) { | ||
22 | |||
23 | var $dot = this; | ||
24 | $dot.child = getChildOrDie($dot); | ||
25 | $dot.orgContent = $($dot.child).html(); | ||
26 | ellipsis( $dot ); | ||
27 | |||
28 | $dot.watch = function() | ||
29 | { | ||
30 | $(window).on('resize', function(){ | ||
31 | if ( watchInt ) | ||
32 | { | ||
33 | clearInterval( watchInt ); | ||
34 | } | ||
35 | watchInt = setTimeout( | ||
36 | function() | ||
37 | { | ||
38 | reinitialize($dot); | ||
39 | }, 100 | ||
40 | ); | ||
41 | }); | ||
42 | |||
43 | return $dot; | ||
44 | }; | ||
45 | |||
46 | var opts = $.extend( true, {}, $.fn.tinydot.defaults, o ), | ||
47 | watchInt = null; | ||
48 | |||
49 | if ( opts.watch ) | ||
50 | { | ||
51 | $dot.watch(); | ||
52 | } | ||
53 | } | ||
54 | |||
55 | // public | ||
56 | $.fn.tinydot.defaults = { | ||
57 | 'watch' : false | ||
58 | }; | ||
59 | |||
60 | function getChildOrDie( $elem ) | ||
61 | { | ||
62 | var childrens = $elem.children(); | ||
63 | if (childrens.length == 0) { | ||
64 | // create children | ||
65 | var data = $($elem).html(); | ||
66 | $elem.html(''); | ||
67 | $elem.append('<span />'); | ||
68 | return $elem.children('span').html(data); | ||
69 | } else { | ||
70 | return childrens[0]; | ||
71 | } | ||
72 | } | ||
73 | |||
74 | function reinitialize( $elem ) | ||
75 | { | ||
76 | $($elem.child).html($elem.orgContent); | ||
77 | ellipsis( $elem ); | ||
78 | } | ||
79 | |||
80 | function ellipsis( $elem ) { | ||
81 | var divh=$($elem).height(); | ||
82 | while ($($elem.child).outerHeight()>divh) { | ||
83 | $($elem.child).html(function (index, html) { | ||
84 | return html.replace(/\W*\s(\S)*$/, '...'); | ||
85 | }); | ||
86 | } | ||
87 | } | ||
88 | |||
89 | })( jQuery ); | ||
90 | |||
91 | jQuery(document).ready(function($) { | ||
92 | //We only invoke jQuery.tinydot on elements that have dot-ellipsis class | ||
93 | $(".dot-ellipsis").each(function(){ | ||
94 | //Checking if update on window resize required | ||
95 | var watch_window=$(this).hasClass("dot-resize-update"); | ||
96 | |||
97 | //Invoking jQuery.tinydot | ||
98 | var x = new Object(); | ||
99 | if (watch_window) | ||
100 | x.watch='window'; | ||
101 | $(this).tinydot(x); | ||
102 | }); | ||
103 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery.tinydot.min.js b/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery.tinydot.min.js deleted file mode 100644 index 74754629..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/jquery.tinydot.min.js +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | !function(a,b){function c(b){var c=b.children();if(0==c.length){var d=a(b).html();return b.html(""),b.append("<span />"),b.children("span").html(d)}return c[0]}function d(b){a(b.child).html(b.orgContent),e(b)}function e(b){for(var c=a(b).height();a(b.child).outerHeight()>c;)a(b.child).html(function(a,b){return b.replace(/\W*\s(\S)*$/,"...")})}a.fn.tinydot||(a.fn.tinydot=function(b){var f=this;f.child=c(f),f.orgContent=a(f.child).html(),e(f),f.watch=function(){return a(window).on("resize",function(){h&&clearInterval(h),h=setTimeout(function(){d(f)},100)}),f};var g=a.extend(!0,{},a.fn.tinydot.defaults,b),h=null;g.watch&&f.watch()},a.fn.tinydot.defaults={watch:!1})}(jQuery),jQuery(document).ready(function(a){a(".dot-ellipsis").each(function(){var b=a(this).hasClass("dot-resize-update"),c=new Object;b&&(c.watch="window"),a(this).tinydot(c)})}); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/materialize.js b/src/Wallabag/CoreBundle/Resources/public/themes/material/js/materialize.js deleted file mode 100644 index b7242f6b..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/materialize.js +++ /dev/null | |||
@@ -1,6219 +0,0 @@ | |||
1 | /*! | ||
2 | * Materialize v0.97.1 (http://materializecss.com) | ||
3 | * Copyright 2014-2015 Materialize | ||
4 | * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) | ||
5 | */ | ||
6 | /* | ||
7 | * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ | ||
8 | * | ||
9 | * Uses the built in easing capabilities added In jQuery 1.1 | ||
10 | * to offer multiple easing options | ||
11 | * | ||
12 | * TERMS OF USE - jQuery Easing | ||
13 | * | ||
14 | * Open source under the BSD License. | ||
15 | * | ||
16 | * Copyright © 2008 George McGinley Smith | ||
17 | * All rights reserved. | ||
18 | * | ||
19 | * Redistribution and use in source and binary forms, with or without modification, | ||
20 | * are permitted provided that the following conditions are met: | ||
21 | * | ||
22 | * Redistributions of source code must retain the above copyright notice, this list of | ||
23 | * conditions and the following disclaimer. | ||
24 | * Redistributions in binary form must reproduce the above copyright notice, this list | ||
25 | * of conditions and the following disclaimer in the documentation and/or other materials | ||
26 | * provided with the distribution. | ||
27 | * | ||
28 | * Neither the name of the author nor the names of contributors may be used to endorse | ||
29 | * or promote products derived from this software without specific prior written permission. | ||
30 | * | ||
31 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY | ||
32 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
33 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
34 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
35 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | ||
36 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | ||
37 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
38 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
39 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
40 | * | ||
41 | */ | ||
42 | |||
43 | // t: current time, b: begInnIng value, c: change In value, d: duration | ||
44 | jQuery.easing['jswing'] = jQuery.easing['swing']; | ||
45 | |||
46 | jQuery.extend( jQuery.easing, | ||
47 | { | ||
48 | def: 'easeOutQuad', | ||
49 | swing: function (x, t, b, c, d) { | ||
50 | //alert(jQuery.easing.default); | ||
51 | return jQuery.easing[jQuery.easing.def](x, t, b, c, d); | ||
52 | }, | ||
53 | easeInQuad: function (x, t, b, c, d) { | ||
54 | return c*(t/=d)*t + b; | ||
55 | }, | ||
56 | easeOutQuad: function (x, t, b, c, d) { | ||
57 | return -c *(t/=d)*(t-2) + b; | ||
58 | }, | ||
59 | easeInOutQuad: function (x, t, b, c, d) { | ||
60 | if ((t/=d/2) < 1) return c/2*t*t + b; | ||
61 | return -c/2 * ((--t)*(t-2) - 1) + b; | ||
62 | }, | ||
63 | easeInCubic: function (x, t, b, c, d) { | ||
64 | return c*(t/=d)*t*t + b; | ||
65 | }, | ||
66 | easeOutCubic: function (x, t, b, c, d) { | ||
67 | return c*((t=t/d-1)*t*t + 1) + b; | ||
68 | }, | ||
69 | easeInOutCubic: function (x, t, b, c, d) { | ||
70 | if ((t/=d/2) < 1) return c/2*t*t*t + b; | ||
71 | return c/2*((t-=2)*t*t + 2) + b; | ||
72 | }, | ||
73 | easeInQuart: function (x, t, b, c, d) { | ||
74 | return c*(t/=d)*t*t*t + b; | ||
75 | }, | ||
76 | easeOutQuart: function (x, t, b, c, d) { | ||
77 | return -c * ((t=t/d-1)*t*t*t - 1) + b; | ||
78 | }, | ||
79 | easeInOutQuart: function (x, t, b, c, d) { | ||
80 | if ((t/=d/2) < 1) return c/2*t*t*t*t + b; | ||
81 | return -c/2 * ((t-=2)*t*t*t - 2) + b; | ||
82 | }, | ||
83 | easeInQuint: function (x, t, b, c, d) { | ||
84 | return c*(t/=d)*t*t*t*t + b; | ||
85 | }, | ||
86 | easeOutQuint: function (x, t, b, c, d) { | ||
87 | return c*((t=t/d-1)*t*t*t*t + 1) + b; | ||
88 | }, | ||
89 | easeInOutQuint: function (x, t, b, c, d) { | ||
90 | if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; | ||
91 | return c/2*((t-=2)*t*t*t*t + 2) + b; | ||
92 | }, | ||
93 | easeInSine: function (x, t, b, c, d) { | ||
94 | return -c * Math.cos(t/d * (Math.PI/2)) + c + b; | ||
95 | }, | ||
96 | easeOutSine: function (x, t, b, c, d) { | ||
97 | return c * Math.sin(t/d * (Math.PI/2)) + b; | ||
98 | }, | ||
99 | easeInOutSine: function (x, t, b, c, d) { | ||
100 | return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; | ||
101 | }, | ||
102 | easeInExpo: function (x, t, b, c, d) { | ||
103 | return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; | ||
104 | }, | ||
105 | easeOutExpo: function (x, t, b, c, d) { | ||
106 | return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; | ||
107 | }, | ||
108 | easeInOutExpo: function (x, t, b, c, d) { | ||
109 | if (t==0) return b; | ||
110 | if (t==d) return b+c; | ||
111 | if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; | ||
112 | return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; | ||
113 | }, | ||
114 | easeInCirc: function (x, t, b, c, d) { | ||
115 | return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; | ||
116 | }, | ||
117 | easeOutCirc: function (x, t, b, c, d) { | ||
118 | return c * Math.sqrt(1 - (t=t/d-1)*t) + b; | ||
119 | }, | ||
120 | easeInOutCirc: function (x, t, b, c, d) { | ||
121 | if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; | ||
122 | return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; | ||
123 | }, | ||
124 | easeInElastic: function (x, t, b, c, d) { | ||
125 | var s=1.70158;var p=0;var a=c; | ||
126 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; | ||
127 | if (a < Math.abs(c)) { a=c; var s=p/4; } | ||
128 | else var s = p/(2*Math.PI) * Math.asin (c/a); | ||
129 | return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; | ||
130 | }, | ||
131 | easeOutElastic: function (x, t, b, c, d) { | ||
132 | var s=1.70158;var p=0;var a=c; | ||
133 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; | ||
134 | if (a < Math.abs(c)) { a=c; var s=p/4; } | ||
135 | else var s = p/(2*Math.PI) * Math.asin (c/a); | ||
136 | return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; | ||
137 | }, | ||
138 | easeInOutElastic: function (x, t, b, c, d) { | ||
139 | var s=1.70158;var p=0;var a=c; | ||
140 | if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); | ||
141 | if (a < Math.abs(c)) { a=c; var s=p/4; } | ||
142 | else var s = p/(2*Math.PI) * Math.asin (c/a); | ||
143 | if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; | ||
144 | return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; | ||
145 | }, | ||
146 | easeInBack: function (x, t, b, c, d, s) { | ||
147 | if (s == undefined) s = 1.70158; | ||
148 | return c*(t/=d)*t*((s+1)*t - s) + b; | ||
149 | }, | ||
150 | easeOutBack: function (x, t, b, c, d, s) { | ||
151 | if (s == undefined) s = 1.70158; | ||
152 | return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; | ||
153 | }, | ||
154 | easeInOutBack: function (x, t, b, c, d, s) { | ||
155 | if (s == undefined) s = 1.70158; | ||
156 | if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; | ||
157 | return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; | ||
158 | }, | ||
159 | easeInBounce: function (x, t, b, c, d) { | ||
160 | return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; | ||
161 | }, | ||
162 | easeOutBounce: function (x, t, b, c, d) { | ||
163 | if ((t/=d) < (1/2.75)) { | ||
164 | return c*(7.5625*t*t) + b; | ||
165 | } else if (t < (2/2.75)) { | ||
166 | return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; | ||
167 | } else if (t < (2.5/2.75)) { | ||
168 | return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; | ||
169 | } else { | ||
170 | return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; | ||
171 | } | ||
172 | }, | ||
173 | easeInOutBounce: function (x, t, b, c, d) { | ||
174 | if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; | ||
175 | return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; | ||
176 | } | ||
177 | }); | ||
178 | |||
179 | /* | ||
180 | * | ||
181 | * TERMS OF USE - EASING EQUATIONS | ||
182 | * | ||
183 | * Open source under the BSD License. | ||
184 | * | ||
185 | * Copyright © 2001 Robert Penner | ||
186 | * All rights reserved. | ||
187 | * | ||
188 | * Redistribution and use in source and binary forms, with or without modification, | ||
189 | * are permitted provided that the following conditions are met: | ||
190 | * | ||
191 | * Redistributions of source code must retain the above copyright notice, this list of | ||
192 | * conditions and the following disclaimer. | ||
193 | * Redistributions in binary form must reproduce the above copyright notice, this list | ||
194 | * of conditions and the following disclaimer in the documentation and/or other materials | ||
195 | * provided with the distribution. | ||
196 | * | ||
197 | * Neither the name of the author nor the names of contributors may be used to endorse | ||
198 | * or promote products derived from this software without specific prior written permission. | ||
199 | * | ||
200 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY | ||
201 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
202 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
203 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
204 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | ||
205 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | ||
206 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
207 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
208 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
209 | * | ||
210 | */; // Custom Easing | ||
211 | jQuery.extend( jQuery.easing, | ||
212 | { | ||
213 | easeInOutMaterial: function (x, t, b, c, d) { | ||
214 | if ((t/=d/2) < 1) return c/2*t*t + b; | ||
215 | return c/4*((t-=2)*t*t + 2) + b; | ||
216 | } | ||
217 | }); | ||
218 | |||
219 | ;/*! VelocityJS.org (1.2.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ | ||
220 | /*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ | ||
221 | !function(e){function t(e){var t=e.length,r=$.type(e);return"function"===r||$.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===r||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;s<i.length;s++)a["[object "+i[s]+"]"]=i[s].toLowerCase();$.fn.init.prototype=$.fn,e.Velocity={Utilities:$}}}(window),function(e){"object"==typeof module&&"object"==typeof module.exports?module.exports=e():"function"==typeof define&&define.amd?define(e):e()}(function(){return function(e,t,r,a){function n(e){for(var t=-1,r=e?e.length:0,a=[];++t<r;){var n=e[t];n&&a.push(n)}return a}function o(e){return g.isWrapped(e)?e=[].slice.call(e):g.isNode(e)&&(e=[e]),e}function i(e){var t=$.data(e,"velocity");return null===t?a:t}function s(e){return function(t){return Math.round(t*e)*(1/e)}}function l(e,r,a,n){function o(e,t){return 1-3*t+3*e}function i(e,t){return 3*t-6*e}function s(e){return 3*e}function l(e,t,r){return((o(t,r)*e+i(t,r))*e+s(t))*e}function u(e,t,r){return 3*o(t,r)*e*e+2*i(t,r)*e+s(t)}function c(t,r){for(var n=0;m>n;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s<v);return i}function d(t){for(var r=0,n=1,o=b-1;n!=o&&w[n]<=t;++n)r+=x;--n;var i=(t-w[n])/(w[n+1]-w[n]),s=r+i*x,l=u(s,e,a);return l>=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="<!--[if IE "+e+"]><span></span><![endif]-->",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e<x.Lists.colors.length;e++){var t="color"===x.Lists.colors[e]?"0 0 0 1":"255 255 255 1";x.Hooks.templates[x.Lists.colors[e]]=["Red Green Blue Alpha",t]}var r,a,n;if(f)for(r in x.Hooks.templates){a=x.Hooks.templates[r],n=a[0].split(" ");var o=a[1].match(x.RegEx.valueSplit);"Color"===n[0]&&(n.push(n.shift()),o.push(o.shift()),x.Hooks.templates[r]=[n.join(" "),o.join(" ")])}for(r in x.Hooks.templates){a=x.Hooks.templates[r],n=a[0].split(" ");for(var e in n){var i=r+n[e],s=e;x.Hooks.registered[i]=[r,s]}}},getRoot:function(e){var t=x.Hooks.registered[e];return t?t[0]:e},cleanRootPropertyValue:function(e,t){return x.RegEx.valueUnwrap.test(t)&&(t=t.match(x.RegEx.valueUnwrap)[1]),x.Values.isCSSNullValue(t)&&(t=x.Hooks.templates[e][1]),t},extractValue:function(e,t){var r=x.Hooks.registered[e];if(r){var a=r[0],n=r[1];return t=x.Hooks.cleanRootPropertyValue(a,t),t.toString().match(x.RegEx.valueSplit)[n]}return t},injectValue:function(e,t,r){var a=x.Hooks.registered[e];if(a){var n=a[0],o=a[1],i,s;return r=x.Hooks.cleanRootPropertyValue(n,r),i=r.toString().match(x.RegEx.valueSplit),i[o]=t,s=i.join(" ")}return r}},Normalizations:{registered:{clip:function(e,t,r){switch(e){case"name":return"clip";case"extract":var a;return x.RegEx.wrappedValueAlreadyExtracted.test(r)?a=r:(a=r.toString().match(x.RegEx.valueUnwrap),a=a?a[1].replace(/,(\s+)?/g," "):r),a;case"inject":return"rect("+r+")"}},blur:function(e,t,r){switch(e){case"name":return v.State.isFirefox?"filter":"-webkit-filter";case"extract":var a=parseFloat(r);if(!a&&0!==a){var n=r.toString().match(/blur\(([0-9]+[A-z]+)\)/i);a=n?n[1]:0}return a;case"inject":return parseFloat(r)?"blur("+r+")":"none"}},opacity:function(e,t,r){if(8>=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;e<x.Lists.transformsBase.length;e++)!function(){var t=x.Lists.transformsBase[e];x.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return"transform";case"extract":return i(r)===a||i(r).transformCache[t]===a?/^scale/i.test(t)?1:0:i(r).transformCache[t].replace(/[()]/g,"");case"inject":var o=!1;switch(t.substr(0,t.length-1)){case"translate":o=!/(%|px|em|rem|vw|vh|\d)$/i.test(n);break;case"scal":case"scale":v.State.isAndroid&&i(r).transformCache[t]===a&&1>n&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e<x.Lists.colors.length;e++)!function(){var t=x.Lists.colors[e];x.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return t;case"extract":var o;if(x.RegEx.wrappedValueAlreadyExtracted.test(n))o=n;else{var i,s={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(n)?i=s[n]!==a?s[n]:s.black:x.RegEx.isHex.test(n)?i="rgb("+x.Values.hexToRgb(n).join(" ")+")":/^rgba?\(/i.test(n)||(i=s.black),o=(i||n).toString().match(x.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return 8>=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;c<s.length;c++){var f=[l[c]];o&&f.push(o),u!==a&&f.push(u[c]),h[e+s[c]]=f}delete h[e]}}});for(var R in h){var O=p(h[R]),z=O[0],q=O[1],M=O[2];R=x.Names.camelCase(R);var I=x.Hooks.getRoot(R),B=!1;if(i(n).isSVG||"tween"===I||x.Names.prefixCheck(I)[1]!==!1||x.Normalizations.registered[I]!==a){(o.display!==a&&null!==o.display&&"none"!==o.display||o.visibility!==a&&"hidden"!==o.visibility)&&/opacity|filter/.test(R)&&!M&&0!==z&&(M=0),o._cacheValues&&E&&E[R]?(M===a&&(M=E[R].endValue+E[R].unitType),B=i(n).rootPropertyValueCache[I]):x.Hooks.registered[R]?M===a?(B=x.getPropertyValue(n,I),M=x.getPropertyValue(n,R,B)):B=x.Hooks.templates[I][1]:M===a&&(M=x.getPropertyValue(n,R));var W,G,D,X=!1;if(W=f(R,M),M=W[0],D=W[1],W=f(R,z),z=W[0].replace(/^([+-\/*])=/,function(e,t){return X=t,""}),G=W[1],M=parseFloat(M)||0,z=parseFloat(z)||0,"%"===G&&(/^(fontSize|lineHeight)$/.test(R)?(z/=100,G="em"):/^scale/.test(R)?(z/=100,G=""):/(Red|Green|Blue)$/i.test(R)&&(z=z/100*255,G="")),/[\/*]/.test(X))G=D;else if(D!==G&&0!==M)if(0===z)G=D;else{l=l||d();var Y=/margin|padding|left|right|width|text|word|letter/i.test(R)||/X$/.test(R)||"x"===R?"x":"y";switch(D){case"%":M*="x"===Y?l.percentToPxWidth:l.percentToPxHeight;break;case"px":break;default:M*=l[D+"ToPx"]}switch(G){case"%":M*=1/("x"===Y?l.percentToPxWidth:l.percentToPxHeight);break;case"px":break;default:M*=1/l[G+"ToPx"]}}switch(X){case"+":z=M+z;break;case"-":z=M-z;break;case"*":z=M*z;break;case"/":z=M/z}s[R]={rootPropertyValue:B,startValue:M,currentValue:M,endValue:z,unitType:G,easing:q},v.debug&&console.log("tweensContainer ("+R+"): "+JSON.stringify(s[R]),n)}else v.debug&&console.log("Skipping ["+I+"] due to a lack of browser support.")}s.element=n}s.element&&(x.Values.addClass(n,"velocity-animating"),L.push(s),""===o.queue&&(i(n).tweensContainer=s,i(n).opts=o),i(n).isAnimating=!0,w===P-1?(v.State.calls.push([L,m,o,null,T.resolver]),v.State.isTicking===!1&&(v.State.isTicking=!0,c())):w++)}var n=this,o=$.extend({},v.defaults,b),s={},l;switch(i(n)===a&&v.init(n),parseFloat(o.delay)&&o.queue!==!1&&$.queue(n,o.queue,function(e){v.velocityQueueEntryFlag=!0,i(n).delayTimer={setTimeout:setTimeout(e,parseFloat(o.delay)),next:e}}),o.duration.toString().toLowerCase()){case"fast":o.duration=200;break;case"normal":o.duration=y;break;case"slow":o.duration=600;break;default:o.duration=parseFloat(o.duration)||1}v.mock!==!1&&(v.mock===!0?o.duration=o.delay=1:(o.duration*=parseFloat(v.mock)||1,o.delay*=parseFloat(v.mock)||1)),o.easing=u(o.easing,o.duration),o.begin&&!g.isFunction(o.begin)&&(o.begin=null),o.progress&&!g.isFunction(o.progress)&&(o.progress=null),o.complete&&!g.isFunction(o.complete)&&(o.complete=null),o.display!==a&&null!==o.display&&(o.display=o.display.toString().toLowerCase(),"auto"===o.display&&(o.display=v.CSS.Values.getDisplayType(n))),o.visibility!==a&&null!==o.visibility&&(o.visibility=o.visibility.toString().toLowerCase()),o.mobileHA=o.mobileHA&&v.State.isMobile&&!v.State.isGingerbread,o.queue===!1?o.delay?setTimeout(e,o.delay):e():$.queue(n,o.queue,function(t,r){return r===!0?(T.promise&&T.resolver(m),!0):(v.velocityQueueEntryFlag=!0,void e(t))}),""!==o.queue&&"fx"!==o.queue||"inprogress"===$.queue(n)[0]||$.dequeue(n)}var s=arguments[0]&&(arguments[0].p||$.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||g.isString(arguments[0].properties)),l,f,d,m,h,b;if(g.isWrapped(this)?(l=!1,d=0,m=this,f=this):(l=!0,d=1,m=s?arguments[0].elements||arguments[0].e:arguments[0]),m=o(m)){s?(h=arguments[0].properties||arguments[0].p,b=arguments[0].options||arguments[0].o):(h=arguments[d],b=arguments[d+1]);var P=m.length,w=0;if(!/^(stop|finish)$/i.test(h)&&!$.isPlainObject(b)){var V=d+1;b={};for(var C=V;C<arguments.length;C++)g.isArray(arguments[C])||!/^(fast|normal|slow)$/i.test(arguments[C])&&!/^\d/.test(arguments[C])?g.isString(arguments[C])||g.isArray(arguments[C])?b.easing=arguments[C]:g.isFunction(arguments[C])&&(b.complete=arguments[C]):b.duration=arguments[C]}var T={promise:null,resolver:null,rejecter:null};l&&v.Promise&&(T.promise=new v.Promise(function(e,t){T.resolver=e,T.rejecter=t}));var k;switch(h){case"scroll":k="scroll";break;case"reverse":k="reverse";break;case"finish":case"stop":$.each(m,function(e,t){i(t)&&i(t).delayTimer&&(clearTimeout(i(t).delayTimer.setTimeout),i(t).delayTimer.next&&i(t).delayTimer.next(),delete i(t).delayTimer)});var A=[];return $.each(v.State.calls,function(e,t){t&&$.each(t[1],function(r,n){var o=b===a?"":b;return o===!0||t[2].queue===o||b===a&&t[2].queue===!1?void $.each(m,function(r,a){a===n&&((b===!0||g.isString(b))&&($.each($.queue(a,g.isString(b)?b:""),function(e,t){g.isFunction(t)&&t(null,!0)}),$.queue(a,g.isString(b)?b:"",[])),"stop"===h?(i(a)&&i(a).tweensContainer&&o!==!1&&$.each(i(a).tweensContainer,function(e,t){t.endValue=t.currentValue | ||
222 | }),A.push(e)):"finish"===h&&(t[2].duration=1))}):!0})}),"stop"===h&&($.each(A,function(e,t){p(t,!0)}),T.promise&&T.resolver(m)),e();default:if(!$.isPlainObject(h)||g.isEmptyObject(h)){if(g.isString(h)&&v.Redirects[h]){var F=$.extend({},b),E=F.duration,j=F.delay||0;return F.backwards===!0&&(m=$.extend(!0,[],m).reverse()),$.each(m,function(e,t){parseFloat(F.stagger)?F.delay=j+parseFloat(F.stagger)*e:g.isFunction(F.stagger)&&(F.delay=j+F.stagger.call(t,e,P)),F.drag&&(F.duration=parseFloat(E)||(/^(callout|transition)/.test(h)?1e3:y),F.duration=Math.max(F.duration*(F.backwards?1-e/P:(e+1)/P),.75*F.duration,200)),v.Redirects[h].call(t,t,F||{},e,P,m,T.promise?T:a)}),e()}var H="Velocity: First argument ("+h+") was not a property map, a known action, or a registered redirect. Aborting.";return T.promise?T.rejecter(new Error(H)):console.log(H),e()}k="start"}var N={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},L=[];$.each(m,function(e,t){g.isNode(t)&&n.call(t)});var F=$.extend({},v.defaults,b),R;if(F.loop=parseInt(F.loop),R=2*F.loop-1,F.loop)for(var O=0;R>O;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)});;!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function n(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function o(a,b){return n(a,b,!0)}function p(a,b,c){var e,d=b.prototype;e=a.prototype=Object.create(d),e.constructor=a,e._super=d,c&&n(e,c)}function q(a,b){return function(){return a.apply(b,arguments)}}function r(a,b){return typeof a==g?a.apply(b?b[0]||d:d,b):a}function s(a,b){return a===d?b:a}function t(a,b,c){m(x(b),function(b){a.addEventListener(b,c,!1)})}function u(a,b,c){m(x(b),function(b){a.removeEventListener(b,c,!1)})}function v(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function w(a,b){return a.indexOf(b)>-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function z(a){return Array.prototype.slice.call(a,0)}function A(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];y(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h<e.length;){if(c=e[h],f=c?c+g:b,f in a)return f;h++}return d}function D(){return C++}function E(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function ab(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){r(a.options.enable,[a])&&c.handler(b)},this.init()}function bb(a){var b,c=a.options.inputClass;return b=c?c:H?wb:I?Eb:G?Gb:rb,new b(a,cb)}function cb(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&O&&0===d-e,g=b&(Q|R)&&0===d-e;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,db(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function db(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=gb(b)),e>1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:h(a.pointers[c].clientX),clientY:h(a.pointers[c].clientY)},c++;return{timeStamp:j(),pointers:b,center:hb(b),deltaX:a.deltaX,deltaY:a.deltaY}}function hb(a){var b=a.length;if(1===b)return{x:h(a[0].clientX),y:h(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Q|R)&&delete d[g[e].identifier],e++;return h.length?[A(f.concat(h),"identifier",!0),h]:void 0}function Gb(){ab.apply(this,arguments);var a=q(this.handler,this);this.touch=new Eb(this.manager,a),this.mouse=new rb(this.manager,a)}function Pb(a,b){this.manager=a,this.set(b)}function Qb(a){if(w(a,Mb))return Mb;var b=w(a,Nb),c=w(a,Ob);return b&&c?Nb+" "+Ob:b||c?b?Nb:Ob:w(a,Lb)?Lb:Kb}function Yb(a){this.id=D(),this.manager=null,this.options=o(a||{},this.defaults),this.options.enable=s(this.options.enable,!0),this.state=Rb,this.simultaneous={},this.requireFail=[]}function Zb(a){return a&Wb?"cancel":a&Ub?"end":a&Tb?"move":a&Sb?"start":""}function $b(a){return a==W?"down":a==V?"up":a==T?"left":a==U?"right":""}function _b(a,b){var c=b.manager;return c?c.get(a):a}function ac(){Yb.apply(this,arguments)}function bc(){ac.apply(this,arguments),this.pX=null,this.pY=null}function cc(){ac.apply(this,arguments)}function dc(){Yb.apply(this,arguments),this._timer=null,this._input=null}function ec(){ac.apply(this,arguments)}function fc(){ac.apply(this,arguments)}function gc(){Yb.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function hc(a,b){return b=b||{},b.recognizers=s(b.recognizers,hc.defaults.preset),new kc(a,b)}function kc(a,b){b=b||{},this.options=o(b,hc.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=bb(this),this.touchAction=new Pb(this,this.options.touchAction),lc(this,!0),m(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function lc(a,b){var c=a.element;m(a.options.cssProps,function(a,d){c.style[B(c.style,d)]=b?a:""})}function mc(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var e=["","webkit","moz","MS","ms","o"],f=b.createElement("div"),g="function",h=Math.round,i=Math.abs,j=Date.now,C=1,F=/mobile|tablet|ip(ad|hone|od)|android/i,G="ontouchstart"in a,H=B(a,"PointerEvent")!==d,I=G&&F.test(navigator.userAgent),J="touch",K="pen",L="mouse",M="kinect",N=25,O=1,P=2,Q=4,R=8,S=1,T=2,U=4,V=8,W=16,X=T|U,Y=V|W,Z=X|Y,$=["x","y"],_=["clientX","clientY"];ab.prototype={handler:function(){},init:function(){this.evEl&&t(this.element,this.evEl,this.domHandler),this.evTarget&&t(this.target,this.evTarget,this.domHandler),this.evWin&&t(E(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&u(this.element,this.evEl,this.domHandler),this.evTarget&&u(this.target,this.evTarget,this.domHandler),this.evWin&&u(E(this.element),this.evWin,this.domHandler)}};var ob={mousedown:O,mousemove:P,mouseup:Q},pb="mousedown",qb="mousemove mouseup";p(rb,ab,{handler:function(a){var b=ob[a.type];b&O&&0===a.button&&(this.pressed=!0),b&P&&1!==a.which&&(b=Q),this.pressed&&this.allow&&(b&Q&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:L,srcEvent:a}))}});var sb={pointerdown:O,pointermove:P,pointerup:Q,pointercancel:R,pointerout:R},tb={2:J,3:K,4:L,5:M},ub="pointerdown",vb="pointermove pointerup pointercancel";a.MSPointerEvent&&(ub="MSPointerDown",vb="MSPointerMove MSPointerUp MSPointerCancel"),p(wb,ab,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=sb[d],f=tb[a.pointerType]||a.pointerType,g=f==J,h=y(b,a.pointerId,"pointerId");e&O&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(Xb|Rb)))return!1;a++}return!0},recognize:function(a){var b=n({},a);return r(this.options.enable,[this,b])?(this.state&(Vb|Wb|Xb)&&(this.state=Rb),this.state=this.process(b),this.state&(Sb|Tb|Ub|Wb)&&this.tryEmit(b),void 0):(this.reset(),this.state=Xb,void 0)},process:function(){},getTouchAction:function(){},reset:function(){}},p(ac,Yb,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(Sb|Tb),e=this.attrTest(a);return d&&(c&R||!e)?b|Wb:d||e?c&Q?b|Ub:b&Sb?b|Tb:Sb:Xb}}),p(bc,ac,{defaults:{event:"pan",threshold:10,pointers:1,direction:Z},getTouchAction:function(){var a=this.options.direction,b=[];return a&X&&b.push(Ob),a&Y&&b.push(Nb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&X?(e=0===f?S:0>f?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime<b.time;if(this.reset(),a.eventType&O&&0===this.count)return this.failTimeout();if(d&&e&&c){if(a.eventType!=Q)return this.failTimeout();var f=this.pTime?a.timeStamp-this.pTime<b.interval:!0,g=!this.pCenter||kb(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,g&&f?this.count+=1:this.count=1,this._input=a;var h=this.count%b.taps;if(0===h)return this.hasRequireFailures()?(this._timer=k(function(){this.state=Vb,this.tryEmit()},b.interval,this),Sb):Vb}return Xb},failTimeout:function(){return this._timer=k(function(){this.state=Xb},this.options.interval,this),Xb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Vb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),hc.VERSION="2.0.4",hc.defaults={domEvents:!1,touchAction:Jb,enable:!0,inputTarget:null,inputClass:null,preset:[[ec,{enable:!1}],[cc,{enable:!1},["rotate"]],[fc,{direction:X}],[bc,{direction:X},["swipe"]],[gc],[gc,{event:"doubletap",taps:2},["tap"]],[dc]],cssProps:{userSelect:"default",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ic=1,jc=2;kc.prototype={set:function(a){return n(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?jc:ic},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&Vb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===jc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(Sb|Tb|Ub)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Yb)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(l(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(l(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(y(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return m(x(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return m(x(a),function(a){b?c[a].splice(y(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&mc(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&lc(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},n(hc,{INPUT_START:O,INPUT_MOVE:P,INPUT_END:Q,INPUT_CANCEL:R,STATE_POSSIBLE:Rb,STATE_BEGAN:Sb,STATE_CHANGED:Tb,STATE_ENDED:Ub,STATE_RECOGNIZED:Vb,STATE_CANCELLED:Wb,STATE_FAILED:Xb,DIRECTION_NONE:S,DIRECTION_LEFT:T,DIRECTION_RIGHT:U,DIRECTION_UP:V,DIRECTION_DOWN:W,DIRECTION_HORIZONTAL:X,DIRECTION_VERTICAL:Y,DIRECTION_ALL:Z,Manager:kc,Input:ab,TouchAction:Pb,TouchInput:Eb,MouseInput:rb,PointerEventInput:wb,TouchMouseInput:Gb,SingleTouchInput:Ab,Recognizer:Yb,AttrRecognizer:ac,Tap:gc,Pan:bc,Swipe:fc,Pinch:cc,Rotate:ec,Press:dc,on:t,off:u,each:m,merge:o,extend:n,inherit:p,bindFn:q,prefixed:B}),typeof define==g&&define.amd?define(function(){return hc}):"undefined"!=typeof module&&module.exports?module.exports=hc:a[c]=hc}(window,document,"Hammer");;(function(factory) { | ||
223 | if (typeof define === 'function' && define.amd) { | ||
224 | define(['jquery', 'hammerjs'], factory); | ||
225 | } else if (typeof exports === 'object') { | ||
226 | factory(require('jquery'), require('hammerjs')); | ||
227 | } else { | ||
228 | factory(jQuery, Hammer); | ||
229 | } | ||
230 | }(function($, Hammer) { | ||
231 | function hammerify(el, options) { | ||
232 | var $el = $(el); | ||
233 | if(!$el.data("hammer")) { | ||
234 | $el.data("hammer", new Hammer($el[0], options)); | ||
235 | } | ||
236 | } | ||
237 | |||
238 | $.fn.hammer = function(options) { | ||
239 | return this.each(function() { | ||
240 | hammerify(this, options); | ||
241 | }); | ||
242 | }; | ||
243 | |||
244 | // extend the emit method to also trigger jQuery events | ||
245 | Hammer.Manager.prototype.emit = (function(originalEmit) { | ||
246 | return function(type, data) { | ||
247 | originalEmit.call(this, type, data); | ||
248 | $(this.element).trigger({ | ||
249 | type: type, | ||
250 | gesture: data | ||
251 | }); | ||
252 | }; | ||
253 | })(Hammer.Manager.prototype.emit); | ||
254 | })); | ||
255 | ;window.Materialize = {}; | ||
256 | |||
257 | // Unique ID | ||
258 | Materialize.guid = (function() { | ||
259 | function s4() { | ||
260 | return Math.floor((1 + Math.random()) * 0x10000) | ||
261 | .toString(16) | ||
262 | .substring(1); | ||
263 | } | ||
264 | return function() { | ||
265 | return s4() + s4() + '-' + s4() + '-' + s4() + '-' + | ||
266 | s4() + '-' + s4() + s4() + s4(); | ||
267 | }; | ||
268 | })(); | ||
269 | |||
270 | Materialize.elementOrParentIsFixed = function(element) { | ||
271 | var $element = $(element); | ||
272 | var $checkElements = $element.add($element.parents()); | ||
273 | var isFixed = false; | ||
274 | $checkElements.each(function(){ | ||
275 | if ($(this).css("position") === "fixed") { | ||
276 | isFixed = true; | ||
277 | return false; | ||
278 | } | ||
279 | }); | ||
280 | return isFixed; | ||
281 | }; | ||
282 | |||
283 | // Velocity has conflicts when loaded with jQuery, this will check for it | ||
284 | var Vel; | ||
285 | if ($) { | ||
286 | Vel = $.Velocity; | ||
287 | } | ||
288 | else { | ||
289 | Vel = Velocity; | ||
290 | } | ||
291 | ;(function ($) { | ||
292 | $.fn.collapsible = function(options) { | ||
293 | var defaults = { | ||
294 | accordion: undefined | ||
295 | }; | ||
296 | |||
297 | options = $.extend(defaults, options); | ||
298 | |||
299 | |||
300 | return this.each(function() { | ||
301 | |||
302 | var $this = $(this); | ||
303 | |||
304 | var $panel_headers = $(this).find('> li > .collapsible-header'); | ||
305 | |||
306 | var collapsible_type = $this.data("collapsible"); | ||
307 | |||
308 | // Turn off any existing event handlers | ||
309 | $this.off('click.collapse', '.collapsible-header'); | ||
310 | $panel_headers.off('click.collapse'); | ||
311 | |||
312 | |||
313 | /**************** | ||
314 | Helper Functions | ||
315 | ****************/ | ||
316 | |||
317 | // Accordion Open | ||
318 | function accordionOpen(object) { | ||
319 | $panel_headers = $this.find('> li > .collapsible-header'); | ||
320 | if (object.hasClass('active')) { | ||
321 | object.parent().addClass('active'); | ||
322 | } | ||
323 | else { | ||
324 | object.parent().removeClass('active'); | ||
325 | } | ||
326 | if (object.parent().hasClass('active')){ | ||
327 | object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); | ||
328 | } | ||
329 | else{ | ||
330 | object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); | ||
331 | } | ||
332 | |||
333 | $panel_headers.not(object).removeClass('active').parent().removeClass('active'); | ||
334 | $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).slideUp( | ||
335 | { | ||
336 | duration: 350, | ||
337 | easing: "easeOutQuart", | ||
338 | queue: false, | ||
339 | complete: | ||
340 | function() { | ||
341 | $(this).css('height', ''); | ||
342 | } | ||
343 | }); | ||
344 | } | ||
345 | |||
346 | // Expandable Open | ||
347 | function expandableOpen(object) { | ||
348 | if (object.hasClass('active')) { | ||
349 | object.parent().addClass('active'); | ||
350 | } | ||
351 | else { | ||
352 | object.parent().removeClass('active'); | ||
353 | } | ||
354 | if (object.parent().hasClass('active')){ | ||
355 | object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); | ||
356 | } | ||
357 | else{ | ||
358 | object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}}); | ||
359 | } | ||
360 | } | ||
361 | |||
362 | /** | ||
363 | * Check if object is children of panel header | ||
364 | * @param {Object} object Jquery object | ||
365 | * @return {Boolean} true if it is children | ||
366 | */ | ||
367 | function isChildrenOfPanelHeader(object) { | ||
368 | |||
369 | var panelHeader = getPanelHeader(object); | ||
370 | |||
371 | return panelHeader.length > 0; | ||
372 | } | ||
373 | |||
374 | /** | ||
375 | * Get panel header from a children element | ||
376 | * @param {Object} object Jquery object | ||
377 | * @return {Object} panel header object | ||
378 | */ | ||
379 | function getPanelHeader(object) { | ||
380 | |||
381 | return object.closest('li > .collapsible-header'); | ||
382 | } | ||
383 | |||
384 | /***** End Helper Functions *****/ | ||
385 | |||
386 | |||
387 | |||
388 | if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion | ||
389 | // Add click handler to only direct collapsible header children | ||
390 | $panel_headers = $this.find('> li > .collapsible-header'); | ||
391 | $panel_headers.on('click.collapse', function (e) { | ||
392 | var element = $(e.target); | ||
393 | |||
394 | if (isChildrenOfPanelHeader(element)) { | ||
395 | element = getPanelHeader(element); | ||
396 | } | ||
397 | |||
398 | element.toggleClass('active'); | ||
399 | accordionOpen(element); | ||
400 | }); | ||
401 | // Open first active | ||
402 | accordionOpen($panel_headers.filter('.active').first()); | ||
403 | } | ||
404 | else { // Handle Expandables | ||
405 | $panel_headers.each(function () { | ||
406 | // Add click handler to only direct collapsible header children | ||
407 | $(this).on('click.collapse', function (e) { | ||
408 | var element = $(e.target); | ||
409 | if (isChildrenOfPanelHeader(element)) { | ||
410 | element = getPanelHeader(element); | ||
411 | } | ||
412 | element.toggleClass('active'); | ||
413 | expandableOpen(element); | ||
414 | }); | ||
415 | // Open any bodies that have the active class | ||
416 | if ($(this).hasClass('active')) { | ||
417 | expandableOpen($(this)); | ||
418 | } | ||
419 | |||
420 | }); | ||
421 | } | ||
422 | |||
423 | }); | ||
424 | }; | ||
425 | |||
426 | $(document).ready(function(){ | ||
427 | $('.collapsible').collapsible(); | ||
428 | }); | ||
429 | }( jQuery ));;(function ($) { | ||
430 | |||
431 | // Add posibility to scroll to selected option | ||
432 | // usefull for select for example | ||
433 | $.fn.scrollTo = function(elem) { | ||
434 | $(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top); | ||
435 | return this; | ||
436 | }; | ||
437 | |||
438 | $.fn.dropdown = function (option) { | ||
439 | var defaults = { | ||
440 | inDuration: 300, | ||
441 | outDuration: 225, | ||
442 | constrain_width: true, // Constrains width of dropdown to the activator | ||
443 | hover: false, | ||
444 | gutter: 0, // Spacing from edge | ||
445 | belowOrigin: false, | ||
446 | alignment: 'left' | ||
447 | }; | ||
448 | |||
449 | this.each(function(){ | ||
450 | var origin = $(this); | ||
451 | var options = $.extend({}, defaults, option); | ||
452 | |||
453 | // Dropdown menu | ||
454 | var activates = $("#"+ origin.attr('data-activates')); | ||
455 | |||
456 | function updateOptions() { | ||
457 | if (origin.data('induration') !== undefined) | ||
458 | options.inDuration = origin.data('inDuration'); | ||
459 | if (origin.data('outduration') !== undefined) | ||
460 | options.outDuration = origin.data('outDuration'); | ||
461 | if (origin.data('constrainwidth') !== undefined) | ||
462 | options.constrain_width = origin.data('constrainwidth'); | ||
463 | if (origin.data('hover') !== undefined) | ||
464 | options.hover = origin.data('hover'); | ||
465 | if (origin.data('gutter') !== undefined) | ||
466 | options.gutter = origin.data('gutter'); | ||
467 | if (origin.data('beloworigin') !== undefined) | ||
468 | options.belowOrigin = origin.data('beloworigin'); | ||
469 | if (origin.data('alignment') !== undefined) | ||
470 | options.alignment = origin.data('alignment'); | ||
471 | } | ||
472 | |||
473 | updateOptions(); | ||
474 | |||
475 | // Attach dropdown to its activator | ||
476 | origin.after(activates); | ||
477 | |||
478 | /* | ||
479 | Helper function to position and resize dropdown. | ||
480 | Used in hover and click handler. | ||
481 | */ | ||
482 | function placeDropdown() { | ||
483 | // Check html data attributes | ||
484 | updateOptions(); | ||
485 | |||
486 | // Set Dropdown state | ||
487 | activates.addClass('active'); | ||
488 | |||
489 | // Constrain width | ||
490 | if (options.constrain_width === true) { | ||
491 | activates.css('width', origin.outerWidth()); | ||
492 | } | ||
493 | else { | ||
494 | activates.css('white-space', 'nowrap'); | ||
495 | } | ||
496 | var offset = 0; | ||
497 | if (options.belowOrigin === true) { | ||
498 | offset = origin.height(); | ||
499 | } | ||
500 | |||
501 | // Offscreen detection | ||
502 | var offsetLeft = origin.offset().left; | ||
503 | var activatesLeft, width_difference, gutter_spacing; | ||
504 | if (offsetLeft + activates.innerWidth() > $(window).width()) { | ||
505 | options.alignment = 'right'; | ||
506 | } | ||
507 | else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) { | ||
508 | options.alignment = 'left'; | ||
509 | } | ||
510 | |||
511 | // Handle edge alignment | ||
512 | if (options.alignment === 'left') { | ||
513 | width_difference = 0; | ||
514 | gutter_spacing = options.gutter; | ||
515 | activatesLeft = origin.position().left + width_difference + gutter_spacing; | ||
516 | |||
517 | // Position dropdown | ||
518 | activates.css({ left: activatesLeft }); | ||
519 | } | ||
520 | else if (options.alignment === 'right') { | ||
521 | var offsetRight = $(window).width() - offsetLeft - origin.innerWidth(); | ||
522 | width_difference = 0; | ||
523 | gutter_spacing = options.gutter; | ||
524 | activatesLeft = ( $(window).width() - origin.position().left - origin.innerWidth() ) + gutter_spacing; | ||
525 | |||
526 | // Position dropdown | ||
527 | activates.css({ right: activatesLeft }); | ||
528 | } | ||
529 | // Position dropdown | ||
530 | activates.css({ | ||
531 | position: 'absolute', | ||
532 | top: origin.position().top + offset, | ||
533 | }); | ||
534 | |||
535 | |||
536 | |||
537 | // Show dropdown | ||
538 | activates.stop(true, true).css('opacity', 0) | ||
539 | .slideDown({ | ||
540 | queue: false, | ||
541 | duration: options.inDuration, | ||
542 | easing: 'easeOutCubic', | ||
543 | complete: function() { | ||
544 | $(this).css('height', ''); | ||
545 | } | ||
546 | }) | ||
547 | .animate( {opacity: 1}, {queue: false, duration: options.inDuration, easing: 'easeOutSine'}); | ||
548 | } | ||
549 | |||
550 | function hideDropdown() { | ||
551 | activates.fadeOut(options.outDuration); | ||
552 | activates.removeClass('active'); | ||
553 | } | ||
554 | |||
555 | // Hover | ||
556 | if (options.hover) { | ||
557 | var open = false; | ||
558 | origin.unbind('click.' + origin.attr('id')); | ||
559 | // Hover handler to show dropdown | ||
560 | origin.on('mouseenter', function(e){ // Mouse over | ||
561 | if (open === false) { | ||
562 | placeDropdown(); | ||
563 | open = true; | ||
564 | } | ||
565 | }); | ||
566 | origin.on('mouseleave', function(e){ | ||
567 | // If hover on origin then to something other than dropdown content, then close | ||
568 | var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element | ||
569 | if(!$(toEl).closest('.dropdown-content').is(activates)) { | ||
570 | activates.stop(true, true); | ||
571 | hideDropdown(); | ||
572 | open = false; | ||
573 | } | ||
574 | }); | ||
575 | |||
576 | activates.on('mouseleave', function(e){ // Mouse out | ||
577 | var toEl = e.toElement || e.relatedTarget; | ||
578 | if(!$(toEl).closest('.dropdown-button').is(origin)) { | ||
579 | activates.stop(true, true); | ||
580 | hideDropdown(); | ||
581 | open = false; | ||
582 | } | ||
583 | }); | ||
584 | |||
585 | // Click | ||
586 | } else { | ||
587 | |||
588 | // Click handler to show dropdown | ||
589 | origin.unbind('click.' + origin.attr('id')); | ||
590 | origin.bind('click.'+origin.attr('id'), function(e){ | ||
591 | |||
592 | if ( origin[0] == e.currentTarget && ($(e.target).closest('.dropdown-content').length === 0) ) { | ||
593 | e.preventDefault(); // Prevents button click from moving window | ||
594 | placeDropdown(); | ||
595 | |||
596 | } | ||
597 | // If origin is clicked and menu is open, close menu | ||
598 | else { | ||
599 | if (origin.hasClass('active')) { | ||
600 | hideDropdown(); | ||
601 | $(document).unbind('click.' + activates.attr('id')); | ||
602 | } | ||
603 | } | ||
604 | // If menu open, add click close handler to document | ||
605 | if (activates.hasClass('active')) { | ||
606 | $(document).bind('click.'+ activates.attr('id'), function (e) { | ||
607 | if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length > 0) ) { | ||
608 | hideDropdown(); | ||
609 | $(document).unbind('click.' + activates.attr('id')); | ||
610 | } | ||
611 | }); | ||
612 | } | ||
613 | }); | ||
614 | |||
615 | } // End else | ||
616 | |||
617 | // Listen to open and close event - useful for select component | ||
618 | origin.on('open', placeDropdown); | ||
619 | origin.on('close', hideDropdown); | ||
620 | |||
621 | |||
622 | }); | ||
623 | }; // End dropdown plugin | ||
624 | |||
625 | $(document).ready(function(){ | ||
626 | $('.dropdown-button').dropdown(); | ||
627 | }); | ||
628 | }( jQuery )); | ||
629 | ;(function($) { | ||
630 | var _stack = 0, | ||
631 | _lastID = 0, | ||
632 | _generateID = function() { | ||
633 | _lastID++; | ||
634 | return 'materialize-lean-overlay-' + _lastID; | ||
635 | }; | ||
636 | |||
637 | $.fn.extend({ | ||
638 | openModal: function(options) { | ||
639 | |||
640 | $('body').css('overflow', 'hidden'); | ||
641 | |||
642 | var defaults = { | ||
643 | opacity: 0.5, | ||
644 | in_duration: 350, | ||
645 | out_duration: 250, | ||
646 | ready: undefined, | ||
647 | complete: undefined, | ||
648 | dismissible: true, | ||
649 | starting_top: '4%' | ||
650 | }, | ||
651 | overlayID = _generateID(), | ||
652 | $modal = $(this), | ||
653 | $overlay = $('<div class="lean-overlay"></div>'), | ||
654 | lStack = (++_stack); | ||
655 | |||
656 | // Store a reference of the overlay | ||
657 | $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2); | ||
658 | $modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1); | ||
659 | |||
660 | $("body").append($overlay); | ||
661 | |||
662 | // Override defaults | ||
663 | options = $.extend(defaults, options); | ||
664 | |||
665 | if (options.dismissible) { | ||
666 | $overlay.click(function() { | ||
667 | $modal.closeModal(options); | ||
668 | }); | ||
669 | // Return on ESC | ||
670 | $(document).on('keyup.leanModal' + overlayID, function(e) { | ||
671 | if (e.keyCode === 27) { // ESC key | ||
672 | $modal.closeModal(options); | ||
673 | } | ||
674 | }); | ||
675 | } | ||
676 | |||
677 | $modal.find(".modal-close").on('click.close', function(e) { | ||
678 | $modal.closeModal(options); | ||
679 | }); | ||
680 | |||
681 | $overlay.css({ display : "block", opacity : 0 }); | ||
682 | |||
683 | $modal.css({ | ||
684 | display : "block", | ||
685 | opacity: 0 | ||
686 | }); | ||
687 | |||
688 | $overlay.velocity({opacity: options.opacity}, {duration: options.in_duration, queue: false, ease: "easeOutCubic"}); | ||
689 | $modal.data('associated-overlay', $overlay[0]); | ||
690 | |||
691 | // Define Bottom Sheet animation | ||
692 | if ($modal.hasClass('bottom-sheet')) { | ||
693 | $modal.velocity({bottom: "0", opacity: 1}, { | ||
694 | duration: options.in_duration, | ||
695 | queue: false, | ||
696 | ease: "easeOutCubic", | ||
697 | // Handle modal ready callback | ||
698 | complete: function() { | ||
699 | if (typeof(options.ready) === "function") { | ||
700 | options.ready(); | ||
701 | } | ||
702 | } | ||
703 | }); | ||
704 | } | ||
705 | else { | ||
706 | $.Velocity.hook($modal, "scaleX", 0.7); | ||
707 | $modal.css({ top: options.starting_top }); | ||
708 | $modal.velocity({top: "10%", opacity: 1, scaleX: '1'}, { | ||
709 | duration: options.in_duration, | ||
710 | queue: false, | ||
711 | ease: "easeOutCubic", | ||
712 | // Handle modal ready callback | ||
713 | complete: function() { | ||
714 | if (typeof(options.ready) === "function") { | ||
715 | options.ready(); | ||
716 | } | ||
717 | } | ||
718 | }); | ||
719 | } | ||
720 | |||
721 | |||
722 | } | ||
723 | }); | ||
724 | |||
725 | $.fn.extend({ | ||
726 | closeModal: function(options) { | ||
727 | var defaults = { | ||
728 | out_duration: 250, | ||
729 | complete: undefined | ||
730 | }, | ||
731 | $modal = $(this), | ||
732 | overlayID = $modal.data('overlay-id'), | ||
733 | $overlay = $('#' + overlayID); | ||
734 | |||
735 | options = $.extend(defaults, options); | ||
736 | |||
737 | // Disable scrolling | ||
738 | $('body').css('overflow', ''); | ||
739 | |||
740 | $modal.find('.modal-close').off('click.close'); | ||
741 | $(document).off('keyup.leanModal' + overlayID); | ||
742 | |||
743 | $overlay.velocity( { opacity: 0}, {duration: options.out_duration, queue: false, ease: "easeOutQuart"}); | ||
744 | |||
745 | |||
746 | // Define Bottom Sheet animation | ||
747 | if ($modal.hasClass('bottom-sheet')) { | ||
748 | $modal.velocity({bottom: "-100%", opacity: 0}, { | ||
749 | duration: options.out_duration, | ||
750 | queue: false, | ||
751 | ease: "easeOutCubic", | ||
752 | // Handle modal ready callback | ||
753 | complete: function() { | ||
754 | $overlay.css({display:"none"}); | ||
755 | |||
756 | // Call complete callback | ||
757 | if (typeof(options.complete) === "function") { | ||
758 | options.complete(); | ||
759 | } | ||
760 | $overlay.remove(); | ||
761 | _stack--; | ||
762 | } | ||
763 | }); | ||
764 | } | ||
765 | else { | ||
766 | $modal.velocity( | ||
767 | { top: options.starting_top, opacity: 0, scaleX: 0.7}, { | ||
768 | duration: options.out_duration, | ||
769 | complete: | ||
770 | function() { | ||
771 | |||
772 | $(this).css('display', 'none'); | ||
773 | // Call complete callback | ||
774 | if (typeof(options.complete) === "function") { | ||
775 | options.complete(); | ||
776 | } | ||
777 | $overlay.remove(); | ||
778 | _stack--; | ||
779 | } | ||
780 | } | ||
781 | ); | ||
782 | } | ||
783 | } | ||
784 | }); | ||
785 | |||
786 | $.fn.extend({ | ||
787 | leanModal: function(option) { | ||
788 | return this.each(function() { | ||
789 | |||
790 | var defaults = { | ||
791 | starting_top: '4%' | ||
792 | }, | ||
793 | // Override defaults | ||
794 | options = $.extend(defaults, option); | ||
795 | |||
796 | // Close Handlers | ||
797 | $(this).click(function(e) { | ||
798 | options.starting_top = ($(this).offset().top - $(window).scrollTop()) /1.15; | ||
799 | var modal_id = $(this).attr("href") || '#' + $(this).data('target'); | ||
800 | $(modal_id).openModal(options); | ||
801 | e.preventDefault(); | ||
802 | }); // done set on click | ||
803 | }); // done return | ||
804 | } | ||
805 | }); | ||
806 | })(jQuery); | ||
807 | ;(function ($) { | ||
808 | |||
809 | $.fn.materialbox = function () { | ||
810 | |||
811 | return this.each(function() { | ||
812 | |||
813 | if ($(this).hasClass('initialized')) { | ||
814 | return; | ||
815 | } | ||
816 | |||
817 | $(this).addClass('initialized'); | ||
818 | |||
819 | var overlayActive = false; | ||
820 | var doneAnimating = true; | ||
821 | var inDuration = 275; | ||
822 | var outDuration = 200; | ||
823 | var origin = $(this); | ||
824 | var placeholder = $('<div></div>').addClass('material-placeholder'); | ||
825 | var originalWidth = 0; | ||
826 | var originalHeight = 0; | ||
827 | origin.wrap(placeholder); | ||
828 | |||
829 | |||
830 | origin.on('click', function(){ | ||
831 | var placeholder = origin.parent('.material-placeholder'); | ||
832 | var windowWidth = window.innerWidth; | ||
833 | var windowHeight = window.innerHeight; | ||
834 | var originalWidth = origin.width(); | ||
835 | var originalHeight = origin.height(); | ||
836 | |||
837 | |||
838 | // If already modal, return to original | ||
839 | if (doneAnimating === false) { | ||
840 | returnToOriginal(); | ||
841 | return false; | ||
842 | } | ||
843 | else if (overlayActive && doneAnimating===true) { | ||
844 | returnToOriginal(); | ||
845 | return false; | ||
846 | } | ||
847 | |||
848 | |||
849 | // Set states | ||
850 | doneAnimating = false; | ||
851 | origin.addClass('active'); | ||
852 | overlayActive = true; | ||
853 | |||
854 | // Set positioning for placeholder | ||
855 | |||
856 | placeholder.css({ | ||
857 | width: placeholder[0].getBoundingClientRect().width, | ||
858 | height: placeholder[0].getBoundingClientRect().height, | ||
859 | position: 'relative', | ||
860 | top: 0, | ||
861 | left: 0 | ||
862 | }); | ||
863 | |||
864 | |||
865 | |||
866 | // Set css on origin | ||
867 | origin.css({position: 'absolute', 'z-index': 1000}) | ||
868 | .data('width', originalWidth) | ||
869 | .data('height', originalHeight); | ||
870 | |||
871 | // Add overlay | ||
872 | var overlay = $('<div id="materialbox-overlay"></div>') | ||
873 | .css({ | ||
874 | opacity: 0 | ||
875 | }) | ||
876 | .click(function(){ | ||
877 | if (doneAnimating === true) | ||
878 | returnToOriginal(); | ||
879 | }); | ||
880 | // Animate Overlay | ||
881 | $('body').append(overlay); | ||
882 | overlay.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'} | ||
883 | ); | ||
884 | |||
885 | |||
886 | // Add and animate caption if it exists | ||
887 | if (origin.data('caption') !== "") { | ||
888 | var $photo_caption = $('<div class="materialbox-caption"></div>'); | ||
889 | $photo_caption.text(origin.data('caption')); | ||
890 | $('body').append($photo_caption); | ||
891 | $photo_caption.css({ "display": "inline" }); | ||
892 | $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'}); | ||
893 | } | ||
894 | |||
895 | |||
896 | |||
897 | // Resize Image | ||
898 | var ratio = 0; | ||
899 | var widthPercent = originalWidth / windowWidth; | ||
900 | var heightPercent = originalHeight / windowHeight; | ||
901 | var newWidth = 0; | ||
902 | var newHeight = 0; | ||
903 | |||
904 | if (widthPercent > heightPercent) { | ||
905 | ratio = originalHeight / originalWidth; | ||
906 | newWidth = windowWidth * 0.9; | ||
907 | newHeight = windowWidth * 0.9 * ratio; | ||
908 | } | ||
909 | else { | ||
910 | ratio = originalWidth / originalHeight; | ||
911 | newWidth = (windowHeight * 0.9) * ratio; | ||
912 | newHeight = windowHeight * 0.9; | ||
913 | } | ||
914 | |||
915 | // Animate image + set z-index | ||
916 | if(origin.hasClass('responsive-img')) { | ||
917 | origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false, | ||
918 | complete: function(){ | ||
919 | origin.css({left: 0, top: 0}) | ||
920 | .velocity( | ||
921 | { | ||
922 | height: newHeight, | ||
923 | width: newWidth, | ||
924 | left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, | ||
925 | top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 | ||
926 | }, | ||
927 | { | ||
928 | duration: inDuration, | ||
929 | queue: false, | ||
930 | easing: 'easeOutQuad', | ||
931 | complete: function(){doneAnimating = true;} | ||
932 | } | ||
933 | ); | ||
934 | } // End Complete | ||
935 | }); // End Velocity | ||
936 | } | ||
937 | else { | ||
938 | origin.css('left', 0) | ||
939 | .css('top', 0) | ||
940 | .velocity( | ||
941 | { | ||
942 | height: newHeight, | ||
943 | width: newWidth, | ||
944 | left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2, | ||
945 | top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2 | ||
946 | }, | ||
947 | { | ||
948 | duration: inDuration, | ||
949 | queue: false, | ||
950 | easing: 'easeOutQuad', | ||
951 | complete: function(){doneAnimating = true;} | ||
952 | } | ||
953 | ); // End Velocity | ||
954 | } | ||
955 | |||
956 | }); // End origin on click | ||
957 | |||
958 | |||
959 | // Return on scroll | ||
960 | $(window).scroll(function() { | ||
961 | if (overlayActive ) { | ||
962 | returnToOriginal(); | ||
963 | } | ||
964 | }); | ||
965 | |||
966 | // Return on ESC | ||
967 | $(document).keyup(function(e) { | ||
968 | |||
969 | if (e.keyCode === 27 && doneAnimating === true) { // ESC key | ||
970 | if (overlayActive) { | ||
971 | returnToOriginal(); | ||
972 | } | ||
973 | } | ||
974 | }); | ||
975 | |||
976 | |||
977 | // This function returns the modaled image to the original spot | ||
978 | function returnToOriginal() { | ||
979 | |||
980 | doneAnimating = false; | ||
981 | |||
982 | var placeholder = origin.parent('.material-placeholder'); | ||
983 | var windowWidth = window.innerWidth; | ||
984 | var windowHeight = window.innerHeight; | ||
985 | var originalWidth = origin.data('width'); | ||
986 | var originalHeight = origin.data('height'); | ||
987 | |||
988 | origin.velocity("stop", true); | ||
989 | $('#materialbox-overlay').velocity("stop", true); | ||
990 | $('.materialbox-caption').velocity("stop", true); | ||
991 | |||
992 | |||
993 | $('#materialbox-overlay').velocity({opacity: 0}, { | ||
994 | duration: outDuration, // Delay prevents animation overlapping | ||
995 | queue: false, easing: 'easeOutQuad', | ||
996 | complete: function(){ | ||
997 | // Remove Overlay | ||
998 | overlayActive = false; | ||
999 | $(this).remove(); | ||
1000 | } | ||
1001 | }); | ||
1002 | |||
1003 | // Resize Image | ||
1004 | origin.velocity( | ||
1005 | { | ||
1006 | width: originalWidth, | ||
1007 | height: originalHeight, | ||
1008 | left: 0, | ||
1009 | top: 0 | ||
1010 | }, | ||
1011 | { | ||
1012 | duration: outDuration, | ||
1013 | queue: false, easing: 'easeOutQuad' | ||
1014 | } | ||
1015 | ); | ||
1016 | |||
1017 | // Remove Caption + reset css settings on image | ||
1018 | $('.materialbox-caption').velocity({opacity: 0}, { | ||
1019 | duration: outDuration, // Delay prevents animation overlapping | ||
1020 | queue: false, easing: 'easeOutQuad', | ||
1021 | complete: function(){ | ||
1022 | placeholder.css({ | ||
1023 | height: '', | ||
1024 | width: '', | ||
1025 | position: '', | ||
1026 | top: '', | ||
1027 | left: '' | ||
1028 | }); | ||
1029 | |||
1030 | origin.css({ | ||
1031 | height: '', | ||
1032 | top: '', | ||
1033 | left: '', | ||
1034 | width: '', | ||
1035 | 'max-width': '', | ||
1036 | position: '', | ||
1037 | 'z-index': '' | ||
1038 | }); | ||
1039 | |||
1040 | // Remove class | ||
1041 | origin.removeClass('active'); | ||
1042 | doneAnimating = true; | ||
1043 | $(this).remove(); | ||
1044 | } | ||
1045 | }); | ||
1046 | |||
1047 | } | ||
1048 | }); | ||
1049 | }; | ||
1050 | |||
1051 | $(document).ready(function(){ | ||
1052 | $('.materialboxed').materialbox(); | ||
1053 | }); | ||
1054 | |||
1055 | }( jQuery )); | ||
1056 | ;(function ($) { | ||
1057 | |||
1058 | $.fn.parallax = function () { | ||
1059 | var window_width = $(window).width(); | ||
1060 | // Parallax Scripts | ||
1061 | return this.each(function(i) { | ||
1062 | var $this = $(this); | ||
1063 | $this.addClass('parallax'); | ||
1064 | |||
1065 | function updateParallax(initial) { | ||
1066 | var container_height; | ||
1067 | if (window_width < 601) { | ||
1068 | container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height(); | ||
1069 | } | ||
1070 | else { | ||
1071 | container_height = ($this.height() > 0) ? $this.height() : 500; | ||
1072 | } | ||
1073 | var $img = $this.children("img").first(); | ||
1074 | var img_height = $img.height(); | ||
1075 | var parallax_dist = img_height - container_height; | ||
1076 | var bottom = $this.offset().top + container_height; | ||
1077 | var top = $this.offset().top; | ||
1078 | var scrollTop = $(window).scrollTop(); | ||
1079 | var windowHeight = window.innerHeight; | ||
1080 | var windowBottom = scrollTop + windowHeight; | ||
1081 | var percentScrolled = (windowBottom - top) / (container_height + windowHeight); | ||
1082 | var parallax = Math.round((parallax_dist * percentScrolled)); | ||
1083 | |||
1084 | if (initial) { | ||
1085 | $img.css('display', 'block'); | ||
1086 | } | ||
1087 | if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) { | ||
1088 | $img.css('transform', "translate3D(-50%," + parallax + "px, 0)"); | ||
1089 | } | ||
1090 | |||
1091 | } | ||
1092 | |||
1093 | // Wait for image load | ||
1094 | $this.children("img").one("load", function() { | ||
1095 | updateParallax(true); | ||
1096 | }).each(function() { | ||
1097 | if(this.complete) $(this).load(); | ||
1098 | }); | ||
1099 | |||
1100 | $(window).scroll(function() { | ||
1101 | window_width = $(window).width(); | ||
1102 | updateParallax(false); | ||
1103 | }); | ||
1104 | |||
1105 | $(window).resize(function() { | ||
1106 | window_width = $(window).width(); | ||
1107 | updateParallax(false); | ||
1108 | }); | ||
1109 | |||
1110 | }); | ||
1111 | |||
1112 | }; | ||
1113 | }( jQuery ));;(function ($) { | ||
1114 | |||
1115 | var methods = { | ||
1116 | init : function() { | ||
1117 | return this.each(function() { | ||
1118 | |||
1119 | // For each set of tabs, we want to keep track of | ||
1120 | // which tab is active and its associated content | ||
1121 | var $this = $(this), | ||
1122 | window_width = $(window).width(); | ||
1123 | |||
1124 | $this.width('100%'); | ||
1125 | var $active, $content, $links = $this.find('li.tab a'), | ||
1126 | $tabs_width = $this.width(), | ||
1127 | $tab_width = $this.find('li').first().outerWidth(), | ||
1128 | $index = 0; | ||
1129 | |||
1130 | // If the location.hash matches one of the links, use that as the active tab. | ||
1131 | $active = $($links.filter('[href="'+location.hash+'"]')); | ||
1132 | |||
1133 | // If no match is found, use the first link or any with class 'active' as the initial active tab. | ||
1134 | if ($active.length === 0) { | ||
1135 | $active = $(this).find('li.tab a.active').first(); | ||
1136 | } | ||
1137 | if ($active.length === 0) { | ||
1138 | $active = $(this).find('li.tab a').first(); | ||
1139 | } | ||
1140 | |||
1141 | $active.addClass('active'); | ||
1142 | $index = $links.index($active); | ||
1143 | if ($index < 0) { | ||
1144 | $index = 0; | ||
1145 | } | ||
1146 | |||
1147 | $content = $($active[0].hash); | ||
1148 | |||
1149 | // append indicator then set indicator width to tab width | ||
1150 | $this.append('<div class="indicator"></div>'); | ||
1151 | var $indicator = $this.find('.indicator'); | ||
1152 | if ($this.is(":visible")) { | ||
1153 | $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)}); | ||
1154 | $indicator.css({"left": $index * $tab_width}); | ||
1155 | } | ||
1156 | $(window).resize(function () { | ||
1157 | $tabs_width = $this.width(); | ||
1158 | $tab_width = $this.find('li').first().outerWidth(); | ||
1159 | if ($index < 0) { | ||
1160 | $index = 0; | ||
1161 | } | ||
1162 | if ($tab_width !== 0 && $tabs_width !== 0) { | ||
1163 | $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)}); | ||
1164 | $indicator.css({"left": $index * $tab_width}); | ||
1165 | } | ||
1166 | }); | ||
1167 | |||
1168 | // Hide the remaining content | ||
1169 | $links.not($active).each(function () { | ||
1170 | $(this.hash).hide(); | ||
1171 | }); | ||
1172 | |||
1173 | |||
1174 | // Bind the click event handler | ||
1175 | $this.on('click', 'a', function(e){ | ||
1176 | if ($(this).parent().hasClass('disabled')) { | ||
1177 | e.preventDefault(); | ||
1178 | return; | ||
1179 | } | ||
1180 | |||
1181 | $tabs_width = $this.width(); | ||
1182 | $tab_width = $this.find('li').first().outerWidth(); | ||
1183 | |||
1184 | // Make the old tab inactive. | ||
1185 | $active.removeClass('active'); | ||
1186 | $content.hide(); | ||
1187 | |||
1188 | // Update the variables with the new link and content | ||
1189 | $active = $(this); | ||
1190 | $content = $(this.hash); | ||
1191 | $links = $this.find('li.tab a'); | ||
1192 | |||
1193 | // Make the tab active. | ||
1194 | $active.addClass('active'); | ||
1195 | var $prev_index = $index; | ||
1196 | $index = $links.index($(this)); | ||
1197 | if ($index < 0) { | ||
1198 | $index = 0; | ||
1199 | } | ||
1200 | // Change url to current tab | ||
1201 | // window.location.hash = $active.attr('href'); | ||
1202 | |||
1203 | $content.show(); | ||
1204 | |||
1205 | // Update indicator | ||
1206 | if (($index - $prev_index) >= 0) { | ||
1207 | $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, { duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
1208 | $indicator.velocity({"left": $index * $tab_width}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90}); | ||
1209 | |||
1210 | } | ||
1211 | else { | ||
1212 | $indicator.velocity({"left": $index * $tab_width}, { duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
1213 | $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90}); | ||
1214 | } | ||
1215 | |||
1216 | // Prevent the anchor's default click action | ||
1217 | e.preventDefault(); | ||
1218 | }); | ||
1219 | }); | ||
1220 | |||
1221 | }, | ||
1222 | select_tab : function( id ) { | ||
1223 | this.find('a[href="#' + id + '"]').trigger('click'); | ||
1224 | } | ||
1225 | }; | ||
1226 | |||
1227 | $.fn.tabs = function(methodOrOptions) { | ||
1228 | if ( methods[methodOrOptions] ) { | ||
1229 | return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); | ||
1230 | } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { | ||
1231 | // Default to "init" | ||
1232 | return methods.init.apply( this, arguments ); | ||
1233 | } else { | ||
1234 | $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); | ||
1235 | } | ||
1236 | }; | ||
1237 | |||
1238 | $(document).ready(function(){ | ||
1239 | $('ul.tabs').tabs(); | ||
1240 | }); | ||
1241 | }( jQuery )); | ||
1242 | ;(function ($) { | ||
1243 | $.fn.tooltip = function (options) { | ||
1244 | var timeout = null, | ||
1245 | counter = null, | ||
1246 | started = false, | ||
1247 | counterInterval = null, | ||
1248 | margin = 5; | ||
1249 | |||
1250 | // Defaults | ||
1251 | var defaults = { | ||
1252 | delay: 350 | ||
1253 | }; | ||
1254 | |||
1255 | // Remove tooltip from the activator | ||
1256 | if (options === "remove") { | ||
1257 | this.each(function(){ | ||
1258 | $('#' + $(this).attr('data-tooltip-id')).remove(); | ||
1259 | }); | ||
1260 | return false; | ||
1261 | } | ||
1262 | |||
1263 | options = $.extend(defaults, options); | ||
1264 | |||
1265 | |||
1266 | return this.each(function(){ | ||
1267 | var tooltipId = Materialize.guid(); | ||
1268 | var origin = $(this); | ||
1269 | origin.attr('data-tooltip-id', tooltipId); | ||
1270 | |||
1271 | // Create Text span | ||
1272 | var tooltip_text = $('<span></span>').text(origin.attr('data-tooltip')); | ||
1273 | |||
1274 | // Create tooltip | ||
1275 | var newTooltip = $('<div></div>'); | ||
1276 | newTooltip.addClass('material-tooltip').append(tooltip_text) | ||
1277 | .appendTo($('body')) | ||
1278 | .attr('id', tooltipId); | ||
1279 | |||
1280 | var backdrop = $('<div></div>').addClass('backdrop'); | ||
1281 | backdrop.appendTo(newTooltip); | ||
1282 | backdrop.css({ top: 0, left:0 }); | ||
1283 | |||
1284 | |||
1285 | //Destroy previously binded events | ||
1286 | origin.off('mouseenter.tooltip mouseleave.tooltip'); | ||
1287 | // Mouse In | ||
1288 | origin.on({ | ||
1289 | 'mouseenter.tooltip': function(e) { | ||
1290 | var tooltip_delay = origin.data("delay"); | ||
1291 | tooltip_delay = (tooltip_delay === undefined || tooltip_delay === '') ? options.delay : tooltip_delay; | ||
1292 | counter = 0; | ||
1293 | counterInterval = setInterval(function(){ | ||
1294 | counter += 10; | ||
1295 | if (counter >= tooltip_delay && started === false) { | ||
1296 | started = true; | ||
1297 | newTooltip.css({ display: 'block', left: '0px', top: '0px' }); | ||
1298 | |||
1299 | // Set Tooltip text | ||
1300 | newTooltip.children('span').text(origin.attr('data-tooltip')); | ||
1301 | |||
1302 | // Tooltip positioning | ||
1303 | var originWidth = origin.outerWidth(); | ||
1304 | var originHeight = origin.outerHeight(); | ||
1305 | var tooltipPosition = origin.attr('data-position'); | ||
1306 | var tooltipHeight = newTooltip.outerHeight(); | ||
1307 | var tooltipWidth = newTooltip.outerWidth(); | ||
1308 | var tooltipVerticalMovement = '0px'; | ||
1309 | var tooltipHorizontalMovement = '0px'; | ||
1310 | var scale_factor = 8; | ||
1311 | |||
1312 | if (tooltipPosition === "top") { | ||
1313 | // Top Position | ||
1314 | newTooltip.css({ | ||
1315 | top: origin.offset().top - tooltipHeight - margin, | ||
1316 | left: origin.offset().left + originWidth/2 - tooltipWidth/2 | ||
1317 | }); | ||
1318 | tooltipVerticalMovement = '-10px'; | ||
1319 | backdrop.css({ | ||
1320 | borderRadius: '14px 14px 0 0', | ||
1321 | transformOrigin: '50% 90%', | ||
1322 | marginTop: tooltipHeight, | ||
1323 | marginLeft: (tooltipWidth/2) - (backdrop.width()/2) | ||
1324 | |||
1325 | }); | ||
1326 | } | ||
1327 | // Left Position | ||
1328 | else if (tooltipPosition === "left") { | ||
1329 | newTooltip.css({ | ||
1330 | top: origin.offset().top + originHeight/2 - tooltipHeight/2, | ||
1331 | left: origin.offset().left - tooltipWidth - margin | ||
1332 | }); | ||
1333 | tooltipHorizontalMovement = '-10px'; | ||
1334 | backdrop.css({ | ||
1335 | width: '14px', | ||
1336 | height: '14px', | ||
1337 | borderRadius: '14px 0 0 14px', | ||
1338 | transformOrigin: '95% 50%', | ||
1339 | marginTop: tooltipHeight/2, | ||
1340 | marginLeft: tooltipWidth | ||
1341 | }); | ||
1342 | } | ||
1343 | // Right Position | ||
1344 | else if (tooltipPosition === "right") { | ||
1345 | newTooltip.css({ | ||
1346 | top: origin.offset().top + originHeight/2 - tooltipHeight/2, | ||
1347 | left: origin.offset().left + originWidth + margin | ||
1348 | }); | ||
1349 | tooltipHorizontalMovement = '+10px'; | ||
1350 | backdrop.css({ | ||
1351 | width: '14px', | ||
1352 | height: '14px', | ||
1353 | borderRadius: '0 14px 14px 0', | ||
1354 | transformOrigin: '5% 50%', | ||
1355 | marginTop: tooltipHeight/2, | ||
1356 | marginLeft: '0px' | ||
1357 | }); | ||
1358 | } | ||
1359 | else { | ||
1360 | // Bottom Position | ||
1361 | newTooltip.css({ | ||
1362 | top: origin.offset().top + origin.outerHeight() + margin, | ||
1363 | left: origin.offset().left + originWidth/2 - tooltipWidth/2 | ||
1364 | }); | ||
1365 | tooltipVerticalMovement = '+10px'; | ||
1366 | backdrop.css({ | ||
1367 | marginLeft: (tooltipWidth/2) - (backdrop.width()/2) | ||
1368 | }); | ||
1369 | } | ||
1370 | |||
1371 | // Calculate Scale to fill | ||
1372 | scale_factor = tooltipWidth / 8; | ||
1373 | if (scale_factor < 8) { | ||
1374 | scale_factor = 8; | ||
1375 | } | ||
1376 | if (tooltipPosition === "right" || tooltipPosition === "left") { | ||
1377 | scale_factor = tooltipWidth / 10; | ||
1378 | if (scale_factor < 6) | ||
1379 | scale_factor = 6; | ||
1380 | } | ||
1381 | |||
1382 | newTooltip.velocity({ marginTop: tooltipVerticalMovement, marginLeft: tooltipHorizontalMovement}, { duration: 350, queue: false }) | ||
1383 | .velocity({opacity: 1}, {duration: 300, delay: 50, queue: false}); | ||
1384 | backdrop.css({ display: 'block' }) | ||
1385 | .velocity({opacity:1},{duration: 55, delay: 0, queue: false}) | ||
1386 | .velocity({scale: scale_factor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'}); | ||
1387 | |||
1388 | } | ||
1389 | }, 10); // End Interval | ||
1390 | |||
1391 | // Mouse Out | ||
1392 | }, | ||
1393 | 'mouseleave.tooltip': function(){ | ||
1394 | // Reset State | ||
1395 | clearInterval(counterInterval); | ||
1396 | counter = 0; | ||
1397 | |||
1398 | // Animate back | ||
1399 | newTooltip.velocity({ | ||
1400 | opacity: 0, marginTop: 0, marginLeft: 0}, { duration: 225, queue: false, delay: 225 } | ||
1401 | ); | ||
1402 | backdrop.velocity({opacity: 0, scale: 1}, { | ||
1403 | duration:225, | ||
1404 | delay: 275, queue: false, | ||
1405 | complete: function(){ | ||
1406 | backdrop.css('display', 'none'); | ||
1407 | newTooltip.css('display', 'none'); | ||
1408 | started = false;} | ||
1409 | }); | ||
1410 | } | ||
1411 | }); | ||
1412 | }); | ||
1413 | }; | ||
1414 | |||
1415 | $(document).ready(function(){ | ||
1416 | $('.tooltipped').tooltip(); | ||
1417 | }); | ||
1418 | }( jQuery )); | ||
1419 | ;/*! | ||
1420 | * Waves v0.6.4 | ||
1421 | * http://fian.my.id/Waves | ||
1422 | * | ||
1423 | * Copyright 2014 Alfiana E. Sibuea and other contributors | ||
1424 | * Released under the MIT license | ||
1425 | * https://github.com/fians/Waves/blob/master/LICENSE | ||
1426 | */ | ||
1427 | |||
1428 | ;(function(window) { | ||
1429 | 'use strict'; | ||
1430 | |||
1431 | var Waves = Waves || {}; | ||
1432 | var $$ = document.querySelectorAll.bind(document); | ||
1433 | |||
1434 | // Find exact position of element | ||
1435 | function isWindow(obj) { | ||
1436 | return obj !== null && obj === obj.window; | ||
1437 | } | ||
1438 | |||
1439 | function getWindow(elem) { | ||
1440 | return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView; | ||
1441 | } | ||
1442 | |||
1443 | function offset(elem) { | ||
1444 | var docElem, win, | ||
1445 | box = {top: 0, left: 0}, | ||
1446 | doc = elem && elem.ownerDocument; | ||
1447 | |||
1448 | docElem = doc.documentElement; | ||
1449 | |||
1450 | if (typeof elem.getBoundingClientRect !== typeof undefined) { | ||
1451 | box = elem.getBoundingClientRect(); | ||
1452 | } | ||
1453 | win = getWindow(doc); | ||
1454 | return { | ||
1455 | top: box.top + win.pageYOffset - docElem.clientTop, | ||
1456 | left: box.left + win.pageXOffset - docElem.clientLeft | ||
1457 | }; | ||
1458 | } | ||
1459 | |||
1460 | function convertStyle(obj) { | ||
1461 | var style = ''; | ||
1462 | |||
1463 | for (var a in obj) { | ||
1464 | if (obj.hasOwnProperty(a)) { | ||
1465 | style += (a + ':' + obj[a] + ';'); | ||
1466 | } | ||
1467 | } | ||
1468 | |||
1469 | return style; | ||
1470 | } | ||
1471 | |||
1472 | var Effect = { | ||
1473 | |||
1474 | // Effect delay | ||
1475 | duration: 750, | ||
1476 | |||
1477 | show: function(e, element) { | ||
1478 | |||
1479 | // Disable right click | ||
1480 | if (e.button === 2) { | ||
1481 | return false; | ||
1482 | } | ||
1483 | |||
1484 | var el = element || this; | ||
1485 | |||
1486 | // Create ripple | ||
1487 | var ripple = document.createElement('div'); | ||
1488 | ripple.className = 'waves-ripple'; | ||
1489 | el.appendChild(ripple); | ||
1490 | |||
1491 | // Get click coordinate and element witdh | ||
1492 | var pos = offset(el); | ||
1493 | var relativeY = (e.pageY - pos.top); | ||
1494 | var relativeX = (e.pageX - pos.left); | ||
1495 | var scale = 'scale('+((el.clientWidth / 100) * 10)+')'; | ||
1496 | |||
1497 | // Support for touch devices | ||
1498 | if ('touches' in e) { | ||
1499 | relativeY = (e.touches[0].pageY - pos.top); | ||
1500 | relativeX = (e.touches[0].pageX - pos.left); | ||
1501 | } | ||
1502 | |||
1503 | // Attach data to element | ||
1504 | ripple.setAttribute('data-hold', Date.now()); | ||
1505 | ripple.setAttribute('data-scale', scale); | ||
1506 | ripple.setAttribute('data-x', relativeX); | ||
1507 | ripple.setAttribute('data-y', relativeY); | ||
1508 | |||
1509 | // Set ripple position | ||
1510 | var rippleStyle = { | ||
1511 | 'top': relativeY+'px', | ||
1512 | 'left': relativeX+'px' | ||
1513 | }; | ||
1514 | |||
1515 | ripple.className = ripple.className + ' waves-notransition'; | ||
1516 | ripple.setAttribute('style', convertStyle(rippleStyle)); | ||
1517 | ripple.className = ripple.className.replace('waves-notransition', ''); | ||
1518 | |||
1519 | // Scale the ripple | ||
1520 | rippleStyle['-webkit-transform'] = scale; | ||
1521 | rippleStyle['-moz-transform'] = scale; | ||
1522 | rippleStyle['-ms-transform'] = scale; | ||
1523 | rippleStyle['-o-transform'] = scale; | ||
1524 | rippleStyle.transform = scale; | ||
1525 | rippleStyle.opacity = '1'; | ||
1526 | |||
1527 | rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms'; | ||
1528 | rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms'; | ||
1529 | rippleStyle['-o-transition-duration'] = Effect.duration + 'ms'; | ||
1530 | rippleStyle['transition-duration'] = Effect.duration + 'ms'; | ||
1531 | |||
1532 | rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; | ||
1533 | rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; | ||
1534 | rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; | ||
1535 | rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)'; | ||
1536 | |||
1537 | ripple.setAttribute('style', convertStyle(rippleStyle)); | ||
1538 | }, | ||
1539 | |||
1540 | hide: function(e) { | ||
1541 | TouchHandler.touchup(e); | ||
1542 | |||
1543 | var el = this; | ||
1544 | var width = el.clientWidth * 1.4; | ||
1545 | |||
1546 | // Get first ripple | ||
1547 | var ripple = null; | ||
1548 | var ripples = el.getElementsByClassName('waves-ripple'); | ||
1549 | if (ripples.length > 0) { | ||
1550 | ripple = ripples[ripples.length - 1]; | ||
1551 | } else { | ||
1552 | return false; | ||
1553 | } | ||
1554 | |||
1555 | var relativeX = ripple.getAttribute('data-x'); | ||
1556 | var relativeY = ripple.getAttribute('data-y'); | ||
1557 | var scale = ripple.getAttribute('data-scale'); | ||
1558 | |||
1559 | // Get delay beetween mousedown and mouse leave | ||
1560 | var diff = Date.now() - Number(ripple.getAttribute('data-hold')); | ||
1561 | var delay = 350 - diff; | ||
1562 | |||
1563 | if (delay < 0) { | ||
1564 | delay = 0; | ||
1565 | } | ||
1566 | |||
1567 | // Fade out ripple after delay | ||
1568 | setTimeout(function() { | ||
1569 | var style = { | ||
1570 | 'top': relativeY+'px', | ||
1571 | 'left': relativeX+'px', | ||
1572 | 'opacity': '0', | ||
1573 | |||
1574 | // Duration | ||
1575 | '-webkit-transition-duration': Effect.duration + 'ms', | ||
1576 | '-moz-transition-duration': Effect.duration + 'ms', | ||
1577 | '-o-transition-duration': Effect.duration + 'ms', | ||
1578 | 'transition-duration': Effect.duration + 'ms', | ||
1579 | '-webkit-transform': scale, | ||
1580 | '-moz-transform': scale, | ||
1581 | '-ms-transform': scale, | ||
1582 | '-o-transform': scale, | ||
1583 | 'transform': scale, | ||
1584 | }; | ||
1585 | |||
1586 | ripple.setAttribute('style', convertStyle(style)); | ||
1587 | |||
1588 | setTimeout(function() { | ||
1589 | try { | ||
1590 | el.removeChild(ripple); | ||
1591 | } catch(e) { | ||
1592 | return false; | ||
1593 | } | ||
1594 | }, Effect.duration); | ||
1595 | }, delay); | ||
1596 | }, | ||
1597 | |||
1598 | // Little hack to make <input> can perform waves effect | ||
1599 | wrapInput: function(elements) { | ||
1600 | for (var a = 0; a < elements.length; a++) { | ||
1601 | var el = elements[a]; | ||
1602 | |||
1603 | if (el.tagName.toLowerCase() === 'input') { | ||
1604 | var parent = el.parentNode; | ||
1605 | |||
1606 | // If input already have parent just pass through | ||
1607 | if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) { | ||
1608 | continue; | ||
1609 | } | ||
1610 | |||
1611 | // Put element class and style to the specified parent | ||
1612 | var wrapper = document.createElement('i'); | ||
1613 | wrapper.className = el.className + ' waves-input-wrapper'; | ||
1614 | |||
1615 | var elementStyle = el.getAttribute('style'); | ||
1616 | |||
1617 | if (!elementStyle) { | ||
1618 | elementStyle = ''; | ||
1619 | } | ||
1620 | |||
1621 | wrapper.setAttribute('style', elementStyle); | ||
1622 | |||
1623 | el.className = 'waves-button-input'; | ||
1624 | el.removeAttribute('style'); | ||
1625 | |||
1626 | // Put element as child | ||
1627 | parent.replaceChild(wrapper, el); | ||
1628 | wrapper.appendChild(el); | ||
1629 | } | ||
1630 | } | ||
1631 | } | ||
1632 | }; | ||
1633 | |||
1634 | |||
1635 | /** | ||
1636 | * Disable mousedown event for 500ms during and after touch | ||
1637 | */ | ||
1638 | var TouchHandler = { | ||
1639 | /* uses an integer rather than bool so there's no issues with | ||
1640 | * needing to clear timeouts if another touch event occurred | ||
1641 | * within the 500ms. Cannot mouseup between touchstart and | ||
1642 | * touchend, nor in the 500ms after touchend. */ | ||
1643 | touches: 0, | ||
1644 | allowEvent: function(e) { | ||
1645 | var allow = true; | ||
1646 | |||
1647 | if (e.type === 'touchstart') { | ||
1648 | TouchHandler.touches += 1; //push | ||
1649 | } else if (e.type === 'touchend' || e.type === 'touchcancel') { | ||
1650 | setTimeout(function() { | ||
1651 | if (TouchHandler.touches > 0) { | ||
1652 | TouchHandler.touches -= 1; //pop after 500ms | ||
1653 | } | ||
1654 | }, 500); | ||
1655 | } else if (e.type === 'mousedown' && TouchHandler.touches > 0) { | ||
1656 | allow = false; | ||
1657 | } | ||
1658 | |||
1659 | return allow; | ||
1660 | }, | ||
1661 | touchup: function(e) { | ||
1662 | TouchHandler.allowEvent(e); | ||
1663 | } | ||
1664 | }; | ||
1665 | |||
1666 | |||
1667 | /** | ||
1668 | * Delegated click handler for .waves-effect element. | ||
1669 | * returns null when .waves-effect element not in "click tree" | ||
1670 | */ | ||
1671 | function getWavesEffectElement(e) { | ||
1672 | if (TouchHandler.allowEvent(e) === false) { | ||
1673 | return null; | ||
1674 | } | ||
1675 | |||
1676 | var element = null; | ||
1677 | var target = e.target || e.srcElement; | ||
1678 | |||
1679 | while (target.parentElement !== null) { | ||
1680 | if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) { | ||
1681 | element = target; | ||
1682 | break; | ||
1683 | } else if (target.classList.contains('waves-effect')) { | ||
1684 | element = target; | ||
1685 | break; | ||
1686 | } | ||
1687 | target = target.parentElement; | ||
1688 | } | ||
1689 | |||
1690 | return element; | ||
1691 | } | ||
1692 | |||
1693 | /** | ||
1694 | * Bubble the click and show effect if .waves-effect elem was found | ||
1695 | */ | ||
1696 | function showEffect(e) { | ||
1697 | var element = getWavesEffectElement(e); | ||
1698 | |||
1699 | if (element !== null) { | ||
1700 | Effect.show(e, element); | ||
1701 | |||
1702 | if ('ontouchstart' in window) { | ||
1703 | element.addEventListener('touchend', Effect.hide, false); | ||
1704 | element.addEventListener('touchcancel', Effect.hide, false); | ||
1705 | } | ||
1706 | |||
1707 | element.addEventListener('mouseup', Effect.hide, false); | ||
1708 | element.addEventListener('mouseleave', Effect.hide, false); | ||
1709 | } | ||
1710 | } | ||
1711 | |||
1712 | Waves.displayEffect = function(options) { | ||
1713 | options = options || {}; | ||
1714 | |||
1715 | if ('duration' in options) { | ||
1716 | Effect.duration = options.duration; | ||
1717 | } | ||
1718 | |||
1719 | //Wrap input inside <i> tag | ||
1720 | Effect.wrapInput($$('.waves-effect')); | ||
1721 | |||
1722 | if ('ontouchstart' in window) { | ||
1723 | document.body.addEventListener('touchstart', showEffect, false); | ||
1724 | } | ||
1725 | |||
1726 | document.body.addEventListener('mousedown', showEffect, false); | ||
1727 | }; | ||
1728 | |||
1729 | /** | ||
1730 | * Attach Waves to an input element (or any element which doesn't | ||
1731 | * bubble mouseup/mousedown events). | ||
1732 | * Intended to be used with dynamically loaded forms/inputs, or | ||
1733 | * where the user doesn't want a delegated click handler. | ||
1734 | */ | ||
1735 | Waves.attach = function(element) { | ||
1736 | //FUTURE: automatically add waves classes and allow users | ||
1737 | // to specify them with an options param? Eg. light/classic/button | ||
1738 | if (element.tagName.toLowerCase() === 'input') { | ||
1739 | Effect.wrapInput([element]); | ||
1740 | element = element.parentElement; | ||
1741 | } | ||
1742 | |||
1743 | if ('ontouchstart' in window) { | ||
1744 | element.addEventListener('touchstart', showEffect, false); | ||
1745 | } | ||
1746 | |||
1747 | element.addEventListener('mousedown', showEffect, false); | ||
1748 | }; | ||
1749 | |||
1750 | window.Waves = Waves; | ||
1751 | |||
1752 | document.addEventListener('DOMContentLoaded', function() { | ||
1753 | Waves.displayEffect(); | ||
1754 | }, false); | ||
1755 | |||
1756 | })(window); | ||
1757 | ;Materialize.toast = function (message, displayLength, className, completeCallback) { | ||
1758 | className = className || ""; | ||
1759 | |||
1760 | var container = document.getElementById('toast-container'); | ||
1761 | |||
1762 | // Create toast container if it does not exist | ||
1763 | if (container === null) { | ||
1764 | // create notification container | ||
1765 | container = document.createElement('div'); | ||
1766 | container.id = 'toast-container'; | ||
1767 | document.body.appendChild(container); | ||
1768 | } | ||
1769 | |||
1770 | // Select and append toast | ||
1771 | var newToast = createToast(message); | ||
1772 | |||
1773 | // only append toast if message is not undefined | ||
1774 | if(message){ | ||
1775 | container.appendChild(newToast); | ||
1776 | } | ||
1777 | |||
1778 | newToast.style.top = '35px'; | ||
1779 | newToast.style.opacity = 0; | ||
1780 | |||
1781 | // Animate toast in | ||
1782 | Vel(newToast, { "top" : "0px", opacity: 1 }, {duration: 300, | ||
1783 | easing: 'easeOutCubic', | ||
1784 | queue: false}); | ||
1785 | |||
1786 | // Allows timer to be pause while being panned | ||
1787 | var timeLeft = displayLength; | ||
1788 | var counterInterval = setInterval (function(){ | ||
1789 | |||
1790 | |||
1791 | if (newToast.parentNode === null) | ||
1792 | window.clearInterval(counterInterval); | ||
1793 | |||
1794 | // If toast is not being dragged, decrease its time remaining | ||
1795 | if (!newToast.classList.contains('panning')) { | ||
1796 | timeLeft -= 20; | ||
1797 | } | ||
1798 | |||
1799 | if (timeLeft <= 0) { | ||
1800 | // Animate toast out | ||
1801 | Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375, | ||
1802 | easing: 'easeOutExpo', | ||
1803 | queue: false, | ||
1804 | complete: function(){ | ||
1805 | // Call the optional callback | ||
1806 | if(typeof(completeCallback) === "function") | ||
1807 | completeCallback(); | ||
1808 | // Remove toast after it times out | ||
1809 | this[0].parentNode.removeChild(this[0]); | ||
1810 | } | ||
1811 | }); | ||
1812 | window.clearInterval(counterInterval); | ||
1813 | } | ||
1814 | }, 20); | ||
1815 | |||
1816 | |||
1817 | |||
1818 | function createToast(html) { | ||
1819 | |||
1820 | // Create toast | ||
1821 | var toast = document.createElement('div'); | ||
1822 | toast.classList.add('toast'); | ||
1823 | if (className) { | ||
1824 | var classes = className.split(' '); | ||
1825 | |||
1826 | for (var i = 0, count = classes.length; i < count; i++) { | ||
1827 | toast.classList.add(classes[i]); | ||
1828 | } | ||
1829 | } | ||
1830 | // If type of parameter is HTML Element | ||
1831 | if ( typeof HTMLElement === "object" ? html instanceof HTMLElement : html && typeof html === "object" && html !== null && html.nodeType === 1 && typeof html.nodeName==="string" | ||
1832 | ) { | ||
1833 | toast.appendChild(html); | ||
1834 | } | ||
1835 | else if (html instanceof jQuery) { | ||
1836 | // Check if it is jQuery object | ||
1837 | toast.appendChild(html[0]); | ||
1838 | } | ||
1839 | else { | ||
1840 | // Insert as text; | ||
1841 | toast.innerHTML = html; | ||
1842 | } | ||
1843 | // Bind hammer | ||
1844 | var hammerHandler = new Hammer(toast, {prevent_default: false}); | ||
1845 | hammerHandler.on('pan', function(e) { | ||
1846 | var deltaX = e.deltaX; | ||
1847 | var activationDistance = 80; | ||
1848 | |||
1849 | // Change toast state | ||
1850 | if (!toast.classList.contains('panning')){ | ||
1851 | toast.classList.add('panning'); | ||
1852 | } | ||
1853 | |||
1854 | var opacityPercent = 1-Math.abs(deltaX / activationDistance); | ||
1855 | if (opacityPercent < 0) | ||
1856 | opacityPercent = 0; | ||
1857 | |||
1858 | Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'}); | ||
1859 | |||
1860 | }); | ||
1861 | |||
1862 | hammerHandler.on('panend', function(e) { | ||
1863 | var deltaX = e.deltaX; | ||
1864 | var activationDistance = 80; | ||
1865 | |||
1866 | // If toast dragged past activation point | ||
1867 | if (Math.abs(deltaX) > activationDistance) { | ||
1868 | Vel(toast, {marginTop: '-40px'}, { duration: 375, | ||
1869 | easing: 'easeOutExpo', | ||
1870 | queue: false, | ||
1871 | complete: function(){ | ||
1872 | if(typeof(completeCallback) === "function") { | ||
1873 | completeCallback(); | ||
1874 | } | ||
1875 | toast.parentNode.removeChild(toast); | ||
1876 | } | ||
1877 | }); | ||
1878 | |||
1879 | } else { | ||
1880 | toast.classList.remove('panning'); | ||
1881 | // Put toast back into original position | ||
1882 | Vel(toast, { left: 0, opacity: 1 }, { duration: 300, | ||
1883 | easing: 'easeOutExpo', | ||
1884 | queue: false | ||
1885 | }); | ||
1886 | |||
1887 | } | ||
1888 | }); | ||
1889 | |||
1890 | return toast; | ||
1891 | } | ||
1892 | }; | ||
1893 | ;(function ($) { | ||
1894 | |||
1895 | var methods = { | ||
1896 | init : function(options) { | ||
1897 | var defaults = { | ||
1898 | menuWidth: 240, | ||
1899 | edge: 'left', | ||
1900 | closeOnClick: false | ||
1901 | }; | ||
1902 | options = $.extend(defaults, options); | ||
1903 | |||
1904 | $(this).each(function(){ | ||
1905 | var $this = $(this); | ||
1906 | var menu_id = $("#"+ $this.attr('data-activates')); | ||
1907 | |||
1908 | // Set to width | ||
1909 | if (options.menuWidth != 240) { | ||
1910 | menu_id.css('width', options.menuWidth); | ||
1911 | } | ||
1912 | |||
1913 | // Add Touch Area | ||
1914 | var dragTarget = $('<div class="drag-target"></div>'); | ||
1915 | $('body').append(dragTarget); | ||
1916 | |||
1917 | if (options.edge == 'left') { | ||
1918 | menu_id.css('left', -1 * (options.menuWidth + 10)); | ||
1919 | dragTarget.css({'left': 0}); // Add Touch Area | ||
1920 | } | ||
1921 | else { | ||
1922 | menu_id.addClass('right-aligned') // Change text-alignment to right | ||
1923 | .css('right', -1 * (options.menuWidth + 10)) | ||
1924 | .css('left', ''); | ||
1925 | dragTarget.css({'right': 0}); // Add Touch Area | ||
1926 | } | ||
1927 | |||
1928 | // If fixed sidenav, bring menu out | ||
1929 | if (menu_id.hasClass('fixed')) { | ||
1930 | if (window.innerWidth > 992) { | ||
1931 | menu_id.css('left', 0); | ||
1932 | } | ||
1933 | } | ||
1934 | |||
1935 | // Window resize to reset on large screens fixed | ||
1936 | if (menu_id.hasClass('fixed')) { | ||
1937 | $(window).resize( function() { | ||
1938 | if (window.innerWidth > 992) { | ||
1939 | // Close menu if window is resized bigger than 992 and user has fixed sidenav | ||
1940 | if ($('#sidenav-overlay').css('opacity') !== 0 && menuOut) { | ||
1941 | removeMenu(true); | ||
1942 | } | ||
1943 | else { | ||
1944 | menu_id.removeAttr('style'); | ||
1945 | menu_id.css('width', options.menuWidth); | ||
1946 | } | ||
1947 | } | ||
1948 | else if (menuOut === false){ | ||
1949 | if (options.edge === 'left') | ||
1950 | menu_id.css('left', -1 * (options.menuWidth + 10)); | ||
1951 | else | ||
1952 | menu_id.css('right', -1 * (options.menuWidth + 10)); | ||
1953 | } | ||
1954 | |||
1955 | }); | ||
1956 | } | ||
1957 | |||
1958 | // if closeOnClick, then add close event for all a tags in side sideNav | ||
1959 | if (options.closeOnClick === true) { | ||
1960 | menu_id.on("click.itemclick", "a:not(.collapsible-header)", function(){ | ||
1961 | removeMenu(); | ||
1962 | }); | ||
1963 | } | ||
1964 | |||
1965 | function removeMenu(restoreNav) { | ||
1966 | panning = false; | ||
1967 | menuOut = false; | ||
1968 | |||
1969 | // Reenable scrolling | ||
1970 | $('body').css('overflow', ''); | ||
1971 | |||
1972 | $('#sidenav-overlay').velocity({opacity: 0}, {duration: 200, queue: false, easing: 'easeOutQuad', | ||
1973 | complete: function() { | ||
1974 | $(this).remove(); | ||
1975 | } }); | ||
1976 | if (options.edge === 'left') { | ||
1977 | // Reset phantom div | ||
1978 | dragTarget.css({width: '', right: '', left: '0'}); | ||
1979 | menu_id.velocity( | ||
1980 | {left: -1 * (options.menuWidth + 10)}, | ||
1981 | { duration: 200, | ||
1982 | queue: false, | ||
1983 | easing: 'easeOutCubic', | ||
1984 | complete: function() { | ||
1985 | if (restoreNav === true) { | ||
1986 | // Restore Fixed sidenav | ||
1987 | menu_id.removeAttr('style'); | ||
1988 | menu_id.css('width', options.menuWidth); | ||
1989 | } | ||
1990 | } | ||
1991 | |||
1992 | }); | ||
1993 | } | ||
1994 | else { | ||
1995 | // Reset phantom div | ||
1996 | dragTarget.css({width: '', right: '0', left: ''}); | ||
1997 | menu_id.velocity( | ||
1998 | {right: -1 * (options.menuWidth + 10)}, | ||
1999 | { duration: 200, | ||
2000 | queue: false, | ||
2001 | easing: 'easeOutCubic', | ||
2002 | complete: function() { | ||
2003 | if (restoreNav === true) { | ||
2004 | // Restore Fixed sidenav | ||
2005 | menu_id.removeAttr('style'); | ||
2006 | menu_id.css('width', options.menuWidth); | ||
2007 | } | ||
2008 | } | ||
2009 | }); | ||
2010 | } | ||
2011 | } | ||
2012 | |||
2013 | |||
2014 | |||
2015 | // Touch Event | ||
2016 | var panning = false; | ||
2017 | var menuOut = false; | ||
2018 | |||
2019 | dragTarget.on('click', function(){ | ||
2020 | removeMenu(); | ||
2021 | }); | ||
2022 | |||
2023 | dragTarget.hammer({ | ||
2024 | prevent_default: false | ||
2025 | }).bind('pan', function(e) { | ||
2026 | |||
2027 | if (e.gesture.pointerType == "touch") { | ||
2028 | |||
2029 | var direction = e.gesture.direction; | ||
2030 | var x = e.gesture.center.x; | ||
2031 | var y = e.gesture.center.y; | ||
2032 | var velocityX = e.gesture.velocityX; | ||
2033 | |||
2034 | // Disable Scrolling | ||
2035 | $('body').css('overflow', 'hidden'); | ||
2036 | |||
2037 | // If overlay does not exist, create one and if it is clicked, close menu | ||
2038 | if ($('#sidenav-overlay').length === 0) { | ||
2039 | var overlay = $('<div id="sidenav-overlay"></div>'); | ||
2040 | overlay.css('opacity', 0).click( function(){ | ||
2041 | removeMenu(); | ||
2042 | }); | ||
2043 | $('body').append(overlay); | ||
2044 | } | ||
2045 | |||
2046 | // Keep within boundaries | ||
2047 | if (options.edge === 'left') { | ||
2048 | if (x > options.menuWidth) { x = options.menuWidth; } | ||
2049 | else if (x < 0) { x = 0; } | ||
2050 | } | ||
2051 | |||
2052 | if (options.edge === 'left') { | ||
2053 | // Left Direction | ||
2054 | if (x < (options.menuWidth / 2)) { menuOut = false; } | ||
2055 | // Right Direction | ||
2056 | else if (x >= (options.menuWidth / 2)) { menuOut = true; } | ||
2057 | |||
2058 | menu_id.css('left', (x - options.menuWidth)); | ||
2059 | } | ||
2060 | else { | ||
2061 | // Left Direction | ||
2062 | if (x < (window.innerWidth - options.menuWidth / 2)) { | ||
2063 | menuOut = true; | ||
2064 | } | ||
2065 | // Right Direction | ||
2066 | else if (x >= (window.innerWidth - options.menuWidth / 2)) { | ||
2067 | menuOut = false; | ||
2068 | } | ||
2069 | var rightPos = -1 *(x - options.menuWidth / 2); | ||
2070 | if (rightPos > 0) { | ||
2071 | rightPos = 0; | ||
2072 | } | ||
2073 | |||
2074 | menu_id.css('right', rightPos); | ||
2075 | } | ||
2076 | |||
2077 | |||
2078 | |||
2079 | |||
2080 | // Percentage overlay | ||
2081 | var overlayPerc; | ||
2082 | if (options.edge === 'left') { | ||
2083 | overlayPerc = x / options.menuWidth; | ||
2084 | $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 50, queue: false, easing: 'easeOutQuad'}); | ||
2085 | } | ||
2086 | else { | ||
2087 | overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth); | ||
2088 | $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 50, queue: false, easing: 'easeOutQuad'}); | ||
2089 | } | ||
2090 | } | ||
2091 | |||
2092 | }).bind('panend', function(e) { | ||
2093 | |||
2094 | if (e.gesture.pointerType == "touch") { | ||
2095 | var velocityX = e.gesture.velocityX; | ||
2096 | panning = false; | ||
2097 | if (options.edge === 'left') { | ||
2098 | // If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut | ||
2099 | if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) { | ||
2100 | menu_id.velocity({left: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
2101 | $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); | ||
2102 | dragTarget.css({width: '50%', right: 0, left: ''}); | ||
2103 | } | ||
2104 | else if (!menuOut || velocityX > 0.3) { | ||
2105 | // Enable Scrolling | ||
2106 | $('body').css('overflow', ''); | ||
2107 | // Slide menu closed | ||
2108 | menu_id.velocity({left: -1 * (options.menuWidth + 10)}, {duration: 200, queue: false, easing: 'easeOutQuad'}); | ||
2109 | $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', | ||
2110 | complete: function () { | ||
2111 | $(this).remove(); | ||
2112 | }}); | ||
2113 | dragTarget.css({width: '10px', right: '', left: 0}); | ||
2114 | } | ||
2115 | } | ||
2116 | else { | ||
2117 | if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) { | ||
2118 | menu_id.velocity({right: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
2119 | $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'}); | ||
2120 | dragTarget.css({width: '50%', right: '', left: 0}); | ||
2121 | } | ||
2122 | else if (!menuOut || velocityX < -0.3) { | ||
2123 | // Enable Scrolling | ||
2124 | $('body').css('overflow', ''); | ||
2125 | // Slide menu closed | ||
2126 | menu_id.velocity({right: -1 * (options.menuWidth + 10)}, {duration: 200, queue: false, easing: 'easeOutQuad'}); | ||
2127 | $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad', | ||
2128 | complete: function () { | ||
2129 | $(this).remove(); | ||
2130 | }}); | ||
2131 | dragTarget.css({width: '10px', right: 0, left: ''}); | ||
2132 | } | ||
2133 | } | ||
2134 | |||
2135 | } | ||
2136 | }); | ||
2137 | |||
2138 | $this.click(function() { | ||
2139 | if (menuOut === true) { | ||
2140 | menuOut = false; | ||
2141 | panning = false; | ||
2142 | removeMenu(); | ||
2143 | } | ||
2144 | else { | ||
2145 | |||
2146 | // Disable Scrolling | ||
2147 | $('body').css('overflow', 'hidden'); | ||
2148 | // Push current drag target on top of DOM tree | ||
2149 | $('body').append(dragTarget); | ||
2150 | |||
2151 | if (options.edge === 'left') { | ||
2152 | dragTarget.css({width: '50%', right: 0, left: ''}); | ||
2153 | menu_id.velocity({left: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
2154 | } | ||
2155 | else { | ||
2156 | dragTarget.css({width: '50%', right: '', left: 0}); | ||
2157 | menu_id.velocity({right: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
2158 | menu_id.css('left',''); | ||
2159 | } | ||
2160 | |||
2161 | var overlay = $('<div id="sidenav-overlay"></div>'); | ||
2162 | overlay.css('opacity', 0) | ||
2163 | .click(function(){ | ||
2164 | menuOut = false; | ||
2165 | panning = false; | ||
2166 | removeMenu(); | ||
2167 | overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad', | ||
2168 | complete: function() { | ||
2169 | $(this).remove(); | ||
2170 | } }); | ||
2171 | |||
2172 | }); | ||
2173 | $('body').append(overlay); | ||
2174 | overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad', | ||
2175 | complete: function () { | ||
2176 | menuOut = true; | ||
2177 | panning = false; | ||
2178 | } | ||
2179 | }); | ||
2180 | } | ||
2181 | |||
2182 | return false; | ||
2183 | }); | ||
2184 | }); | ||
2185 | |||
2186 | |||
2187 | }, | ||
2188 | show : function() { | ||
2189 | this.trigger('click'); | ||
2190 | }, | ||
2191 | hide : function() { | ||
2192 | $('#sidenav-overlay').trigger('click'); | ||
2193 | } | ||
2194 | }; | ||
2195 | |||
2196 | |||
2197 | $.fn.sideNav = function(methodOrOptions) { | ||
2198 | if ( methods[methodOrOptions] ) { | ||
2199 | return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); | ||
2200 | } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { | ||
2201 | // Default to "init" | ||
2202 | return methods.init.apply( this, arguments ); | ||
2203 | } else { | ||
2204 | $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.sideNav' ); | ||
2205 | } | ||
2206 | }; // Plugin end | ||
2207 | }( jQuery )); | ||
2208 | ;/** | ||
2209 | * Extend jquery with a scrollspy plugin. | ||
2210 | * This watches the window scroll and fires events when elements are scrolled into viewport. | ||
2211 | * | ||
2212 | * throttle() and getTime() taken from Underscore.js | ||
2213 | * https://github.com/jashkenas/underscore | ||
2214 | * | ||
2215 | * @author Copyright 2013 John Smart | ||
2216 | * @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE | ||
2217 | * @see https://github.com/thesmart | ||
2218 | * @version 0.1.2 | ||
2219 | */ | ||
2220 | (function($) { | ||
2221 | |||
2222 | var jWindow = $(window); | ||
2223 | var elements = []; | ||
2224 | var elementsInView = []; | ||
2225 | var isSpying = false; | ||
2226 | var ticks = 0; | ||
2227 | var unique_id = 1; | ||
2228 | var offset = { | ||
2229 | top : 0, | ||
2230 | right : 0, | ||
2231 | bottom : 0, | ||
2232 | left : 0, | ||
2233 | } | ||
2234 | |||
2235 | /** | ||
2236 | * Find elements that are within the boundary | ||
2237 | * @param {number} top | ||
2238 | * @param {number} right | ||
2239 | * @param {number} bottom | ||
2240 | * @param {number} left | ||
2241 | * @return {jQuery} A collection of elements | ||
2242 | */ | ||
2243 | function findElements(top, right, bottom, left) { | ||
2244 | var hits = $(); | ||
2245 | $.each(elements, function(i, element) { | ||
2246 | if (element.height() > 0) { | ||
2247 | var elTop = element.offset().top, | ||
2248 | elLeft = element.offset().left, | ||
2249 | elRight = elLeft + element.width(), | ||
2250 | elBottom = elTop + element.height(); | ||
2251 | |||
2252 | var isIntersect = !(elLeft > right || | ||
2253 | elRight < left || | ||
2254 | elTop > bottom || | ||
2255 | elBottom < top); | ||
2256 | |||
2257 | if (isIntersect) { | ||
2258 | hits.push(element); | ||
2259 | } | ||
2260 | } | ||
2261 | }); | ||
2262 | |||
2263 | return hits; | ||
2264 | } | ||
2265 | |||
2266 | |||
2267 | /** | ||
2268 | * Called when the user scrolls the window | ||
2269 | */ | ||
2270 | function onScroll() { | ||
2271 | // unique tick id | ||
2272 | ++ticks; | ||
2273 | |||
2274 | // viewport rectangle | ||
2275 | var top = jWindow.scrollTop(), | ||
2276 | left = jWindow.scrollLeft(), | ||
2277 | right = left + jWindow.width(), | ||
2278 | bottom = top + jWindow.height(); | ||
2279 | |||
2280 | // determine which elements are in view | ||
2281 | // + 60 accounts for fixed nav | ||
2282 | var intersections = findElements(top+offset.top + 200, right+offset.right, bottom+offset.bottom, left+offset.left); | ||
2283 | $.each(intersections, function(i, element) { | ||
2284 | |||
2285 | var lastTick = element.data('scrollSpy:ticks'); | ||
2286 | if (typeof lastTick != 'number') { | ||
2287 | // entered into view | ||
2288 | element.triggerHandler('scrollSpy:enter'); | ||
2289 | } | ||
2290 | |||
2291 | // update tick id | ||
2292 | element.data('scrollSpy:ticks', ticks); | ||
2293 | }); | ||
2294 | |||
2295 | // determine which elements are no longer in view | ||
2296 | $.each(elementsInView, function(i, element) { | ||
2297 | var lastTick = element.data('scrollSpy:ticks'); | ||
2298 | if (typeof lastTick == 'number' && lastTick !== ticks) { | ||
2299 | // exited from view | ||
2300 | element.triggerHandler('scrollSpy:exit'); | ||
2301 | element.data('scrollSpy:ticks', null); | ||
2302 | } | ||
2303 | }); | ||
2304 | |||
2305 | // remember elements in view for next tick | ||
2306 | elementsInView = intersections; | ||
2307 | } | ||
2308 | |||
2309 | /** | ||
2310 | * Called when window is resized | ||
2311 | */ | ||
2312 | function onWinSize() { | ||
2313 | jWindow.trigger('scrollSpy:winSize'); | ||
2314 | } | ||
2315 | |||
2316 | /** | ||
2317 | * Get time in ms | ||
2318 | * @license https://raw.github.com/jashkenas/underscore/master/LICENSE | ||
2319 | * @type {function} | ||
2320 | * @return {number} | ||
2321 | */ | ||
2322 | var getTime = (Date.now || function () { | ||
2323 | return new Date().getTime(); | ||
2324 | }); | ||
2325 | |||
2326 | /** | ||
2327 | * Returns a function, that, when invoked, will only be triggered at most once | ||
2328 | * during a given window of time. Normally, the throttled function will run | ||
2329 | * as much as it can, without ever going more than once per `wait` duration; | ||
2330 | * but if you'd like to disable the execution on the leading edge, pass | ||
2331 | * `{leading: false}`. To disable execution on the trailing edge, ditto. | ||
2332 | * @license https://raw.github.com/jashkenas/underscore/master/LICENSE | ||
2333 | * @param {function} func | ||
2334 | * @param {number} wait | ||
2335 | * @param {Object=} options | ||
2336 | * @returns {Function} | ||
2337 | */ | ||
2338 | function throttle(func, wait, options) { | ||
2339 | var context, args, result; | ||
2340 | var timeout = null; | ||
2341 | var previous = 0; | ||
2342 | options || (options = {}); | ||
2343 | var later = function () { | ||
2344 | previous = options.leading === false ? 0 : getTime(); | ||
2345 | timeout = null; | ||
2346 | result = func.apply(context, args); | ||
2347 | context = args = null; | ||
2348 | }; | ||
2349 | return function () { | ||
2350 | var now = getTime(); | ||
2351 | if (!previous && options.leading === false) previous = now; | ||
2352 | var remaining = wait - (now - previous); | ||
2353 | context = this; | ||
2354 | args = arguments; | ||
2355 | if (remaining <= 0) { | ||
2356 | clearTimeout(timeout); | ||
2357 | timeout = null; | ||
2358 | previous = now; | ||
2359 | result = func.apply(context, args); | ||
2360 | context = args = null; | ||
2361 | } else if (!timeout && options.trailing !== false) { | ||
2362 | timeout = setTimeout(later, remaining); | ||
2363 | } | ||
2364 | return result; | ||
2365 | }; | ||
2366 | }; | ||
2367 | |||
2368 | /** | ||
2369 | * Enables ScrollSpy using a selector | ||
2370 | * @param {jQuery|string} selector The elements collection, or a selector | ||
2371 | * @param {Object=} options Optional. | ||
2372 | throttle : number -> scrollspy throttling. Default: 100 ms | ||
2373 | offsetTop : number -> offset from top. Default: 0 | ||
2374 | offsetRight : number -> offset from right. Default: 0 | ||
2375 | offsetBottom : number -> offset from bottom. Default: 0 | ||
2376 | offsetLeft : number -> offset from left. Default: 0 | ||
2377 | * @returns {jQuery} | ||
2378 | */ | ||
2379 | $.scrollSpy = function(selector, options) { | ||
2380 | var visible = []; | ||
2381 | selector = $(selector); | ||
2382 | selector.each(function(i, element) { | ||
2383 | elements.push($(element)); | ||
2384 | $(element).data("scrollSpy:id", i); | ||
2385 | // Smooth scroll to section | ||
2386 | $('a[href=#' + $(element).attr('id') + ']').click(function(e) { | ||
2387 | e.preventDefault(); | ||
2388 | var offset = $(this.hash).offset().top + 1; | ||
2389 | |||
2390 | // offset - 200 allows elements near bottom of page to scroll | ||
2391 | |||
2392 | $('html, body').animate({ scrollTop: offset - 200 }, {duration: 400, queue: false, easing: 'easeOutCubic'}); | ||
2393 | |||
2394 | }); | ||
2395 | }); | ||
2396 | options = options || { | ||
2397 | throttle: 100 | ||
2398 | }; | ||
2399 | |||
2400 | offset.top = options.offsetTop || 0; | ||
2401 | offset.right = options.offsetRight || 0; | ||
2402 | offset.bottom = options.offsetBottom || 0; | ||
2403 | offset.left = options.offsetLeft || 0; | ||
2404 | |||
2405 | var throttledScroll = throttle(onScroll, options.throttle || 100); | ||
2406 | var readyScroll = function(){ | ||
2407 | $(document).ready(throttledScroll); | ||
2408 | }; | ||
2409 | |||
2410 | if (!isSpying) { | ||
2411 | jWindow.on('scroll', readyScroll); | ||
2412 | jWindow.on('resize', readyScroll); | ||
2413 | isSpying = true; | ||
2414 | } | ||
2415 | |||
2416 | // perform a scan once, after current execution context, and after dom is ready | ||
2417 | setTimeout(readyScroll, 0); | ||
2418 | |||
2419 | |||
2420 | selector.on('scrollSpy:enter', function() { | ||
2421 | visible = $.grep(visible, function(value) { | ||
2422 | return value.height() != 0; | ||
2423 | }); | ||
2424 | |||
2425 | var $this = $(this); | ||
2426 | |||
2427 | if (visible[0]) { | ||
2428 | $('a[href=#' + visible[0].attr('id') + ']').removeClass('active'); | ||
2429 | if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) { | ||
2430 | visible.unshift($(this)); | ||
2431 | } | ||
2432 | else { | ||
2433 | visible.push($(this)); | ||
2434 | } | ||
2435 | } | ||
2436 | else { | ||
2437 | visible.push($(this)); | ||
2438 | } | ||
2439 | |||
2440 | |||
2441 | $('a[href=#' + visible[0].attr('id') + ']').addClass('active'); | ||
2442 | }); | ||
2443 | selector.on('scrollSpy:exit', function() { | ||
2444 | visible = $.grep(visible, function(value) { | ||
2445 | return value.height() != 0; | ||
2446 | }); | ||
2447 | |||
2448 | if (visible[0]) { | ||
2449 | $('a[href=#' + visible[0].attr('id') + ']').removeClass('active'); | ||
2450 | var $this = $(this); | ||
2451 | visible = $.grep(visible, function(value) { | ||
2452 | return value.attr('id') != $this.attr('id'); | ||
2453 | }); | ||
2454 | if (visible[0]) { // Check if empty | ||
2455 | $('a[href=#' + visible[0].attr('id') + ']').addClass('active'); | ||
2456 | } | ||
2457 | } | ||
2458 | }); | ||
2459 | |||
2460 | return selector; | ||
2461 | }; | ||
2462 | |||
2463 | /** | ||
2464 | * Listen for window resize events | ||
2465 | * @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms | ||
2466 | * @returns {jQuery} $(window) | ||
2467 | */ | ||
2468 | $.winSizeSpy = function(options) { | ||
2469 | $.winSizeSpy = function() { return jWindow; }; // lock from multiple calls | ||
2470 | options = options || { | ||
2471 | throttle: 100 | ||
2472 | }; | ||
2473 | return jWindow.on('resize', throttle(onWinSize, options.throttle || 100)); | ||
2474 | }; | ||
2475 | |||
2476 | /** | ||
2477 | * Enables ScrollSpy on a collection of elements | ||
2478 | * e.g. $('.scrollSpy').scrollSpy() | ||
2479 | * @param {Object=} options Optional. | ||
2480 | throttle : number -> scrollspy throttling. Default: 100 ms | ||
2481 | offsetTop : number -> offset from top. Default: 0 | ||
2482 | offsetRight : number -> offset from right. Default: 0 | ||
2483 | offsetBottom : number -> offset from bottom. Default: 0 | ||
2484 | offsetLeft : number -> offset from left. Default: 0 | ||
2485 | * @returns {jQuery} | ||
2486 | */ | ||
2487 | $.fn.scrollSpy = function(options) { | ||
2488 | return $.scrollSpy($(this), options); | ||
2489 | }; | ||
2490 | |||
2491 | })(jQuery);;(function ($) { | ||
2492 | $(document).ready(function() { | ||
2493 | |||
2494 | // Function to update labels of text fields | ||
2495 | Materialize.updateTextFields = function() { | ||
2496 | var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; | ||
2497 | $(input_selector).each(function(index, element) { | ||
2498 | if ($(element).val().length > 0 || $(this).attr('placeholder') !== undefined || $(element)[0].validity.badInput === true) { | ||
2499 | $(this).siblings('label').addClass('active'); | ||
2500 | } | ||
2501 | else { | ||
2502 | $(this).siblings('label, i').removeClass('active'); | ||
2503 | } | ||
2504 | }); | ||
2505 | }; | ||
2506 | |||
2507 | // Text based inputs | ||
2508 | var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea'; | ||
2509 | |||
2510 | // Handle HTML5 autofocus | ||
2511 | $('input[autofocus]').siblings('label, i').addClass('active'); | ||
2512 | |||
2513 | // Add active if form auto complete | ||
2514 | $(document).on('change', input_selector, function () { | ||
2515 | if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) { | ||
2516 | $(this).siblings('label').addClass('active'); | ||
2517 | } | ||
2518 | validate_field($(this)); | ||
2519 | }); | ||
2520 | |||
2521 | // Add active if input element has been pre-populated on document ready | ||
2522 | $(document).ready(function() { | ||
2523 | Materialize.updateTextFields(); | ||
2524 | }); | ||
2525 | |||
2526 | // HTML DOM FORM RESET handling | ||
2527 | $(document).on('reset', function(e) { | ||
2528 | var formReset = $(e.target); | ||
2529 | if (formReset.is('form')) { | ||
2530 | formReset.find(input_selector).removeClass('valid').removeClass('invalid'); | ||
2531 | formReset.find(input_selector).each(function () { | ||
2532 | if ($(this).attr('value') === '') { | ||
2533 | $(this).siblings('label, i').removeClass('active'); | ||
2534 | } | ||
2535 | }); | ||
2536 | |||
2537 | // Reset select | ||
2538 | formReset.find('select.initialized').each(function () { | ||
2539 | var reset_text = formReset.find('option[selected]').text(); | ||
2540 | formReset.siblings('input.select-dropdown').val(reset_text); | ||
2541 | }); | ||
2542 | } | ||
2543 | }); | ||
2544 | |||
2545 | // Add active when element has focus | ||
2546 | $(document).on('focus', input_selector, function () { | ||
2547 | $(this).siblings('label, i').addClass('active'); | ||
2548 | }); | ||
2549 | |||
2550 | $(document).on('blur', input_selector, function () { | ||
2551 | var $inputElement = $(this); | ||
2552 | if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) { | ||
2553 | $inputElement.siblings('label, i').removeClass('active'); | ||
2554 | } | ||
2555 | |||
2556 | if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') !== undefined) { | ||
2557 | $inputElement.siblings('i').removeClass('active'); | ||
2558 | } | ||
2559 | validate_field($inputElement); | ||
2560 | }); | ||
2561 | |||
2562 | window.validate_field = function(object) { | ||
2563 | var hasLength = object.attr('length') !== undefined; | ||
2564 | var lenAttr = parseInt(object.attr('length')); | ||
2565 | var len = object.val().length; | ||
2566 | |||
2567 | if (object.val().length === 0 && object[0].validity.badInput === false) { | ||
2568 | if (object.hasClass('validate')) { | ||
2569 | object.removeClass('valid'); | ||
2570 | object.removeClass('invalid'); | ||
2571 | } | ||
2572 | } | ||
2573 | else { | ||
2574 | if (object.hasClass('validate')) { | ||
2575 | // Check for character counter attributes | ||
2576 | if ((object.is(':valid') && hasLength && (len <= lenAttr)) || (object.is(':valid') && !hasLength)) { | ||
2577 | object.removeClass('invalid'); | ||
2578 | object.addClass('valid'); | ||
2579 | } | ||
2580 | else { | ||
2581 | object.removeClass('valid'); | ||
2582 | object.addClass('invalid'); | ||
2583 | } | ||
2584 | } | ||
2585 | } | ||
2586 | }; | ||
2587 | |||
2588 | |||
2589 | // Textarea Auto Resize | ||
2590 | var hiddenDiv = $('.hiddendiv').first(); | ||
2591 | if (!hiddenDiv.length) { | ||
2592 | hiddenDiv = $('<div class="hiddendiv common"></div>'); | ||
2593 | $('body').append(hiddenDiv); | ||
2594 | } | ||
2595 | var text_area_selector = '.materialize-textarea'; | ||
2596 | |||
2597 | function textareaAutoResize($textarea) { | ||
2598 | // Set font properties of hiddenDiv | ||
2599 | |||
2600 | var fontFamily = $textarea.css('font-family'); | ||
2601 | var fontSize = $textarea.css('font-size'); | ||
2602 | |||
2603 | if (fontSize) { hiddenDiv.css('font-size', fontSize); } | ||
2604 | if (fontFamily) { hiddenDiv.css('font-family', fontFamily); } | ||
2605 | |||
2606 | if ($textarea.attr('wrap') === "off") { | ||
2607 | hiddenDiv.css('overflow-wrap', "normal") | ||
2608 | .css('white-space', "pre"); | ||
2609 | } | ||
2610 | |||
2611 | |||
2612 | |||
2613 | |||
2614 | hiddenDiv.text($textarea.val() + '\n'); | ||
2615 | var content = hiddenDiv.html().replace(/\n/g, '<br>'); | ||
2616 | hiddenDiv.html(content); | ||
2617 | |||
2618 | |||
2619 | // When textarea is hidden, width goes crazy. | ||
2620 | // Approximate with half of window size | ||
2621 | |||
2622 | if ($textarea.is(':visible')) { | ||
2623 | hiddenDiv.css('width', $textarea.width()); | ||
2624 | } | ||
2625 | else { | ||
2626 | hiddenDiv.css('width', $(window).width()/2); | ||
2627 | } | ||
2628 | |||
2629 | $textarea.css('height', hiddenDiv.height()); | ||
2630 | } | ||
2631 | |||
2632 | $(text_area_selector).each(function () { | ||
2633 | var $textarea = $(this); | ||
2634 | if ($textarea.val().length) { | ||
2635 | textareaAutoResize($textarea); | ||
2636 | } | ||
2637 | }); | ||
2638 | |||
2639 | $('body').on('keyup keydown autoresize', text_area_selector, function () { | ||
2640 | textareaAutoResize($(this)); | ||
2641 | }); | ||
2642 | |||
2643 | |||
2644 | // File Input Path | ||
2645 | |||
2646 | $(document).on('change', '.file-field input[type="file"]', function () { | ||
2647 | var file_field = $(this).closest('.file-field'); | ||
2648 | var path_input = file_field.find('input.file-path'); | ||
2649 | var files = $(this)[0].files; | ||
2650 | var file_names = []; | ||
2651 | for (var i = 0; i < files.length; i++) { | ||
2652 | file_names.push(files[i].name); | ||
2653 | } | ||
2654 | path_input.val(file_names.join(", ")); | ||
2655 | path_input.trigger('change'); | ||
2656 | }); | ||
2657 | |||
2658 | |||
2659 | /**************** | ||
2660 | * Range Input * | ||
2661 | ****************/ | ||
2662 | |||
2663 | var range_type = 'input[type=range]'; | ||
2664 | var range_mousedown = false; | ||
2665 | var left; | ||
2666 | |||
2667 | $(range_type).each(function () { | ||
2668 | var thumb = $('<span class="thumb"><span class="value"></span></span>'); | ||
2669 | $(this).after(thumb); | ||
2670 | }); | ||
2671 | |||
2672 | var range_wrapper = '.range-field'; | ||
2673 | $(document).on('change', range_type, function(e) { | ||
2674 | var thumb = $(this).siblings('.thumb'); | ||
2675 | thumb.find('.value').html($(this).val()); | ||
2676 | }); | ||
2677 | |||
2678 | $(document).on('input mousedown touchstart', range_type, function(e) { | ||
2679 | var thumb = $(this).siblings('.thumb'); | ||
2680 | |||
2681 | // If thumb indicator does not exist yet, create it | ||
2682 | if (thumb.length <= 0) { | ||
2683 | thumb = $('<span class="thumb"><span class="value"></span></span>'); | ||
2684 | $(this).append(thumb); | ||
2685 | } | ||
2686 | |||
2687 | // Set indicator value | ||
2688 | thumb.find('.value').html($(this).val()); | ||
2689 | |||
2690 | range_mousedown = true; | ||
2691 | $(this).addClass('active'); | ||
2692 | |||
2693 | if (!thumb.hasClass('active')) { | ||
2694 | thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' }); | ||
2695 | } | ||
2696 | |||
2697 | if(e.pageX === undefined || e.pageX === null){//mobile | ||
2698 | left = e.originalEvent.touches[0].pageX - $(this).offset().left; | ||
2699 | } | ||
2700 | else{ // desktop | ||
2701 | left = e.pageX - $(this).offset().left; | ||
2702 | } | ||
2703 | var width = $(this).outerWidth(); | ||
2704 | |||
2705 | if (left < 0) { | ||
2706 | left = 0; | ||
2707 | } | ||
2708 | else if (left > width) { | ||
2709 | left = width; | ||
2710 | } | ||
2711 | thumb.addClass('active').css('left', left); | ||
2712 | thumb.find('.value').html($(this).val()); | ||
2713 | |||
2714 | |||
2715 | }); | ||
2716 | |||
2717 | $(document).on('mouseup touchend', range_wrapper, function() { | ||
2718 | range_mousedown = false; | ||
2719 | $(this).removeClass('active'); | ||
2720 | }); | ||
2721 | |||
2722 | $(document).on('mousemove touchmove', range_wrapper, function(e) { | ||
2723 | var thumb = $(this).children('.thumb'); | ||
2724 | var left; | ||
2725 | if (range_mousedown) { | ||
2726 | if (!thumb.hasClass('active')) { | ||
2727 | thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' }); | ||
2728 | } | ||
2729 | if (e.pageX === undefined || e.pageX === null) { //mobile | ||
2730 | left = e.originalEvent.touches[0].pageX - $(this).offset().left; | ||
2731 | } | ||
2732 | else{ // desktop | ||
2733 | left = e.pageX - $(this).offset().left; | ||
2734 | } | ||
2735 | var width = $(this).outerWidth(); | ||
2736 | |||
2737 | if (left < 0) { | ||
2738 | left = 0; | ||
2739 | } | ||
2740 | else if (left > width) { | ||
2741 | left = width; | ||
2742 | } | ||
2743 | thumb.addClass('active').css('left', left); | ||
2744 | thumb.find('.value').html(thumb.siblings(range_type).val()); | ||
2745 | } | ||
2746 | }); | ||
2747 | |||
2748 | $(document).on('mouseout touchleave', range_wrapper, function() { | ||
2749 | if (!range_mousedown) { | ||
2750 | |||
2751 | var thumb = $(this).children('.thumb'); | ||
2752 | |||
2753 | if (thumb.hasClass('active')) { | ||
2754 | thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 }); | ||
2755 | } | ||
2756 | thumb.removeClass('active'); | ||
2757 | } | ||
2758 | }); | ||
2759 | |||
2760 | }); // End of $(document).ready | ||
2761 | |||
2762 | |||
2763 | |||
2764 | |||
2765 | // Select Plugin | ||
2766 | $.fn.material_select = function (callback) { | ||
2767 | $(this).each(function(){ | ||
2768 | $select = $(this); | ||
2769 | |||
2770 | if ( $select.hasClass('browser-default')) { | ||
2771 | return; // Continue to next (return false breaks out of entire loop) | ||
2772 | } | ||
2773 | |||
2774 | // Tear down structure if Select needs to be rebuilt | ||
2775 | var lastID = $select.data('select-id'); | ||
2776 | if (lastID) { | ||
2777 | $select.parent().find('span.caret').remove(); | ||
2778 | $select.parent().find('input').remove(); | ||
2779 | |||
2780 | $select.unwrap(); | ||
2781 | $('ul#select-options-'+lastID).remove(); | ||
2782 | } | ||
2783 | |||
2784 | // If destroying the select, remove the selelct-id and reset it to it's uninitialized state. | ||
2785 | if(callback === 'destroy') { | ||
2786 | $select.data('select-id', null).removeClass('initialized'); | ||
2787 | return; | ||
2788 | } | ||
2789 | |||
2790 | var uniqueID = Materialize.guid(); | ||
2791 | $select.data('select-id', uniqueID); | ||
2792 | var wrapper = $('<div class="select-wrapper"></div>'); | ||
2793 | wrapper.addClass($select.attr('class')); | ||
2794 | var options = $('<ul id="select-options-' + uniqueID+'" class="dropdown-content select-dropdown"></ul>'); | ||
2795 | var selectOptions = $select.children('option'); | ||
2796 | |||
2797 | var label; | ||
2798 | if ($select.find('option:selected') !== undefined) { | ||
2799 | label = $select.find('option:selected'); | ||
2800 | } | ||
2801 | else { | ||
2802 | label = options.first(); | ||
2803 | } | ||
2804 | |||
2805 | |||
2806 | // Create Dropdown structure | ||
2807 | selectOptions.each(function () { | ||
2808 | // Add disabled attr if disabled | ||
2809 | options.append($('<li class="' + (($(this).is(':disabled')) ? 'disabled' : '') + '"><span>' + $(this).html() + '</span></li>')); | ||
2810 | }); | ||
2811 | |||
2812 | |||
2813 | options.find('li').each(function (i) { | ||
2814 | var $curr_select = $select; | ||
2815 | $(this).click(function () { | ||
2816 | // Check if option element is disabled | ||
2817 | if (!$(this).hasClass('disabled')) { | ||
2818 | $curr_select.find('option').eq(i).prop('selected', true); | ||
2819 | // Trigger onchange() event | ||
2820 | $curr_select.trigger('change'); | ||
2821 | $curr_select.siblings('input.select-dropdown').val($(this).text()); | ||
2822 | if (typeof callback !== 'undefined') callback(); | ||
2823 | } | ||
2824 | }); | ||
2825 | |||
2826 | }); | ||
2827 | |||
2828 | // Wrap Elements | ||
2829 | $select.wrap(wrapper); | ||
2830 | // Add Select Display Element | ||
2831 | var dropdownIcon = $('<span class="caret">▼</span>'); | ||
2832 | if ( $select.is(':disabled') ) | ||
2833 | dropdownIcon.addClass('disabled'); | ||
2834 | |||
2835 | // escape double quotes | ||
2836 | var sanitizedLabelHtml = label.html().replace(/"/g, '"'); | ||
2837 | |||
2838 | var $newSelect = $('<input type="text" class="select-dropdown" readonly="true" ' + (($select.is(':disabled')) ? 'disabled' : '') + ' data-activates="select-options-' + uniqueID +'" value="'+ sanitizedLabelHtml +'"/>'); | ||
2839 | $select.before($newSelect); | ||
2840 | $newSelect.before(dropdownIcon); | ||
2841 | |||
2842 | $('body').append(options); | ||
2843 | // Check if section element is disabled | ||
2844 | if (!$select.is(':disabled')) { | ||
2845 | $newSelect.dropdown({"hover": false}); | ||
2846 | } | ||
2847 | |||
2848 | // Copy tabindex | ||
2849 | if ($select.attr('tabindex')) { | ||
2850 | $($newSelect[0]).attr('tabindex', $select.attr('tabindex')); | ||
2851 | } | ||
2852 | |||
2853 | $select.addClass('initialized'); | ||
2854 | |||
2855 | $newSelect.on('focus', function(){ | ||
2856 | $(this).trigger('open'); | ||
2857 | label = $(this).val(); | ||
2858 | selectedOption = options.find('li').filter(function() { | ||
2859 | return $(this).text().toLowerCase() === label.toLowerCase(); | ||
2860 | })[0]; | ||
2861 | activateOption(options, selectedOption); | ||
2862 | }); | ||
2863 | |||
2864 | $newSelect.on('blur', function(){ | ||
2865 | $(this).trigger('close'); | ||
2866 | }); | ||
2867 | |||
2868 | // Make option as selected and scroll to selected position | ||
2869 | activateOption = function(collection, newOption) { | ||
2870 | collection.find('li.active').removeClass('active'); | ||
2871 | $(newOption).addClass('active'); | ||
2872 | collection.scrollTo(newOption); | ||
2873 | }; | ||
2874 | |||
2875 | // Allow user to search by typing | ||
2876 | // this array is cleared after 1 second | ||
2877 | filterQuery = []; | ||
2878 | |||
2879 | onKeyDown = function(event){ | ||
2880 | // TAB - switch to another input | ||
2881 | if(event.which == 9){ | ||
2882 | $newSelect.trigger('close'); | ||
2883 | return; | ||
2884 | } | ||
2885 | |||
2886 | // ARROW DOWN WHEN SELECT IS CLOSED - open select options | ||
2887 | if(event.which == 40 && !options.is(":visible")){ | ||
2888 | $newSelect.trigger('open'); | ||
2889 | return; | ||
2890 | } | ||
2891 | |||
2892 | // ENTER WHEN SELECT IS CLOSED - submit form | ||
2893 | if(event.which == 13 && !options.is(":visible")){ | ||
2894 | return; | ||
2895 | } | ||
2896 | |||
2897 | event.preventDefault(); | ||
2898 | |||
2899 | // CASE WHEN USER TYPE LETTERS | ||
2900 | letter = String.fromCharCode(event.which).toLowerCase(); | ||
2901 | var nonLetters = [9,13,27,38,40]; | ||
2902 | if (letter && (nonLetters.indexOf(event.which) === -1)){ | ||
2903 | filterQuery.push(letter); | ||
2904 | |||
2905 | string = filterQuery.join(""); | ||
2906 | |||
2907 | newOption = options.find('li').filter(function() { | ||
2908 | return $(this).text().toLowerCase().indexOf(string) === 0; | ||
2909 | })[0]; | ||
2910 | |||
2911 | if(newOption){ | ||
2912 | activateOption(options, newOption); | ||
2913 | } | ||
2914 | } | ||
2915 | |||
2916 | // ENTER - select option and close when select options are opened | ||
2917 | if(event.which == 13){ | ||
2918 | activeOption = options.find('li.active:not(.disabled)')[0]; | ||
2919 | if(activeOption){ | ||
2920 | $(activeOption).trigger('click'); | ||
2921 | $newSelect.trigger('close'); | ||
2922 | } | ||
2923 | } | ||
2924 | |||
2925 | // ARROW DOWN - move to next not disabled option | ||
2926 | if(event.which == 40){ | ||
2927 | newOption = options.find('li.active').next('li:not(.disabled)')[0]; | ||
2928 | if(newOption){ | ||
2929 | activateOption(options, newOption); | ||
2930 | } | ||
2931 | } | ||
2932 | |||
2933 | // ESC - close options | ||
2934 | if(event.which == 27){ | ||
2935 | $newSelect.trigger('close'); | ||
2936 | } | ||
2937 | |||
2938 | // ARROW UP - move to previous not disabled option | ||
2939 | if(event.which == 38){ | ||
2940 | newOption = options.find('li.active').prev('li:not(.disabled)')[0]; | ||
2941 | if(newOption){ | ||
2942 | activateOption(options, newOption); | ||
2943 | } | ||
2944 | } | ||
2945 | |||
2946 | // Automaticaly clean filter query so user can search again by starting letters | ||
2947 | setTimeout(function(){ filterQuery = []; }, 1000); | ||
2948 | }; | ||
2949 | |||
2950 | $newSelect.on('keydown', onKeyDown); | ||
2951 | }); | ||
2952 | }; | ||
2953 | |||
2954 | }( jQuery )); | ||
2955 | ;(function ($) { | ||
2956 | |||
2957 | var methods = { | ||
2958 | |||
2959 | init : function(options) { | ||
2960 | var defaults = { | ||
2961 | indicators: true, | ||
2962 | height: 400, | ||
2963 | transition: 500, | ||
2964 | interval: 6000 | ||
2965 | }; | ||
2966 | options = $.extend(defaults, options); | ||
2967 | |||
2968 | return this.each(function() { | ||
2969 | |||
2970 | // For each slider, we want to keep track of | ||
2971 | // which slide is active and its associated content | ||
2972 | var $this = $(this); | ||
2973 | var $slider = $this.find('ul.slides').first(); | ||
2974 | var $slides = $slider.find('li'); | ||
2975 | var $active_index = $slider.find('.active').index(); | ||
2976 | var $active; | ||
2977 | if ($active_index != -1) { $active = $slides.eq($active_index); } | ||
2978 | |||
2979 | // Transitions the caption depending on alignment | ||
2980 | function captionTransition(caption, duration) { | ||
2981 | if (caption.hasClass("center-align")) { | ||
2982 | caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false}); | ||
2983 | } | ||
2984 | else if (caption.hasClass("right-align")) { | ||
2985 | caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false}); | ||
2986 | } | ||
2987 | else if (caption.hasClass("left-align")) { | ||
2988 | caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false}); | ||
2989 | } | ||
2990 | } | ||
2991 | |||
2992 | // This function will transition the slide to any index of the next slide | ||
2993 | function moveToSlide(index) { | ||
2994 | if (index >= $slides.length) index = 0; | ||
2995 | else if (index < 0) index = $slides.length -1; | ||
2996 | |||
2997 | $active_index = $slider.find('.active').index(); | ||
2998 | |||
2999 | // Only do if index changes | ||
3000 | if ($active_index != index) { | ||
3001 | $active = $slides.eq($active_index); | ||
3002 | $caption = $active.find('.caption'); | ||
3003 | |||
3004 | $active.removeClass('active'); | ||
3005 | $active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad', | ||
3006 | complete: function() { | ||
3007 | $slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false}); | ||
3008 | } }); | ||
3009 | captionTransition($caption, options.transition); | ||
3010 | |||
3011 | |||
3012 | // Update indicators | ||
3013 | if (options.indicators) { | ||
3014 | $indicators.eq($active_index).removeClass('active'); | ||
3015 | } | ||
3016 | |||
3017 | $slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); | ||
3018 | $slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'}); | ||
3019 | $slides.eq(index).addClass('active'); | ||
3020 | |||
3021 | |||
3022 | // Update indicators | ||
3023 | if (options.indicators) { | ||
3024 | $indicators.eq(index).addClass('active'); | ||
3025 | } | ||
3026 | } | ||
3027 | } | ||
3028 | |||
3029 | // Set height of slider | ||
3030 | // If fullscreen, do nothing | ||
3031 | if (!$this.hasClass('fullscreen')) { | ||
3032 | if (options.indicators) { | ||
3033 | // Add height if indicators are present | ||
3034 | $this.height(options.height + 40); | ||
3035 | } | ||
3036 | else { | ||
3037 | $this.height(options.height); | ||
3038 | } | ||
3039 | $slider.height(options.height); | ||
3040 | } | ||
3041 | |||
3042 | |||
3043 | // Set initial positions of captions | ||
3044 | $slides.find('.caption').each(function () { | ||
3045 | captionTransition($(this), 0); | ||
3046 | }); | ||
3047 | |||
3048 | // Move img src into background-image | ||
3049 | $slides.find('img').each(function () { | ||
3050 | $(this).css('background-image', 'url(' + $(this).attr('src') + ')' ); | ||
3051 | $(this).attr('src', 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='); | ||
3052 | }); | ||
3053 | |||
3054 | // dynamically add indicators | ||
3055 | if (options.indicators) { | ||
3056 | var $indicators = $('<ul class="indicators"></ul>'); | ||
3057 | $slides.each(function( index ) { | ||
3058 | var $indicator = $('<li class="indicator-item"></li>'); | ||
3059 | |||
3060 | // Handle clicks on indicators | ||
3061 | $indicator.click(function () { | ||
3062 | var $parent = $slider.parent(); | ||
3063 | var curr_index = $parent.find($(this)).index(); | ||
3064 | moveToSlide(curr_index); | ||
3065 | |||
3066 | // reset interval | ||
3067 | clearInterval($interval); | ||
3068 | $interval = setInterval( | ||
3069 | function(){ | ||
3070 | $active_index = $slider.find('.active').index(); | ||
3071 | if ($slides.length == $active_index + 1) $active_index = 0; // loop to start | ||
3072 | else $active_index += 1; | ||
3073 | |||
3074 | moveToSlide($active_index); | ||
3075 | |||
3076 | }, options.transition + options.interval | ||
3077 | ); | ||
3078 | }); | ||
3079 | $indicators.append($indicator); | ||
3080 | }); | ||
3081 | $this.append($indicators); | ||
3082 | $indicators = $this.find('ul.indicators').find('li.indicator-item'); | ||
3083 | } | ||
3084 | |||
3085 | if ($active) { | ||
3086 | $active.show(); | ||
3087 | } | ||
3088 | else { | ||
3089 | $slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); | ||
3090 | |||
3091 | $active_index = 0; | ||
3092 | $active = $slides.eq($active_index); | ||
3093 | |||
3094 | // Update indicators | ||
3095 | if (options.indicators) { | ||
3096 | $indicators.eq($active_index).addClass('active'); | ||
3097 | } | ||
3098 | } | ||
3099 | |||
3100 | // Adjust height to current slide | ||
3101 | $active.find('img').each(function() { | ||
3102 | $active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'}); | ||
3103 | }); | ||
3104 | |||
3105 | // auto scroll | ||
3106 | $interval = setInterval( | ||
3107 | function(){ | ||
3108 | $active_index = $slider.find('.active').index(); | ||
3109 | moveToSlide($active_index + 1); | ||
3110 | |||
3111 | }, options.transition + options.interval | ||
3112 | ); | ||
3113 | |||
3114 | |||
3115 | // HammerJS, Swipe navigation | ||
3116 | |||
3117 | // Touch Event | ||
3118 | var panning = false; | ||
3119 | var swipeLeft = false; | ||
3120 | var swipeRight = false; | ||
3121 | |||
3122 | $this.hammer({ | ||
3123 | prevent_default: false | ||
3124 | }).bind('pan', function(e) { | ||
3125 | if (e.gesture.pointerType === "touch") { | ||
3126 | |||
3127 | // reset interval | ||
3128 | clearInterval($interval); | ||
3129 | |||
3130 | var direction = e.gesture.direction; | ||
3131 | var x = e.gesture.deltaX; | ||
3132 | var velocityX = e.gesture.velocityX; | ||
3133 | |||
3134 | $curr_slide = $slider.find('.active'); | ||
3135 | $curr_slide.velocity({ translateX: x | ||
3136 | }, {duration: 50, queue: false, easing: 'easeOutQuad'}); | ||
3137 | |||
3138 | // Swipe Left | ||
3139 | if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) { | ||
3140 | swipeRight = true; | ||
3141 | } | ||
3142 | // Swipe Right | ||
3143 | else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) { | ||
3144 | swipeLeft = true; | ||
3145 | } | ||
3146 | |||
3147 | // Make Slide Behind active slide visible | ||
3148 | var next_slide; | ||
3149 | if (swipeLeft) { | ||
3150 | next_slide = $curr_slide.next(); | ||
3151 | if (next_slide.length === 0) { | ||
3152 | next_slide = $slides.first(); | ||
3153 | } | ||
3154 | next_slide.velocity({ opacity: 1 | ||
3155 | }, {duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
3156 | } | ||
3157 | if (swipeRight) { | ||
3158 | next_slide = $curr_slide.prev(); | ||
3159 | if (next_slide.length === 0) { | ||
3160 | next_slide = $slides.last(); | ||
3161 | } | ||
3162 | next_slide.velocity({ opacity: 1 | ||
3163 | }, {duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
3164 | } | ||
3165 | |||
3166 | |||
3167 | } | ||
3168 | |||
3169 | }).bind('panend', function(e) { | ||
3170 | if (e.gesture.pointerType === "touch") { | ||
3171 | |||
3172 | $curr_slide = $slider.find('.active'); | ||
3173 | panning = false; | ||
3174 | curr_index = $slider.find('.active').index(); | ||
3175 | |||
3176 | if (!swipeRight && !swipeLeft) { | ||
3177 | // Return to original spot | ||
3178 | $curr_slide.velocity({ translateX: 0 | ||
3179 | }, {duration: 300, queue: false, easing: 'easeOutQuad'}); | ||
3180 | } | ||
3181 | else if (swipeLeft) { | ||
3182 | moveToSlide(curr_index + 1); | ||
3183 | $curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', | ||
3184 | complete: function() { | ||
3185 | $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); | ||
3186 | } }); | ||
3187 | } | ||
3188 | else if (swipeRight) { | ||
3189 | moveToSlide(curr_index - 1); | ||
3190 | $curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad', | ||
3191 | complete: function() { | ||
3192 | $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false}); | ||
3193 | } }); | ||
3194 | } | ||
3195 | swipeLeft = false; | ||
3196 | swipeRight = false; | ||
3197 | |||
3198 | // Restart interval | ||
3199 | clearInterval($interval); | ||
3200 | $interval = setInterval( | ||
3201 | function(){ | ||
3202 | $active_index = $slider.find('.active').index(); | ||
3203 | if ($slides.length == $active_index + 1) $active_index = 0; // loop to start | ||
3204 | else $active_index += 1; | ||
3205 | |||
3206 | moveToSlide($active_index); | ||
3207 | |||
3208 | }, options.transition + options.interval | ||
3209 | ); | ||
3210 | } | ||
3211 | }); | ||
3212 | |||
3213 | $this.on('sliderPause', function() { | ||
3214 | clearInterval($interval); | ||
3215 | }); | ||
3216 | |||
3217 | $this.on('sliderStart', function() { | ||
3218 | clearInterval($interval); | ||
3219 | $interval = setInterval( | ||
3220 | function(){ | ||
3221 | $active_index = $slider.find('.active').index(); | ||
3222 | if ($slides.length == $active_index + 1) $active_index = 0; // loop to start | ||
3223 | else $active_index += 1; | ||
3224 | |||
3225 | moveToSlide($active_index); | ||
3226 | |||
3227 | }, options.transition + options.interval | ||
3228 | ); | ||
3229 | }); | ||
3230 | |||
3231 | }); | ||
3232 | |||
3233 | |||
3234 | |||
3235 | }, | ||
3236 | pause : function() { | ||
3237 | $(this).trigger('sliderPause'); | ||
3238 | }, | ||
3239 | start : function() { | ||
3240 | $(this).trigger('sliderStart'); | ||
3241 | } | ||
3242 | }; | ||
3243 | |||
3244 | |||
3245 | $.fn.slider = function(methodOrOptions) { | ||
3246 | if ( methods[methodOrOptions] ) { | ||
3247 | return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 )); | ||
3248 | } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) { | ||
3249 | // Default to "init" | ||
3250 | return methods.init.apply( this, arguments ); | ||
3251 | } else { | ||
3252 | $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' ); | ||
3253 | } | ||
3254 | }; // Plugin end | ||
3255 | }( jQuery ));;(function ($) { | ||
3256 | $(document).ready(function() { | ||
3257 | |||
3258 | $(document).on('click.card', '.card', function (e) { | ||
3259 | if ($(this).find('> .card-reveal').length) { | ||
3260 | if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) { | ||
3261 | // Make Reveal animate down and display none | ||
3262 | $(this).find('.card-reveal').velocity( | ||
3263 | {translateY: 0}, { | ||
3264 | duration: 225, | ||
3265 | queue: false, | ||
3266 | easing: 'easeInOutQuad', | ||
3267 | complete: function() { $(this).css({ display: 'none'}); } | ||
3268 | } | ||
3269 | ); | ||
3270 | } | ||
3271 | else if ($(e.target).is($('.card .activator')) || | ||
3272 | $(e.target).is($('.card .activator i')) ) { | ||
3273 | $(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'}); | ||
3274 | } | ||
3275 | } | ||
3276 | |||
3277 | |||
3278 | }); | ||
3279 | |||
3280 | }); | ||
3281 | }( jQuery ));;(function ($) { | ||
3282 | $(document).ready(function() { | ||
3283 | |||
3284 | $(document).on('click.chip', '.chip .material-icons', function (e) { | ||
3285 | $(this).parent().remove(); | ||
3286 | }); | ||
3287 | |||
3288 | }); | ||
3289 | }( jQuery ));;(function ($) { | ||
3290 | $(document).ready(function() { | ||
3291 | |||
3292 | $.fn.pushpin = function (options) { | ||
3293 | |||
3294 | var defaults = { | ||
3295 | top: 0, | ||
3296 | bottom: Infinity, | ||
3297 | offset: 0 | ||
3298 | } | ||
3299 | options = $.extend(defaults, options); | ||
3300 | |||
3301 | $index = 0; | ||
3302 | return this.each(function() { | ||
3303 | var $uniqueId = Materialize.guid(), | ||
3304 | $this = $(this), | ||
3305 | $original_offset = $(this).offset().top; | ||
3306 | |||
3307 | function removePinClasses(object) { | ||
3308 | object.removeClass('pin-top'); | ||
3309 | object.removeClass('pinned'); | ||
3310 | object.removeClass('pin-bottom'); | ||
3311 | } | ||
3312 | |||
3313 | function updateElements(objects, scrolled) { | ||
3314 | objects.each(function () { | ||
3315 | // Add position fixed (because its between top and bottom) | ||
3316 | if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) { | ||
3317 | removePinClasses($(this)); | ||
3318 | $(this).css('top', options.offset); | ||
3319 | $(this).addClass('pinned'); | ||
3320 | } | ||
3321 | |||
3322 | // Add pin-top (when scrolled position is above top) | ||
3323 | if (scrolled < options.top && !$(this).hasClass('pin-top')) { | ||
3324 | removePinClasses($(this)); | ||
3325 | $(this).css('top', 0); | ||
3326 | $(this).addClass('pin-top'); | ||
3327 | } | ||
3328 | |||
3329 | // Add pin-bottom (when scrolled position is below bottom) | ||
3330 | if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) { | ||
3331 | removePinClasses($(this)); | ||
3332 | $(this).addClass('pin-bottom'); | ||
3333 | $(this).css('top', options.bottom - $original_offset); | ||
3334 | } | ||
3335 | }); | ||
3336 | } | ||
3337 | |||
3338 | updateElements($this, $(window).scrollTop()); | ||
3339 | $(window).on('scroll.' + $uniqueId, function () { | ||
3340 | var $scrolled = $(window).scrollTop() + options.offset; | ||
3341 | updateElements($this, $scrolled); | ||
3342 | }); | ||
3343 | |||
3344 | }); | ||
3345 | |||
3346 | }; | ||
3347 | |||
3348 | |||
3349 | }); | ||
3350 | }( jQuery ));;(function ($) { | ||
3351 | $(document).ready(function() { | ||
3352 | |||
3353 | // jQuery reverse | ||
3354 | $.fn.reverse = [].reverse; | ||
3355 | |||
3356 | $(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn', function(e) { | ||
3357 | var $this = $(this); | ||
3358 | openFABMenu($this); | ||
3359 | |||
3360 | }); | ||
3361 | |||
3362 | $(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn', function(e) { | ||
3363 | var $this = $(this); | ||
3364 | closeFABMenu($this); | ||
3365 | }); | ||
3366 | |||
3367 | }); | ||
3368 | |||
3369 | $.fn.extend({ | ||
3370 | openFAB: function() { | ||
3371 | var $this = $(this); | ||
3372 | openFABMenu($this); | ||
3373 | }, | ||
3374 | closeFAB: function() { | ||
3375 | closeFABMenu($this); | ||
3376 | } | ||
3377 | }); | ||
3378 | |||
3379 | |||
3380 | var openFABMenu = function (btn) { | ||
3381 | $this = btn; | ||
3382 | if ($this.hasClass('active') === false) { | ||
3383 | $this.addClass('active'); | ||
3384 | $this.find('ul .btn-floating').velocity( | ||
3385 | { scaleY: ".4", scaleX: ".4", translateY: "40px"}, | ||
3386 | { duration: 0 }); | ||
3387 | |||
3388 | var time = 0; | ||
3389 | $this.find('ul .btn-floating').reverse().each(function () { | ||
3390 | $(this).velocity( | ||
3391 | { opacity: "1", scaleX: "1", scaleY: "1", translateY: "0"}, | ||
3392 | { duration: 80, delay: time }); | ||
3393 | time += 40; | ||
3394 | }); | ||
3395 | } | ||
3396 | }; | ||
3397 | |||
3398 | var closeFABMenu = function (btn) { | ||
3399 | $this = btn; | ||
3400 | $this.removeClass('active'); | ||
3401 | var time = 0; | ||
3402 | $this.find('ul .btn-floating').velocity("stop", true); | ||
3403 | $this.find('ul .btn-floating').velocity( | ||
3404 | { opacity: "0", scaleX: ".4", scaleY: ".4", translateY: "40px"}, | ||
3405 | { duration: 80 } | ||
3406 | ); | ||
3407 | }; | ||
3408 | |||
3409 | |||
3410 | }( jQuery )); | ||
3411 | ;(function ($) { | ||
3412 | // Image transition function | ||
3413 | Materialize.fadeInImage = function(selector){ | ||
3414 | var element = $(selector); | ||
3415 | element.css({opacity: 0}); | ||
3416 | $(element).velocity({opacity: 1}, { | ||
3417 | duration: 650, | ||
3418 | queue: false, | ||
3419 | easing: 'easeOutSine' | ||
3420 | }); | ||
3421 | $(element).velocity({opacity: 1}, { | ||
3422 | duration: 1300, | ||
3423 | queue: false, | ||
3424 | easing: 'swing', | ||
3425 | step: function(now, fx) { | ||
3426 | fx.start = 100; | ||
3427 | var grayscale_setting = now/100; | ||
3428 | var brightness_setting = 150 - (100 - now)/1.75; | ||
3429 | |||
3430 | if (brightness_setting < 100) { | ||
3431 | brightness_setting = 100; | ||
3432 | } | ||
3433 | if (now >= 0) { | ||
3434 | $(this).css({ | ||
3435 | "-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)", | ||
3436 | "filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)" | ||
3437 | }); | ||
3438 | } | ||
3439 | } | ||
3440 | }); | ||
3441 | }; | ||
3442 | |||
3443 | // Horizontal staggered list | ||
3444 | Materialize.showStaggeredList = function(selector) { | ||
3445 | var time = 0; | ||
3446 | $(selector).find('li').velocity( | ||
3447 | { translateX: "-100px"}, | ||
3448 | { duration: 0 }); | ||
3449 | |||
3450 | $(selector).find('li').each(function() { | ||
3451 | $(this).velocity( | ||
3452 | { opacity: "1", translateX: "0"}, | ||
3453 | { duration: 800, delay: time, easing: [60, 10] }); | ||
3454 | time += 120; | ||
3455 | }); | ||
3456 | }; | ||
3457 | |||
3458 | |||
3459 | $(document).ready(function() { | ||
3460 | // Hardcoded .staggered-list scrollFire | ||
3461 | // var staggeredListOptions = []; | ||
3462 | // $('ul.staggered-list').each(function (i) { | ||
3463 | |||
3464 | // var label = 'scrollFire-' + i; | ||
3465 | // $(this).addClass(label); | ||
3466 | // staggeredListOptions.push( | ||
3467 | // {selector: 'ul.staggered-list.' + label, | ||
3468 | // offset: 200, | ||
3469 | // callback: 'showStaggeredList("ul.staggered-list.' + label + '")'}); | ||
3470 | // }); | ||
3471 | // scrollFire(staggeredListOptions); | ||
3472 | |||
3473 | // HammerJS, Swipe navigation | ||
3474 | |||
3475 | // Touch Event | ||
3476 | var swipeLeft = false; | ||
3477 | var swipeRight = false; | ||
3478 | |||
3479 | |||
3480 | // Dismissible Collections | ||
3481 | $('.dismissable').each(function() { | ||
3482 | $(this).hammer({ | ||
3483 | prevent_default: false | ||
3484 | }).bind('pan', function(e) { | ||
3485 | if (e.gesture.pointerType === "touch") { | ||
3486 | var $this = $(this); | ||
3487 | var direction = e.gesture.direction; | ||
3488 | var x = e.gesture.deltaX; | ||
3489 | var velocityX = e.gesture.velocityX; | ||
3490 | |||
3491 | $this.velocity({ translateX: x | ||
3492 | }, {duration: 50, queue: false, easing: 'easeOutQuad'}); | ||
3493 | |||
3494 | // Swipe Left | ||
3495 | if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) { | ||
3496 | swipeLeft = true; | ||
3497 | } | ||
3498 | |||
3499 | // Swipe Right | ||
3500 | if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) { | ||
3501 | swipeRight = true; | ||
3502 | } | ||
3503 | } | ||
3504 | }).bind('panend', function(e) { | ||
3505 | // Reset if collection is moved back into original position | ||
3506 | if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) { | ||
3507 | swipeRight = false; | ||
3508 | swipeLeft = false; | ||
3509 | } | ||
3510 | |||
3511 | if (e.gesture.pointerType === "touch") { | ||
3512 | var $this = $(this); | ||
3513 | if (swipeLeft || swipeRight) { | ||
3514 | var fullWidth; | ||
3515 | if (swipeLeft) { fullWidth = $this.innerWidth(); } | ||
3516 | else { fullWidth = -1 * $this.innerWidth(); } | ||
3517 | |||
3518 | $this.velocity({ translateX: fullWidth, | ||
3519 | }, {duration: 100, queue: false, easing: 'easeOutQuad', complete: | ||
3520 | function() { | ||
3521 | $this.css('border', 'none'); | ||
3522 | $this.velocity({ height: 0, padding: 0, | ||
3523 | }, {duration: 200, queue: false, easing: 'easeOutQuad', complete: | ||
3524 | function() { $this.remove(); } | ||
3525 | }); | ||
3526 | } | ||
3527 | }); | ||
3528 | } | ||
3529 | else { | ||
3530 | $this.velocity({ translateX: 0, | ||
3531 | }, {duration: 100, queue: false, easing: 'easeOutQuad'}); | ||
3532 | } | ||
3533 | swipeLeft = false; | ||
3534 | swipeRight = false; | ||
3535 | } | ||
3536 | }); | ||
3537 | |||
3538 | }); | ||
3539 | |||
3540 | |||
3541 | // time = 0 | ||
3542 | // // Vertical Staggered list | ||
3543 | // $('ul.staggered-list.vertical li').velocity( | ||
3544 | // { translateY: "100px"}, | ||
3545 | // { duration: 0 }); | ||
3546 | |||
3547 | // $('ul.staggered-list.vertical li').each(function() { | ||
3548 | // $(this).velocity( | ||
3549 | // { opacity: "1", translateY: "0"}, | ||
3550 | // { duration: 800, delay: time, easing: [60, 25] }); | ||
3551 | // time += 120; | ||
3552 | // }); | ||
3553 | |||
3554 | // // Fade in and Scale | ||
3555 | // $('.fade-in.scale').velocity( | ||
3556 | // { scaleX: .4, scaleY: .4, translateX: -600}, | ||
3557 | // { duration: 0}); | ||
3558 | // $('.fade-in').each(function() { | ||
3559 | // $(this).velocity( | ||
3560 | // { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0}, | ||
3561 | // { duration: 800, easing: [60, 10] }); | ||
3562 | // }); | ||
3563 | }); | ||
3564 | }( jQuery )); | ||
3565 | ;(function($) { | ||
3566 | |||
3567 | // Input: Array of JSON objects {selector, offset, callback} | ||
3568 | |||
3569 | Materialize.scrollFire = function(options) { | ||
3570 | |||
3571 | var didScroll = false; | ||
3572 | |||
3573 | window.addEventListener("scroll", function() { | ||
3574 | didScroll = true; | ||
3575 | }); | ||
3576 | |||
3577 | // Rate limit to 100ms | ||
3578 | setInterval(function() { | ||
3579 | if(didScroll) { | ||
3580 | didScroll = false; | ||
3581 | |||
3582 | var windowScroll = window.pageYOffset + window.innerHeight; | ||
3583 | |||
3584 | for (var i = 0 ; i < options.length; i++) { | ||
3585 | // Get options from each line | ||
3586 | var value = options[i]; | ||
3587 | var selector = value.selector, | ||
3588 | offset = value.offset, | ||
3589 | callback = value.callback; | ||
3590 | |||
3591 | var currentElement = document.querySelector(selector); | ||
3592 | if ( currentElement !== null) { | ||
3593 | var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset; | ||
3594 | |||
3595 | if (windowScroll > (elementOffset + offset)) { | ||
3596 | if (value.done !== true) { | ||
3597 | var callbackFunc = new Function(callback); | ||
3598 | callbackFunc(); | ||
3599 | value.done = true; | ||
3600 | } | ||
3601 | } | ||
3602 | } | ||
3603 | } | ||
3604 | } | ||
3605 | }, 100); | ||
3606 | }; | ||
3607 | |||
3608 | })(jQuery);;/*! | ||
3609 | * pickadate.js v3.5.0, 2014/04/13 | ||
3610 | * By Amsul, http://amsul.ca | ||
3611 | * Hosted on http://amsul.github.io/pickadate.js | ||
3612 | * Licensed under MIT | ||
3613 | */ | ||
3614 | |||
3615 | (function ( factory ) { | ||
3616 | |||
3617 | // AMD. | ||
3618 | if ( typeof define == 'function' && define.amd ) | ||
3619 | define( 'picker', ['jquery'], factory ) | ||
3620 | |||
3621 | // Node.js/browserify. | ||
3622 | else if ( typeof exports == 'object' ) | ||
3623 | module.exports = factory( require('jquery') ) | ||
3624 | |||
3625 | // Browser globals. | ||
3626 | else this.Picker = factory( jQuery ) | ||
3627 | |||
3628 | }(function( $ ) { | ||
3629 | |||
3630 | var $window = $( window ) | ||
3631 | var $document = $( document ) | ||
3632 | var $html = $( document.documentElement ) | ||
3633 | |||
3634 | |||
3635 | /** | ||
3636 | * The picker constructor that creates a blank picker. | ||
3637 | */ | ||
3638 | function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) { | ||
3639 | |||
3640 | // If there’s no element, return the picker constructor. | ||
3641 | if ( !ELEMENT ) return PickerConstructor | ||
3642 | |||
3643 | |||
3644 | var | ||
3645 | IS_DEFAULT_THEME = false, | ||
3646 | |||
3647 | |||
3648 | // The state of the picker. | ||
3649 | STATE = { | ||
3650 | id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) ) | ||
3651 | }, | ||
3652 | |||
3653 | |||
3654 | // Merge the defaults and options passed. | ||
3655 | SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {}, | ||
3656 | |||
3657 | |||
3658 | // Merge the default classes with the settings classes. | ||
3659 | CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ), | ||
3660 | |||
3661 | |||
3662 | // The element node wrapper into a jQuery object. | ||
3663 | $ELEMENT = $( ELEMENT ), | ||
3664 | |||
3665 | |||
3666 | // Pseudo picker constructor. | ||
3667 | PickerInstance = function() { | ||
3668 | return this.start() | ||
3669 | }, | ||
3670 | |||
3671 | |||
3672 | // The picker prototype. | ||
3673 | P = PickerInstance.prototype = { | ||
3674 | |||
3675 | constructor: PickerInstance, | ||
3676 | |||
3677 | $node: $ELEMENT, | ||
3678 | |||
3679 | |||
3680 | /** | ||
3681 | * Initialize everything | ||
3682 | */ | ||
3683 | start: function() { | ||
3684 | |||
3685 | // If it’s already started, do nothing. | ||
3686 | if ( STATE && STATE.start ) return P | ||
3687 | |||
3688 | |||
3689 | // Update the picker states. | ||
3690 | STATE.methods = {} | ||
3691 | STATE.start = true | ||
3692 | STATE.open = false | ||
3693 | STATE.type = ELEMENT.type | ||
3694 | |||
3695 | |||
3696 | // Confirm focus state, convert into text input to remove UA stylings, | ||
3697 | // and set as readonly to prevent keyboard popup. | ||
3698 | ELEMENT.autofocus = ELEMENT == getActiveElement() | ||
3699 | ELEMENT.readOnly = !SETTINGS.editable | ||
3700 | ELEMENT.id = ELEMENT.id || STATE.id | ||
3701 | if ( ELEMENT.type != 'text' ) { | ||
3702 | ELEMENT.type = 'text' | ||
3703 | } | ||
3704 | |||
3705 | |||
3706 | // Create a new picker component with the settings. | ||
3707 | P.component = new COMPONENT(P, SETTINGS) | ||
3708 | |||
3709 | |||
3710 | // Create the picker root with a holder and then prepare it. | ||
3711 | P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') ) | ||
3712 | prepareElementRoot() | ||
3713 | |||
3714 | |||
3715 | // If there’s a format for the hidden input element, create the element. | ||
3716 | if ( SETTINGS.formatSubmit ) { | ||
3717 | prepareElementHidden() | ||
3718 | } | ||
3719 | |||
3720 | |||
3721 | // Prepare the input element. | ||
3722 | prepareElement() | ||
3723 | |||
3724 | |||
3725 | // Insert the root as specified in the settings. | ||
3726 | if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root ) | ||
3727 | else $ELEMENT.after( P.$root ) | ||
3728 | |||
3729 | |||
3730 | // Bind the default component and settings events. | ||
3731 | P.on({ | ||
3732 | start: P.component.onStart, | ||
3733 | render: P.component.onRender, | ||
3734 | stop: P.component.onStop, | ||
3735 | open: P.component.onOpen, | ||
3736 | close: P.component.onClose, | ||
3737 | set: P.component.onSet | ||
3738 | }).on({ | ||
3739 | start: SETTINGS.onStart, | ||
3740 | render: SETTINGS.onRender, | ||
3741 | stop: SETTINGS.onStop, | ||
3742 | open: SETTINGS.onOpen, | ||
3743 | close: SETTINGS.onClose, | ||
3744 | set: SETTINGS.onSet | ||
3745 | }) | ||
3746 | |||
3747 | |||
3748 | // Once we’re all set, check the theme in use. | ||
3749 | IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] ) | ||
3750 | |||
3751 | |||
3752 | // If the element has autofocus, open the picker. | ||
3753 | if ( ELEMENT.autofocus ) { | ||
3754 | P.open() | ||
3755 | } | ||
3756 | |||
3757 | |||
3758 | // Trigger queued the “start” and “render” events. | ||
3759 | return P.trigger( 'start' ).trigger( 'render' ) | ||
3760 | }, //start | ||
3761 | |||
3762 | |||
3763 | /** | ||
3764 | * Render a new picker | ||
3765 | */ | ||
3766 | render: function( entireComponent ) { | ||
3767 | |||
3768 | // Insert a new component holder in the root or box. | ||
3769 | if ( entireComponent ) P.$root.html( createWrappedComponent() ) | ||
3770 | else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) ) | ||
3771 | |||
3772 | // Trigger the queued “render” events. | ||
3773 | return P.trigger( 'render' ) | ||
3774 | }, //render | ||
3775 | |||
3776 | |||
3777 | /** | ||
3778 | * Destroy everything | ||
3779 | */ | ||
3780 | stop: function() { | ||
3781 | |||
3782 | // If it’s already stopped, do nothing. | ||
3783 | if ( !STATE.start ) return P | ||
3784 | |||
3785 | // Then close the picker. | ||
3786 | P.close() | ||
3787 | |||
3788 | // Remove the hidden field. | ||
3789 | if ( P._hidden ) { | ||
3790 | P._hidden.parentNode.removeChild( P._hidden ) | ||
3791 | } | ||
3792 | |||
3793 | // Remove the root. | ||
3794 | P.$root.remove() | ||
3795 | |||
3796 | // Remove the input class, remove the stored data, and unbind | ||
3797 | // the events (after a tick for IE - see `P.close`). | ||
3798 | $ELEMENT.removeClass( CLASSES.input ).removeData( NAME ) | ||
3799 | setTimeout( function() { | ||
3800 | $ELEMENT.off( '.' + STATE.id ) | ||
3801 | }, 0) | ||
3802 | |||
3803 | // Restore the element state | ||
3804 | ELEMENT.type = STATE.type | ||
3805 | ELEMENT.readOnly = false | ||
3806 | |||
3807 | // Trigger the queued “stop” events. | ||
3808 | P.trigger( 'stop' ) | ||
3809 | |||
3810 | // Reset the picker states. | ||
3811 | STATE.methods = {} | ||
3812 | STATE.start = false | ||
3813 | |||
3814 | return P | ||
3815 | }, //stop | ||
3816 | |||
3817 | |||
3818 | /** | ||
3819 | * Open up the picker | ||
3820 | */ | ||
3821 | open: function( dontGiveFocus ) { | ||
3822 | |||
3823 | // If it’s already open, do nothing. | ||
3824 | if ( STATE.open ) return P | ||
3825 | |||
3826 | // Add the “active” class. | ||
3827 | $ELEMENT.addClass( CLASSES.active ) | ||
3828 | aria( ELEMENT, 'expanded', true ) | ||
3829 | |||
3830 | // * A Firefox bug, when `html` has `overflow:hidden`, results in | ||
3831 | // killing transitions :(. So add the “opened” state on the next tick. | ||
3832 | // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 | ||
3833 | setTimeout( function() { | ||
3834 | |||
3835 | // Add the “opened” class to the picker root. | ||
3836 | P.$root.addClass( CLASSES.opened ) | ||
3837 | aria( P.$root[0], 'hidden', false ) | ||
3838 | |||
3839 | }, 0 ) | ||
3840 | |||
3841 | // If we have to give focus, bind the element and doc events. | ||
3842 | if ( dontGiveFocus !== false ) { | ||
3843 | |||
3844 | // Set it as open. | ||
3845 | STATE.open = true | ||
3846 | |||
3847 | // Prevent the page from scrolling. | ||
3848 | if ( IS_DEFAULT_THEME ) { | ||
3849 | $html. | ||
3850 | css( 'overflow', 'hidden' ). | ||
3851 | css( 'padding-right', '+=' + getScrollbarWidth() ) | ||
3852 | } | ||
3853 | |||
3854 | // Pass focus to the root element’s jQuery object. | ||
3855 | // * Workaround for iOS8 to bring the picker’s root into view. | ||
3856 | P.$root[0].focus() | ||
3857 | |||
3858 | // Bind the document events. | ||
3859 | $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) { | ||
3860 | |||
3861 | var target = event.target | ||
3862 | |||
3863 | // If the target of the event is not the element, close the picker picker. | ||
3864 | // * Don’t worry about clicks or focusins on the root because those don’t bubble up. | ||
3865 | // Also, for Firefox, a click on an `option` element bubbles up directly | ||
3866 | // to the doc. So make sure the target wasn't the doc. | ||
3867 | // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling, | ||
3868 | // which causes the picker to unexpectedly close when right-clicking it. So make | ||
3869 | // sure the event wasn’t a right-click. | ||
3870 | if ( target != ELEMENT && target != document && event.which != 3 ) { | ||
3871 | |||
3872 | // If the target was the holder that covers the screen, | ||
3873 | // keep the element focused to maintain tabindex. | ||
3874 | P.close( target === P.$root.children()[0] ) | ||
3875 | } | ||
3876 | |||
3877 | }).on( 'keydown.' + STATE.id, function( event ) { | ||
3878 | |||
3879 | var | ||
3880 | // Get the keycode. | ||
3881 | keycode = event.keyCode, | ||
3882 | |||
3883 | // Translate that to a selection change. | ||
3884 | keycodeToMove = P.component.key[ keycode ], | ||
3885 | |||
3886 | // Grab the target. | ||
3887 | target = event.target | ||
3888 | |||
3889 | |||
3890 | // On escape, close the picker and give focus. | ||
3891 | if ( keycode == 27 ) { | ||
3892 | P.close( true ) | ||
3893 | } | ||
3894 | |||
3895 | |||
3896 | // Check if there is a key movement or “enter” keypress on the element. | ||
3897 | else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) { | ||
3898 | |||
3899 | // Prevent the default action to stop page movement. | ||
3900 | event.preventDefault() | ||
3901 | |||
3902 | // Trigger the key movement action. | ||
3903 | if ( keycodeToMove ) { | ||
3904 | PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] ) | ||
3905 | } | ||
3906 | |||
3907 | // On “enter”, if the highlighted item isn’t disabled, set the value and close. | ||
3908 | else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) { | ||
3909 | P.set( 'select', P.component.item.highlight ).close() | ||
3910 | } | ||
3911 | } | ||
3912 | |||
3913 | |||
3914 | // If the target is within the root and “enter” is pressed, | ||
3915 | // prevent the default action and trigger a click on the target instead. | ||
3916 | else if ( $.contains( P.$root[0], target ) && keycode == 13 ) { | ||
3917 | event.preventDefault() | ||
3918 | target.click() | ||
3919 | } | ||
3920 | }) | ||
3921 | } | ||
3922 | |||
3923 | // Trigger the queued “open” events. | ||
3924 | return P.trigger( 'open' ) | ||
3925 | }, //open | ||
3926 | |||
3927 | |||
3928 | /** | ||
3929 | * Close the picker | ||
3930 | */ | ||
3931 | close: function( giveFocus ) { | ||
3932 | |||
3933 | // If we need to give focus, do it before changing states. | ||
3934 | if ( giveFocus ) { | ||
3935 | // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :| | ||
3936 | // The focus is triggered *after* the close has completed - causing it | ||
3937 | // to open again. So unbind and rebind the event at the next tick. | ||
3938 | P.$root.off( 'focus.toOpen' )[0].focus() | ||
3939 | setTimeout( function() { | ||
3940 | P.$root.on( 'focus.toOpen', handleFocusToOpenEvent ) | ||
3941 | }, 0 ) | ||
3942 | } | ||
3943 | |||
3944 | // Remove the “active” class. | ||
3945 | $ELEMENT.removeClass( CLASSES.active ) | ||
3946 | aria( ELEMENT, 'expanded', false ) | ||
3947 | |||
3948 | // * A Firefox bug, when `html` has `overflow:hidden`, results in | ||
3949 | // killing transitions :(. So remove the “opened” state on the next tick. | ||
3950 | // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 | ||
3951 | setTimeout( function() { | ||
3952 | |||
3953 | // Remove the “opened” and “focused” class from the picker root. | ||
3954 | P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused ) | ||
3955 | aria( P.$root[0], 'hidden', true ) | ||
3956 | |||
3957 | }, 0 ) | ||
3958 | |||
3959 | // If it’s already closed, do nothing more. | ||
3960 | if ( !STATE.open ) return P | ||
3961 | |||
3962 | // Set it as closed. | ||
3963 | STATE.open = false | ||
3964 | |||
3965 | // Allow the page to scroll. | ||
3966 | if ( IS_DEFAULT_THEME ) { | ||
3967 | $html. | ||
3968 | css( 'overflow', '' ). | ||
3969 | css( 'padding-right', '-=' + getScrollbarWidth() ) | ||
3970 | } | ||
3971 | |||
3972 | // Unbind the document events. | ||
3973 | $document.off( '.' + STATE.id ) | ||
3974 | |||
3975 | // Trigger the queued “close” events. | ||
3976 | return P.trigger( 'close' ) | ||
3977 | }, //close | ||
3978 | |||
3979 | |||
3980 | /** | ||
3981 | * Clear the values | ||
3982 | */ | ||
3983 | clear: function( options ) { | ||
3984 | return P.set( 'clear', null, options ) | ||
3985 | }, //clear | ||
3986 | |||
3987 | |||
3988 | /** | ||
3989 | * Set something | ||
3990 | */ | ||
3991 | set: function( thing, value, options ) { | ||
3992 | |||
3993 | var thingItem, thingValue, | ||
3994 | thingIsObject = $.isPlainObject( thing ), | ||
3995 | thingObject = thingIsObject ? thing : {} | ||
3996 | |||
3997 | // Make sure we have usable options. | ||
3998 | options = thingIsObject && $.isPlainObject( value ) ? value : options || {} | ||
3999 | |||
4000 | if ( thing ) { | ||
4001 | |||
4002 | // If the thing isn’t an object, make it one. | ||
4003 | if ( !thingIsObject ) { | ||
4004 | thingObject[ thing ] = value | ||
4005 | } | ||
4006 | |||
4007 | // Go through the things of items to set. | ||
4008 | for ( thingItem in thingObject ) { | ||
4009 | |||
4010 | // Grab the value of the thing. | ||
4011 | thingValue = thingObject[ thingItem ] | ||
4012 | |||
4013 | // First, if the item exists and there’s a value, set it. | ||
4014 | if ( thingItem in P.component.item ) { | ||
4015 | if ( thingValue === undefined ) thingValue = null | ||
4016 | P.component.set( thingItem, thingValue, options ) | ||
4017 | } | ||
4018 | |||
4019 | // Then, check to update the element value and broadcast a change. | ||
4020 | if ( thingItem == 'select' || thingItem == 'clear' ) { | ||
4021 | $ELEMENT. | ||
4022 | val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ). | ||
4023 | trigger( 'change' ) | ||
4024 | } | ||
4025 | } | ||
4026 | |||
4027 | // Render a new picker. | ||
4028 | P.render() | ||
4029 | } | ||
4030 | |||
4031 | // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`. | ||
4032 | return options.muted ? P : P.trigger( 'set', thingObject ) | ||
4033 | }, //set | ||
4034 | |||
4035 | |||
4036 | /** | ||
4037 | * Get something | ||
4038 | */ | ||
4039 | get: function( thing, format ) { | ||
4040 | |||
4041 | // Make sure there’s something to get. | ||
4042 | thing = thing || 'value' | ||
4043 | |||
4044 | // If a picker state exists, return that. | ||
4045 | if ( STATE[ thing ] != null ) { | ||
4046 | return STATE[ thing ] | ||
4047 | } | ||
4048 | |||
4049 | // Return the submission value, if that. | ||
4050 | if ( thing == 'valueSubmit' ) { | ||
4051 | if ( P._hidden ) { | ||
4052 | return P._hidden.value | ||
4053 | } | ||
4054 | thing = 'value' | ||
4055 | } | ||
4056 | |||
4057 | // Return the value, if that. | ||
4058 | if ( thing == 'value' ) { | ||
4059 | return ELEMENT.value | ||
4060 | } | ||
4061 | |||
4062 | // Check if a component item exists, return that. | ||
4063 | if ( thing in P.component.item ) { | ||
4064 | if ( typeof format == 'string' ) { | ||
4065 | var thingValue = P.component.get( thing ) | ||
4066 | return thingValue ? | ||
4067 | PickerConstructor._.trigger( | ||
4068 | P.component.formats.toString, | ||
4069 | P.component, | ||
4070 | [ format, thingValue ] | ||
4071 | ) : '' | ||
4072 | } | ||
4073 | return P.component.get( thing ) | ||
4074 | } | ||
4075 | }, //get | ||
4076 | |||
4077 | |||
4078 | |||
4079 | /** | ||
4080 | * Bind events on the things. | ||
4081 | */ | ||
4082 | on: function( thing, method, internal ) { | ||
4083 | |||
4084 | var thingName, thingMethod, | ||
4085 | thingIsObject = $.isPlainObject( thing ), | ||
4086 | thingObject = thingIsObject ? thing : {} | ||
4087 | |||
4088 | if ( thing ) { | ||
4089 | |||
4090 | // If the thing isn’t an object, make it one. | ||
4091 | if ( !thingIsObject ) { | ||
4092 | thingObject[ thing ] = method | ||
4093 | } | ||
4094 | |||
4095 | // Go through the things to bind to. | ||
4096 | for ( thingName in thingObject ) { | ||
4097 | |||
4098 | // Grab the method of the thing. | ||
4099 | thingMethod = thingObject[ thingName ] | ||
4100 | |||
4101 | // If it was an internal binding, prefix it. | ||
4102 | if ( internal ) { | ||
4103 | thingName = '_' + thingName | ||
4104 | } | ||
4105 | |||
4106 | // Make sure the thing methods collection exists. | ||
4107 | STATE.methods[ thingName ] = STATE.methods[ thingName ] || [] | ||
4108 | |||
4109 | // Add the method to the relative method collection. | ||
4110 | STATE.methods[ thingName ].push( thingMethod ) | ||
4111 | } | ||
4112 | } | ||
4113 | |||
4114 | return P | ||
4115 | }, //on | ||
4116 | |||
4117 | |||
4118 | |||
4119 | /** | ||
4120 | * Unbind events on the things. | ||
4121 | */ | ||
4122 | off: function() { | ||
4123 | var i, thingName, | ||
4124 | names = arguments; | ||
4125 | for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) { | ||
4126 | thingName = names[i] | ||
4127 | if ( thingName in STATE.methods ) { | ||
4128 | delete STATE.methods[thingName] | ||
4129 | } | ||
4130 | } | ||
4131 | return P | ||
4132 | }, | ||
4133 | |||
4134 | |||
4135 | /** | ||
4136 | * Fire off method events. | ||
4137 | */ | ||
4138 | trigger: function( name, data ) { | ||
4139 | var _trigger = function( name ) { | ||
4140 | var methodList = STATE.methods[ name ] | ||
4141 | if ( methodList ) { | ||
4142 | methodList.map( function( method ) { | ||
4143 | PickerConstructor._.trigger( method, P, [ data ] ) | ||
4144 | }) | ||
4145 | } | ||
4146 | } | ||
4147 | _trigger( '_' + name ) | ||
4148 | _trigger( name ) | ||
4149 | return P | ||
4150 | } //trigger | ||
4151 | } //PickerInstance.prototype | ||
4152 | |||
4153 | |||
4154 | /** | ||
4155 | * Wrap the picker holder components together. | ||
4156 | */ | ||
4157 | function createWrappedComponent() { | ||
4158 | |||
4159 | // Create a picker wrapper holder | ||
4160 | return PickerConstructor._.node( 'div', | ||
4161 | |||
4162 | // Create a picker wrapper node | ||
4163 | PickerConstructor._.node( 'div', | ||
4164 | |||
4165 | // Create a picker frame | ||
4166 | PickerConstructor._.node( 'div', | ||
4167 | |||
4168 | // Create a picker box node | ||
4169 | PickerConstructor._.node( 'div', | ||
4170 | |||
4171 | // Create the components nodes. | ||
4172 | P.component.nodes( STATE.open ), | ||
4173 | |||
4174 | // The picker box class | ||
4175 | CLASSES.box | ||
4176 | ), | ||
4177 | |||
4178 | // Picker wrap class | ||
4179 | CLASSES.wrap | ||
4180 | ), | ||
4181 | |||
4182 | // Picker frame class | ||
4183 | CLASSES.frame | ||
4184 | ), | ||
4185 | |||
4186 | // Picker holder class | ||
4187 | CLASSES.holder | ||
4188 | ) //endreturn | ||
4189 | } //createWrappedComponent | ||
4190 | |||
4191 | |||
4192 | |||
4193 | /** | ||
4194 | * Prepare the input element with all bindings. | ||
4195 | */ | ||
4196 | function prepareElement() { | ||
4197 | |||
4198 | $ELEMENT. | ||
4199 | |||
4200 | // Store the picker data by component name. | ||
4201 | data(NAME, P). | ||
4202 | |||
4203 | // Add the “input” class name. | ||
4204 | addClass(CLASSES.input). | ||
4205 | |||
4206 | // Remove the tabindex. | ||
4207 | attr('tabindex', -1). | ||
4208 | |||
4209 | // If there’s a `data-value`, update the value of the element. | ||
4210 | val( $ELEMENT.data('value') ? | ||
4211 | P.get('select', SETTINGS.format) : | ||
4212 | ELEMENT.value | ||
4213 | ) | ||
4214 | |||
4215 | |||
4216 | // Only bind keydown events if the element isn’t editable. | ||
4217 | if ( !SETTINGS.editable ) { | ||
4218 | |||
4219 | $ELEMENT. | ||
4220 | |||
4221 | // On focus/click, focus onto the root to open it up. | ||
4222 | on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) { | ||
4223 | event.preventDefault() | ||
4224 | P.$root[0].focus() | ||
4225 | }). | ||
4226 | |||
4227 | // Handle keyboard event based on the picker being opened or not. | ||
4228 | on( 'keydown.' + STATE.id, handleKeydownEvent ) | ||
4229 | } | ||
4230 | |||
4231 | |||
4232 | // Update the aria attributes. | ||
4233 | aria(ELEMENT, { | ||
4234 | haspopup: true, | ||
4235 | expanded: false, | ||
4236 | readonly: false, | ||
4237 | owns: ELEMENT.id + '_root' | ||
4238 | }) | ||
4239 | } | ||
4240 | |||
4241 | |||
4242 | /** | ||
4243 | * Prepare the root picker element with all bindings. | ||
4244 | */ | ||
4245 | function prepareElementRoot() { | ||
4246 | |||
4247 | P.$root. | ||
4248 | |||
4249 | on({ | ||
4250 | |||
4251 | // For iOS8. | ||
4252 | keydown: handleKeydownEvent, | ||
4253 | |||
4254 | // When something within the root is focused, stop from bubbling | ||
4255 | // to the doc and remove the “focused” state from the root. | ||
4256 | focusin: function( event ) { | ||
4257 | P.$root.removeClass( CLASSES.focused ) | ||
4258 | event.stopPropagation() | ||
4259 | }, | ||
4260 | |||
4261 | // When something within the root holder is clicked, stop it | ||
4262 | // from bubbling to the doc. | ||
4263 | 'mousedown click': function( event ) { | ||
4264 | |||
4265 | var target = event.target | ||
4266 | |||
4267 | // Make sure the target isn’t the root holder so it can bubble up. | ||
4268 | if ( target != P.$root.children()[ 0 ] ) { | ||
4269 | |||
4270 | event.stopPropagation() | ||
4271 | |||
4272 | // * For mousedown events, cancel the default action in order to | ||
4273 | // prevent cases where focus is shifted onto external elements | ||
4274 | // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120). | ||
4275 | // Also, for Firefox, don’t prevent action on the `option` element. | ||
4276 | if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) { | ||
4277 | |||
4278 | event.preventDefault() | ||
4279 | |||
4280 | // Re-focus onto the root so that users can click away | ||
4281 | // from elements focused within the picker. | ||
4282 | P.$root[0].focus() | ||
4283 | } | ||
4284 | } | ||
4285 | } | ||
4286 | }). | ||
4287 | |||
4288 | // Add/remove the “target” class on focus and blur. | ||
4289 | on({ | ||
4290 | focus: function() { | ||
4291 | $ELEMENT.addClass( CLASSES.target ) | ||
4292 | }, | ||
4293 | blur: function() { | ||
4294 | $ELEMENT.removeClass( CLASSES.target ) | ||
4295 | } | ||
4296 | }). | ||
4297 | |||
4298 | // Open the picker and adjust the root “focused” state | ||
4299 | on( 'focus.toOpen', handleFocusToOpenEvent ). | ||
4300 | |||
4301 | // If there’s a click on an actionable element, carry out the actions. | ||
4302 | on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() { | ||
4303 | |||
4304 | var $target = $( this ), | ||
4305 | targetData = $target.data(), | ||
4306 | targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ), | ||
4307 | |||
4308 | // * For IE, non-focusable elements can be active elements as well | ||
4309 | // (http://stackoverflow.com/a/2684561). | ||
4310 | activeElement = getActiveElement() | ||
4311 | activeElement = activeElement && ( activeElement.type || activeElement.href ) | ||
4312 | |||
4313 | // If it’s disabled or nothing inside is actively focused, re-focus the element. | ||
4314 | if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) { | ||
4315 | P.$root[0].focus() | ||
4316 | } | ||
4317 | |||
4318 | // If something is superficially changed, update the `highlight` based on the `nav`. | ||
4319 | if ( !targetDisabled && targetData.nav ) { | ||
4320 | P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } ) | ||
4321 | } | ||
4322 | |||
4323 | // If something is picked, set `select` then close with focus. | ||
4324 | else if ( !targetDisabled && 'pick' in targetData ) { | ||
4325 | P.set( 'select', targetData.pick ) | ||
4326 | } | ||
4327 | |||
4328 | // If a “clear” button is pressed, empty the values and close with focus. | ||
4329 | else if ( targetData.clear ) { | ||
4330 | P.clear().close( true ) | ||
4331 | } | ||
4332 | |||
4333 | else if ( targetData.close ) { | ||
4334 | P.close( true ) | ||
4335 | } | ||
4336 | |||
4337 | }) //P.$root | ||
4338 | |||
4339 | aria( P.$root[0], 'hidden', true ) | ||
4340 | } | ||
4341 | |||
4342 | |||
4343 | /** | ||
4344 | * Prepare the hidden input element along with all bindings. | ||
4345 | */ | ||
4346 | function prepareElementHidden() { | ||
4347 | |||
4348 | var name | ||
4349 | |||
4350 | if ( SETTINGS.hiddenName === true ) { | ||
4351 | name = ELEMENT.name | ||
4352 | ELEMENT.name = '' | ||
4353 | } | ||
4354 | else { | ||
4355 | name = [ | ||
4356 | typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '', | ||
4357 | typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit' | ||
4358 | ] | ||
4359 | name = name[0] + ELEMENT.name + name[1] | ||
4360 | } | ||
4361 | |||
4362 | P._hidden = $( | ||
4363 | '<input ' + | ||
4364 | 'type=hidden ' + | ||
4365 | |||
4366 | // Create the name using the original input’s with a prefix and suffix. | ||
4367 | 'name="' + name + '"' + | ||
4368 | |||
4369 | // If the element has a value, set the hidden value as well. | ||
4370 | ( | ||
4371 | $ELEMENT.data('value') || ELEMENT.value ? | ||
4372 | ' value="' + P.get('select', SETTINGS.formatSubmit) + '"' : | ||
4373 | '' | ||
4374 | ) + | ||
4375 | '>' | ||
4376 | )[0] | ||
4377 | |||
4378 | $ELEMENT. | ||
4379 | |||
4380 | // If the value changes, update the hidden input with the correct format. | ||
4381 | on('change.' + STATE.id, function() { | ||
4382 | P._hidden.value = ELEMENT.value ? | ||
4383 | P.get('select', SETTINGS.formatSubmit) : | ||
4384 | '' | ||
4385 | }) | ||
4386 | |||
4387 | |||
4388 | // Insert the hidden input as specified in the settings. | ||
4389 | if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden ) | ||
4390 | else $ELEMENT.after( P._hidden ) | ||
4391 | } | ||
4392 | |||
4393 | |||
4394 | // For iOS8. | ||
4395 | function handleKeydownEvent( event ) { | ||
4396 | |||
4397 | var keycode = event.keyCode, | ||
4398 | |||
4399 | // Check if one of the delete keys was pressed. | ||
4400 | isKeycodeDelete = /^(8|46)$/.test(keycode) | ||
4401 | |||
4402 | // For some reason IE clears the input value on “escape”. | ||
4403 | if ( keycode == 27 ) { | ||
4404 | P.close() | ||
4405 | return false | ||
4406 | } | ||
4407 | |||
4408 | // Check if `space` or `delete` was pressed or the picker is closed with a key movement. | ||
4409 | if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) { | ||
4410 | |||
4411 | // Prevent it from moving the page and bubbling to doc. | ||
4412 | event.preventDefault() | ||
4413 | event.stopPropagation() | ||
4414 | |||
4415 | // If `delete` was pressed, clear the values and close the picker. | ||
4416 | // Otherwise open the picker. | ||
4417 | if ( isKeycodeDelete ) { P.clear().close() } | ||
4418 | else { P.open() } | ||
4419 | } | ||
4420 | } | ||
4421 | |||
4422 | |||
4423 | // Separated for IE | ||
4424 | function handleFocusToOpenEvent( event ) { | ||
4425 | |||
4426 | // Stop the event from propagating to the doc. | ||
4427 | event.stopPropagation() | ||
4428 | |||
4429 | // If it’s a focus event, add the “focused” class to the root. | ||
4430 | if ( event.type == 'focus' ) { | ||
4431 | P.$root.addClass( CLASSES.focused ) | ||
4432 | } | ||
4433 | |||
4434 | // And then finally open the picker. | ||
4435 | P.open() | ||
4436 | } | ||
4437 | |||
4438 | |||
4439 | // Return a new picker instance. | ||
4440 | return new PickerInstance() | ||
4441 | } //PickerConstructor | ||
4442 | |||
4443 | |||
4444 | |||
4445 | /** | ||
4446 | * The default classes and prefix to use for the HTML classes. | ||
4447 | */ | ||
4448 | PickerConstructor.klasses = function( prefix ) { | ||
4449 | prefix = prefix || 'picker' | ||
4450 | return { | ||
4451 | |||
4452 | picker: prefix, | ||
4453 | opened: prefix + '--opened', | ||
4454 | focused: prefix + '--focused', | ||
4455 | |||
4456 | input: prefix + '__input', | ||
4457 | active: prefix + '__input--active', | ||
4458 | target: prefix + '__input--target', | ||
4459 | |||
4460 | holder: prefix + '__holder', | ||
4461 | |||
4462 | frame: prefix + '__frame', | ||
4463 | wrap: prefix + '__wrap', | ||
4464 | |||
4465 | box: prefix + '__box' | ||
4466 | } | ||
4467 | } //PickerConstructor.klasses | ||
4468 | |||
4469 | |||
4470 | |||
4471 | /** | ||
4472 | * Check if the default theme is being used. | ||
4473 | */ | ||
4474 | function isUsingDefaultTheme( element ) { | ||
4475 | |||
4476 | var theme, | ||
4477 | prop = 'position' | ||
4478 | |||
4479 | // For IE. | ||
4480 | if ( element.currentStyle ) { | ||
4481 | theme = element.currentStyle[prop] | ||
4482 | } | ||
4483 | |||
4484 | // For normal browsers. | ||
4485 | else if ( window.getComputedStyle ) { | ||
4486 | theme = getComputedStyle( element )[prop] | ||
4487 | } | ||
4488 | |||
4489 | return theme == 'fixed' | ||
4490 | } | ||
4491 | |||
4492 | |||
4493 | |||
4494 | /** | ||
4495 | * Get the width of the browser’s scrollbar. | ||
4496 | * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js | ||
4497 | */ | ||
4498 | function getScrollbarWidth() { | ||
4499 | |||
4500 | if ( $html.height() <= $window.height() ) { | ||
4501 | return 0 | ||
4502 | } | ||
4503 | |||
4504 | var $outer = $( '<div style="visibility:hidden;width:100px" />' ). | ||
4505 | appendTo( 'body' ) | ||
4506 | |||
4507 | // Get the width without scrollbars. | ||
4508 | var widthWithoutScroll = $outer[0].offsetWidth | ||
4509 | |||
4510 | // Force adding scrollbars. | ||
4511 | $outer.css( 'overflow', 'scroll' ) | ||
4512 | |||
4513 | // Add the inner div. | ||
4514 | var $inner = $( '<div style="width:100%" />' ).appendTo( $outer ) | ||
4515 | |||
4516 | // Get the width with scrollbars. | ||
4517 | var widthWithScroll = $inner[0].offsetWidth | ||
4518 | |||
4519 | // Remove the divs. | ||
4520 | $outer.remove() | ||
4521 | |||
4522 | // Return the difference between the widths. | ||
4523 | return widthWithoutScroll - widthWithScroll | ||
4524 | } | ||
4525 | |||
4526 | |||
4527 | |||
4528 | /** | ||
4529 | * PickerConstructor helper methods. | ||
4530 | */ | ||
4531 | PickerConstructor._ = { | ||
4532 | |||
4533 | /** | ||
4534 | * Create a group of nodes. Expects: | ||
4535 | * ` | ||
4536 | { | ||
4537 | min: {Integer}, | ||
4538 | max: {Integer}, | ||
4539 | i: {Integer}, | ||
4540 | node: {String}, | ||
4541 | item: {Function} | ||
4542 | } | ||
4543 | * ` | ||
4544 | */ | ||
4545 | group: function( groupObject ) { | ||
4546 | |||
4547 | var | ||
4548 | // Scope for the looped object | ||
4549 | loopObjectScope, | ||
4550 | |||
4551 | // Create the nodes list | ||
4552 | nodesList = '', | ||
4553 | |||
4554 | // The counter starts from the `min` | ||
4555 | counter = PickerConstructor._.trigger( groupObject.min, groupObject ) | ||
4556 | |||
4557 | |||
4558 | // Loop from the `min` to `max`, incrementing by `i` | ||
4559 | for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) { | ||
4560 | |||
4561 | // Trigger the `item` function within scope of the object | ||
4562 | loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] ) | ||
4563 | |||
4564 | // Splice the subgroup and create nodes out of the sub nodes | ||
4565 | nodesList += PickerConstructor._.node( | ||
4566 | groupObject.node, | ||
4567 | loopObjectScope[ 0 ], // the node | ||
4568 | loopObjectScope[ 1 ], // the classes | ||
4569 | loopObjectScope[ 2 ] // the attributes | ||
4570 | ) | ||
4571 | } | ||
4572 | |||
4573 | // Return the list of nodes | ||
4574 | return nodesList | ||
4575 | }, //group | ||
4576 | |||
4577 | |||
4578 | /** | ||
4579 | * Create a dom node string | ||
4580 | */ | ||
4581 | node: function( wrapper, item, klass, attribute ) { | ||
4582 | |||
4583 | // If the item is false-y, just return an empty string | ||
4584 | if ( !item ) return '' | ||
4585 | |||
4586 | // If the item is an array, do a join | ||
4587 | item = $.isArray( item ) ? item.join( '' ) : item | ||
4588 | |||
4589 | // Check for the class | ||
4590 | klass = klass ? ' class="' + klass + '"' : '' | ||
4591 | |||
4592 | // Check for any attributes | ||
4593 | attribute = attribute ? ' ' + attribute : '' | ||
4594 | |||
4595 | // Return the wrapped item | ||
4596 | return '<' + wrapper + klass + attribute + '>' + item + '</' + wrapper + '>' | ||
4597 | }, //node | ||
4598 | |||
4599 | |||
4600 | /** | ||
4601 | * Lead numbers below 10 with a zero. | ||
4602 | */ | ||
4603 | lead: function( number ) { | ||
4604 | return ( number < 10 ? '0': '' ) + number | ||
4605 | }, | ||
4606 | |||
4607 | |||
4608 | /** | ||
4609 | * Trigger a function otherwise return the value. | ||
4610 | */ | ||
4611 | trigger: function( callback, scope, args ) { | ||
4612 | return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback | ||
4613 | }, | ||
4614 | |||
4615 | |||
4616 | /** | ||
4617 | * If the second character is a digit, length is 2 otherwise 1. | ||
4618 | */ | ||
4619 | digits: function( string ) { | ||
4620 | return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1 | ||
4621 | }, | ||
4622 | |||
4623 | |||
4624 | /** | ||
4625 | * Tell if something is a date object. | ||
4626 | */ | ||
4627 | isDate: function( value ) { | ||
4628 | return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() ) | ||
4629 | }, | ||
4630 | |||
4631 | |||
4632 | /** | ||
4633 | * Tell if something is an integer. | ||
4634 | */ | ||
4635 | isInteger: function( value ) { | ||
4636 | return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0 | ||
4637 | }, | ||
4638 | |||
4639 | |||
4640 | /** | ||
4641 | * Create ARIA attribute strings. | ||
4642 | */ | ||
4643 | ariaAttr: ariaAttr | ||
4644 | } //PickerConstructor._ | ||
4645 | |||
4646 | |||
4647 | |||
4648 | /** | ||
4649 | * Extend the picker with a component and defaults. | ||
4650 | */ | ||
4651 | PickerConstructor.extend = function( name, Component ) { | ||
4652 | |||
4653 | // Extend jQuery. | ||
4654 | $.fn[ name ] = function( options, action ) { | ||
4655 | |||
4656 | // Grab the component data. | ||
4657 | var componentData = this.data( name ) | ||
4658 | |||
4659 | // If the picker is requested, return the data object. | ||
4660 | if ( options == 'picker' ) { | ||
4661 | return componentData | ||
4662 | } | ||
4663 | |||
4664 | // If the component data exists and `options` is a string, carry out the action. | ||
4665 | if ( componentData && typeof options == 'string' ) { | ||
4666 | return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] ) | ||
4667 | } | ||
4668 | |||
4669 | // Otherwise go through each matched element and if the component | ||
4670 | // doesn’t exist, create a new picker using `this` element | ||
4671 | // and merging the defaults and options with a deep copy. | ||
4672 | return this.each( function() { | ||
4673 | var $this = $( this ) | ||
4674 | if ( !$this.data( name ) ) { | ||
4675 | new PickerConstructor( this, name, Component, options ) | ||
4676 | } | ||
4677 | }) | ||
4678 | } | ||
4679 | |||
4680 | // Set the defaults. | ||
4681 | $.fn[ name ].defaults = Component.defaults | ||
4682 | } //PickerConstructor.extend | ||
4683 | |||
4684 | |||
4685 | |||
4686 | function aria(element, attribute, value) { | ||
4687 | if ( $.isPlainObject(attribute) ) { | ||
4688 | for ( var key in attribute ) { | ||
4689 | ariaSet(element, key, attribute[key]) | ||
4690 | } | ||
4691 | } | ||
4692 | else { | ||
4693 | ariaSet(element, attribute, value) | ||
4694 | } | ||
4695 | } | ||
4696 | function ariaSet(element, attribute, value) { | ||
4697 | element.setAttribute( | ||
4698 | (attribute == 'role' ? '' : 'aria-') + attribute, | ||
4699 | value | ||
4700 | ) | ||
4701 | } | ||
4702 | function ariaAttr(attribute, data) { | ||
4703 | if ( !$.isPlainObject(attribute) ) { | ||
4704 | attribute = { attribute: data } | ||
4705 | } | ||
4706 | data = '' | ||
4707 | for ( var key in attribute ) { | ||
4708 | var attr = (key == 'role' ? '' : 'aria-') + key, | ||
4709 | attrVal = attribute[key] | ||
4710 | data += attrVal == null ? '' : attr + '="' + attribute[key] + '"' | ||
4711 | } | ||
4712 | return data | ||
4713 | } | ||
4714 | |||
4715 | // IE8 bug throws an error for activeElements within iframes. | ||
4716 | function getActiveElement() { | ||
4717 | try { | ||
4718 | return document.activeElement | ||
4719 | } catch ( err ) { } | ||
4720 | } | ||
4721 | |||
4722 | |||
4723 | |||
4724 | // Expose the picker constructor. | ||
4725 | return PickerConstructor | ||
4726 | |||
4727 | |||
4728 | })); | ||
4729 | |||
4730 | |||
4731 | ;/*! | ||
4732 | * Date picker for pickadate.js v3.5.0 | ||
4733 | * http://amsul.github.io/pickadate.js/date.htm | ||
4734 | */ | ||
4735 | |||
4736 | (function ( factory ) { | ||
4737 | |||
4738 | // AMD. | ||
4739 | if ( typeof define == 'function' && define.amd ) | ||
4740 | define( ['picker', 'jquery'], factory ) | ||
4741 | |||
4742 | // Node.js/browserify. | ||
4743 | else if ( typeof exports == 'object' ) | ||
4744 | module.exports = factory( require('./picker.js'), require('jquery') ) | ||
4745 | |||
4746 | // Browser globals. | ||
4747 | else factory( Picker, jQuery ) | ||
4748 | |||
4749 | }(function( Picker, $ ) { | ||
4750 | |||
4751 | |||
4752 | /** | ||
4753 | * Globals and constants | ||
4754 | */ | ||
4755 | var DAYS_IN_WEEK = 7, | ||
4756 | WEEKS_IN_CALENDAR = 6, | ||
4757 | _ = Picker._ | ||
4758 | |||
4759 | |||
4760 | |||
4761 | /** | ||
4762 | * The date picker constructor | ||
4763 | */ | ||
4764 | function DatePicker( picker, settings ) { | ||
4765 | |||
4766 | var calendar = this, | ||
4767 | element = picker.$node[ 0 ], | ||
4768 | elementValue = element.value, | ||
4769 | elementDataValue = picker.$node.data( 'value' ), | ||
4770 | valueString = elementDataValue || elementValue, | ||
4771 | formatString = elementDataValue ? settings.formatSubmit : settings.format, | ||
4772 | isRTL = function() { | ||
4773 | |||
4774 | return element.currentStyle ? | ||
4775 | |||
4776 | // For IE. | ||
4777 | element.currentStyle.direction == 'rtl' : | ||
4778 | |||
4779 | // For normal browsers. | ||
4780 | getComputedStyle( picker.$root[0] ).direction == 'rtl' | ||
4781 | } | ||
4782 | |||
4783 | calendar.settings = settings | ||
4784 | calendar.$node = picker.$node | ||
4785 | |||
4786 | // The queue of methods that will be used to build item objects. | ||
4787 | calendar.queue = { | ||
4788 | min: 'measure create', | ||
4789 | max: 'measure create', | ||
4790 | now: 'now create', | ||
4791 | select: 'parse create validate', | ||
4792 | highlight: 'parse navigate create validate', | ||
4793 | view: 'parse create validate viewset', | ||
4794 | disable: 'deactivate', | ||
4795 | enable: 'activate' | ||
4796 | } | ||
4797 | |||
4798 | // The component's item object. | ||
4799 | calendar.item = {} | ||
4800 | |||
4801 | calendar.item.clear = null | ||
4802 | calendar.item.disable = ( settings.disable || [] ).slice( 0 ) | ||
4803 | calendar.item.enable = -(function( collectionDisabled ) { | ||
4804 | return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1 | ||
4805 | })( calendar.item.disable ) | ||
4806 | |||
4807 | calendar. | ||
4808 | set( 'min', settings.min ). | ||
4809 | set( 'max', settings.max ). | ||
4810 | set( 'now' ) | ||
4811 | |||
4812 | // When there’s a value, set the `select`, which in turn | ||
4813 | // also sets the `highlight` and `view`. | ||
4814 | if ( valueString ) { | ||
4815 | calendar.set( 'select', valueString, { format: formatString }) | ||
4816 | } | ||
4817 | |||
4818 | // If there’s no value, default to highlighting “today”. | ||
4819 | else { | ||
4820 | calendar. | ||
4821 | set( 'select', null ). | ||
4822 | set( 'highlight', calendar.item.now ) | ||
4823 | } | ||
4824 | |||
4825 | |||
4826 | // The keycode to movement mapping. | ||
4827 | calendar.key = { | ||
4828 | 40: 7, // Down | ||
4829 | 38: -7, // Up | ||
4830 | 39: function() { return isRTL() ? -1 : 1 }, // Right | ||
4831 | 37: function() { return isRTL() ? 1 : -1 }, // Left | ||
4832 | go: function( timeChange ) { | ||
4833 | var highlightedObject = calendar.item.highlight, | ||
4834 | targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange ) | ||
4835 | calendar.set( | ||
4836 | 'highlight', | ||
4837 | targetDate, | ||
4838 | { interval: timeChange } | ||
4839 | ) | ||
4840 | this.render() | ||
4841 | } | ||
4842 | } | ||
4843 | |||
4844 | |||
4845 | // Bind some picker events. | ||
4846 | picker. | ||
4847 | on( 'render', function() { | ||
4848 | picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() { | ||
4849 | var value = this.value | ||
4850 | if ( value ) { | ||
4851 | picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] ) | ||
4852 | picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' ) | ||
4853 | } | ||
4854 | }) | ||
4855 | picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() { | ||
4856 | var value = this.value | ||
4857 | if ( value ) { | ||
4858 | picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] ) | ||
4859 | picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' ) | ||
4860 | } | ||
4861 | }) | ||
4862 | }, 1 ). | ||
4863 | on( 'open', function() { | ||
4864 | var includeToday = '' | ||
4865 | if ( calendar.disabled( calendar.get('now') ) ) { | ||
4866 | includeToday = ':not(.' + settings.klass.buttonToday + ')' | ||
4867 | } | ||
4868 | picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false ) | ||
4869 | }, 1 ). | ||
4870 | on( 'close', function() { | ||
4871 | picker.$root.find( 'button, select' ).attr( 'disabled', true ) | ||
4872 | }, 1 ) | ||
4873 | |||
4874 | } //DatePicker | ||
4875 | |||
4876 | |||
4877 | /** | ||
4878 | * Set a datepicker item object. | ||
4879 | */ | ||
4880 | DatePicker.prototype.set = function( type, value, options ) { | ||
4881 | |||
4882 | var calendar = this, | ||
4883 | calendarItem = calendar.item | ||
4884 | |||
4885 | // If the value is `null` just set it immediately. | ||
4886 | if ( value === null ) { | ||
4887 | if ( type == 'clear' ) type = 'select' | ||
4888 | calendarItem[ type ] = value | ||
4889 | return calendar | ||
4890 | } | ||
4891 | |||
4892 | // Otherwise go through the queue of methods, and invoke the functions. | ||
4893 | // Update this as the time unit, and set the final value as this item. | ||
4894 | // * In the case of `enable`, keep the queue but set `disable` instead. | ||
4895 | // And in the case of `flip`, keep the queue but set `enable` instead. | ||
4896 | calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) { | ||
4897 | value = calendar[ method ]( type, value, options ) | ||
4898 | return value | ||
4899 | }).pop() | ||
4900 | |||
4901 | // Check if we need to cascade through more updates. | ||
4902 | if ( type == 'select' ) { | ||
4903 | calendar.set( 'highlight', calendarItem.select, options ) | ||
4904 | } | ||
4905 | else if ( type == 'highlight' ) { | ||
4906 | calendar.set( 'view', calendarItem.highlight, options ) | ||
4907 | } | ||
4908 | else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) { | ||
4909 | if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) { | ||
4910 | calendar.set( 'select', calendarItem.select, options ) | ||
4911 | } | ||
4912 | if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) { | ||
4913 | calendar.set( 'highlight', calendarItem.highlight, options ) | ||
4914 | } | ||
4915 | } | ||
4916 | |||
4917 | return calendar | ||
4918 | } //DatePicker.prototype.set | ||
4919 | |||
4920 | |||
4921 | /** | ||
4922 | * Get a datepicker item object. | ||
4923 | */ | ||
4924 | DatePicker.prototype.get = function( type ) { | ||
4925 | return this.item[ type ] | ||
4926 | } //DatePicker.prototype.get | ||
4927 | |||
4928 | |||
4929 | /** | ||
4930 | * Create a picker date object. | ||
4931 | */ | ||
4932 | DatePicker.prototype.create = function( type, value, options ) { | ||
4933 | |||
4934 | var isInfiniteValue, | ||
4935 | calendar = this | ||
4936 | |||
4937 | // If there’s no value, use the type as the value. | ||
4938 | value = value === undefined ? type : value | ||
4939 | |||
4940 | |||
4941 | // If it’s infinity, update the value. | ||
4942 | if ( value == -Infinity || value == Infinity ) { | ||
4943 | isInfiniteValue = value | ||
4944 | } | ||
4945 | |||
4946 | // If it’s an object, use the native date object. | ||
4947 | else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { | ||
4948 | value = value.obj | ||
4949 | } | ||
4950 | |||
4951 | // If it’s an array, convert it into a date and make sure | ||
4952 | // that it’s a valid date – otherwise default to today. | ||
4953 | else if ( $.isArray( value ) ) { | ||
4954 | value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] ) | ||
4955 | value = _.isDate( value ) ? value : calendar.create().obj | ||
4956 | } | ||
4957 | |||
4958 | // If it’s a number or date object, make a normalized date. | ||
4959 | else if ( _.isInteger( value ) || _.isDate( value ) ) { | ||
4960 | value = calendar.normalize( new Date( value ), options ) | ||
4961 | } | ||
4962 | |||
4963 | // If it’s a literal true or any other case, set it to now. | ||
4964 | else /*if ( value === true )*/ { | ||
4965 | value = calendar.now( type, value, options ) | ||
4966 | } | ||
4967 | |||
4968 | // Return the compiled object. | ||
4969 | return { | ||
4970 | year: isInfiniteValue || value.getFullYear(), | ||
4971 | month: isInfiniteValue || value.getMonth(), | ||
4972 | date: isInfiniteValue || value.getDate(), | ||
4973 | day: isInfiniteValue || value.getDay(), | ||
4974 | obj: isInfiniteValue || value, | ||
4975 | pick: isInfiniteValue || value.getTime() | ||
4976 | } | ||
4977 | } //DatePicker.prototype.create | ||
4978 | |||
4979 | |||
4980 | /** | ||
4981 | * Create a range limit object using an array, date object, | ||
4982 | * literal “true”, or integer relative to another time. | ||
4983 | */ | ||
4984 | DatePicker.prototype.createRange = function( from, to ) { | ||
4985 | |||
4986 | var calendar = this, | ||
4987 | createDate = function( date ) { | ||
4988 | if ( date === true || $.isArray( date ) || _.isDate( date ) ) { | ||
4989 | return calendar.create( date ) | ||
4990 | } | ||
4991 | return date | ||
4992 | } | ||
4993 | |||
4994 | // Create objects if possible. | ||
4995 | if ( !_.isInteger( from ) ) { | ||
4996 | from = createDate( from ) | ||
4997 | } | ||
4998 | if ( !_.isInteger( to ) ) { | ||
4999 | to = createDate( to ) | ||
5000 | } | ||
5001 | |||
5002 | // Create relative dates. | ||
5003 | if ( _.isInteger( from ) && $.isPlainObject( to ) ) { | ||
5004 | from = [ to.year, to.month, to.date + from ]; | ||
5005 | } | ||
5006 | else if ( _.isInteger( to ) && $.isPlainObject( from ) ) { | ||
5007 | to = [ from.year, from.month, from.date + to ]; | ||
5008 | } | ||
5009 | |||
5010 | return { | ||
5011 | from: createDate( from ), | ||
5012 | to: createDate( to ) | ||
5013 | } | ||
5014 | } //DatePicker.prototype.createRange | ||
5015 | |||
5016 | |||
5017 | /** | ||
5018 | * Check if a date unit falls within a date range object. | ||
5019 | */ | ||
5020 | DatePicker.prototype.withinRange = function( range, dateUnit ) { | ||
5021 | range = this.createRange(range.from, range.to) | ||
5022 | return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick | ||
5023 | } | ||
5024 | |||
5025 | |||
5026 | /** | ||
5027 | * Check if two date range objects overlap. | ||
5028 | */ | ||
5029 | DatePicker.prototype.overlapRanges = function( one, two ) { | ||
5030 | |||
5031 | var calendar = this | ||
5032 | |||
5033 | // Convert the ranges into comparable dates. | ||
5034 | one = calendar.createRange( one.from, one.to ) | ||
5035 | two = calendar.createRange( two.from, two.to ) | ||
5036 | |||
5037 | return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) || | ||
5038 | calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to ) | ||
5039 | } | ||
5040 | |||
5041 | |||
5042 | /** | ||
5043 | * Get the date today. | ||
5044 | */ | ||
5045 | DatePicker.prototype.now = function( type, value, options ) { | ||
5046 | value = new Date() | ||
5047 | if ( options && options.rel ) { | ||
5048 | value.setDate( value.getDate() + options.rel ) | ||
5049 | } | ||
5050 | return this.normalize( value, options ) | ||
5051 | } | ||
5052 | |||
5053 | |||
5054 | /** | ||
5055 | * Navigate to next/prev month. | ||
5056 | */ | ||
5057 | DatePicker.prototype.navigate = function( type, value, options ) { | ||
5058 | |||
5059 | var targetDateObject, | ||
5060 | targetYear, | ||
5061 | targetMonth, | ||
5062 | targetDate, | ||
5063 | isTargetArray = $.isArray( value ), | ||
5064 | isTargetObject = $.isPlainObject( value ), | ||
5065 | viewsetObject = this.item.view/*, | ||
5066 | safety = 100*/ | ||
5067 | |||
5068 | |||
5069 | if ( isTargetArray || isTargetObject ) { | ||
5070 | |||
5071 | if ( isTargetObject ) { | ||
5072 | targetYear = value.year | ||
5073 | targetMonth = value.month | ||
5074 | targetDate = value.date | ||
5075 | } | ||
5076 | else { | ||
5077 | targetYear = +value[0] | ||
5078 | targetMonth = +value[1] | ||
5079 | targetDate = +value[2] | ||
5080 | } | ||
5081 | |||
5082 | // If we’re navigating months but the view is in a different | ||
5083 | // month, navigate to the view’s year and month. | ||
5084 | if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) { | ||
5085 | targetYear = viewsetObject.year | ||
5086 | targetMonth = viewsetObject.month | ||
5087 | } | ||
5088 | |||
5089 | // Figure out the expected target year and month. | ||
5090 | targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 ) | ||
5091 | targetYear = targetDateObject.getFullYear() | ||
5092 | targetMonth = targetDateObject.getMonth() | ||
5093 | |||
5094 | // If the month we’re going to doesn’t have enough days, | ||
5095 | // keep decreasing the date until we reach the month’s last date. | ||
5096 | while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) { | ||
5097 | targetDate -= 1 | ||
5098 | /*safety -= 1 | ||
5099 | if ( !safety ) { | ||
5100 | throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.' | ||
5101 | }*/ | ||
5102 | } | ||
5103 | |||
5104 | value = [ targetYear, targetMonth, targetDate ] | ||
5105 | } | ||
5106 | |||
5107 | return value | ||
5108 | } //DatePicker.prototype.navigate | ||
5109 | |||
5110 | |||
5111 | /** | ||
5112 | * Normalize a date by setting the hours to midnight. | ||
5113 | */ | ||
5114 | DatePicker.prototype.normalize = function( value/*, options*/ ) { | ||
5115 | value.setHours( 0, 0, 0, 0 ) | ||
5116 | return value | ||
5117 | } | ||
5118 | |||
5119 | |||
5120 | /** | ||
5121 | * Measure the range of dates. | ||
5122 | */ | ||
5123 | DatePicker.prototype.measure = function( type, value/*, options*/ ) { | ||
5124 | |||
5125 | var calendar = this | ||
5126 | |||
5127 | // If it’s anything false-y, remove the limits. | ||
5128 | if ( !value ) { | ||
5129 | value = type == 'min' ? -Infinity : Infinity | ||
5130 | } | ||
5131 | |||
5132 | // If it’s a string, parse it. | ||
5133 | else if ( typeof value == 'string' ) { | ||
5134 | value = calendar.parse( type, value ) | ||
5135 | } | ||
5136 | |||
5137 | // If it's an integer, get a date relative to today. | ||
5138 | else if ( _.isInteger( value ) ) { | ||
5139 | value = calendar.now( type, value, { rel: value } ) | ||
5140 | } | ||
5141 | |||
5142 | return value | ||
5143 | } ///DatePicker.prototype.measure | ||
5144 | |||
5145 | |||
5146 | /** | ||
5147 | * Create a viewset object based on navigation. | ||
5148 | */ | ||
5149 | DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) { | ||
5150 | return this.create([ dateObject.year, dateObject.month, 1 ]) | ||
5151 | } | ||
5152 | |||
5153 | |||
5154 | /** | ||
5155 | * Validate a date as enabled and shift if needed. | ||
5156 | */ | ||
5157 | DatePicker.prototype.validate = function( type, dateObject, options ) { | ||
5158 | |||
5159 | var calendar = this, | ||
5160 | |||
5161 | // Keep a reference to the original date. | ||
5162 | originalDateObject = dateObject, | ||
5163 | |||
5164 | // Make sure we have an interval. | ||
5165 | interval = options && options.interval ? options.interval : 1, | ||
5166 | |||
5167 | // Check if the calendar enabled dates are inverted. | ||
5168 | isFlippedBase = calendar.item.enable === -1, | ||
5169 | |||
5170 | // Check if we have any enabled dates after/before now. | ||
5171 | hasEnabledBeforeTarget, hasEnabledAfterTarget, | ||
5172 | |||
5173 | // The min & max limits. | ||
5174 | minLimitObject = calendar.item.min, | ||
5175 | maxLimitObject = calendar.item.max, | ||
5176 | |||
5177 | // Check if we’ve reached the limit during shifting. | ||
5178 | reachedMin, reachedMax, | ||
5179 | |||
5180 | // Check if the calendar is inverted and at least one weekday is enabled. | ||
5181 | hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) { | ||
5182 | |||
5183 | // If there’s a date, check where it is relative to the target. | ||
5184 | if ( $.isArray( value ) ) { | ||
5185 | var dateTime = calendar.create( value ).pick | ||
5186 | if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true | ||
5187 | else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true | ||
5188 | } | ||
5189 | |||
5190 | // Return only integers for enabled weekdays. | ||
5191 | return _.isInteger( value ) | ||
5192 | }).length/*, | ||
5193 | |||
5194 | safety = 100*/ | ||
5195 | |||
5196 | |||
5197 | |||
5198 | // Cases to validate for: | ||
5199 | // [1] Not inverted and date disabled. | ||
5200 | // [2] Inverted and some dates enabled. | ||
5201 | // [3] Not inverted and out of range. | ||
5202 | // | ||
5203 | // Cases to **not** validate for: | ||
5204 | // • Navigating months. | ||
5205 | // • Not inverted and date enabled. | ||
5206 | // • Inverted and all dates disabled. | ||
5207 | // • ..and anything else. | ||
5208 | if ( !options || !options.nav ) if ( | ||
5209 | /* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) || | ||
5210 | /* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) || | ||
5211 | /* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) ) | ||
5212 | ) { | ||
5213 | |||
5214 | |||
5215 | // When inverted, flip the direction if there aren’t any enabled weekdays | ||
5216 | // and there are no enabled dates in the direction of the interval. | ||
5217 | if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) { | ||
5218 | interval *= -1 | ||
5219 | } | ||
5220 | |||
5221 | |||
5222 | // Keep looping until we reach an enabled date. | ||
5223 | while ( /*safety &&*/ calendar.disabled( dateObject ) ) { | ||
5224 | |||
5225 | /*safety -= 1 | ||
5226 | if ( !safety ) { | ||
5227 | throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.' | ||
5228 | }*/ | ||
5229 | |||
5230 | |||
5231 | // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval. | ||
5232 | if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) { | ||
5233 | dateObject = originalDateObject | ||
5234 | interval = interval > 0 ? 1 : -1 | ||
5235 | } | ||
5236 | |||
5237 | |||
5238 | // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit. | ||
5239 | if ( dateObject.pick <= minLimitObject.pick ) { | ||
5240 | reachedMin = true | ||
5241 | interval = 1 | ||
5242 | dateObject = calendar.create([ | ||
5243 | minLimitObject.year, | ||
5244 | minLimitObject.month, | ||
5245 | minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1) | ||
5246 | ]) | ||
5247 | } | ||
5248 | else if ( dateObject.pick >= maxLimitObject.pick ) { | ||
5249 | reachedMax = true | ||
5250 | interval = -1 | ||
5251 | dateObject = calendar.create([ | ||
5252 | maxLimitObject.year, | ||
5253 | maxLimitObject.month, | ||
5254 | maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1) | ||
5255 | ]) | ||
5256 | } | ||
5257 | |||
5258 | |||
5259 | // If we’ve reached both limits, just break out of the loop. | ||
5260 | if ( reachedMin && reachedMax ) { | ||
5261 | break | ||
5262 | } | ||
5263 | |||
5264 | |||
5265 | // Finally, create the shifted date using the interval and keep looping. | ||
5266 | dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ]) | ||
5267 | } | ||
5268 | |||
5269 | } //endif | ||
5270 | |||
5271 | |||
5272 | // Return the date object settled on. | ||
5273 | return dateObject | ||
5274 | } //DatePicker.prototype.validate | ||
5275 | |||
5276 | |||
5277 | /** | ||
5278 | * Check if a date is disabled. | ||
5279 | */ | ||
5280 | DatePicker.prototype.disabled = function( dateToVerify ) { | ||
5281 | |||
5282 | var | ||
5283 | calendar = this, | ||
5284 | |||
5285 | // Filter through the disabled dates to check if this is one. | ||
5286 | isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) { | ||
5287 | |||
5288 | // If the date is a number, match the weekday with 0index and `firstDay` check. | ||
5289 | if ( _.isInteger( dateToDisable ) ) { | ||
5290 | return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7 | ||
5291 | } | ||
5292 | |||
5293 | // If it’s an array or a native JS date, create and match the exact date. | ||
5294 | if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) { | ||
5295 | return dateToVerify.pick === calendar.create( dateToDisable ).pick | ||
5296 | } | ||
5297 | |||
5298 | // If it’s an object, match a date within the “from” and “to” range. | ||
5299 | if ( $.isPlainObject( dateToDisable ) ) { | ||
5300 | return calendar.withinRange( dateToDisable, dateToVerify ) | ||
5301 | } | ||
5302 | }) | ||
5303 | |||
5304 | // If this date matches a disabled date, confirm it’s not inverted. | ||
5305 | isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) { | ||
5306 | return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' || | ||
5307 | $.isPlainObject( dateToDisable ) && dateToDisable.inverted | ||
5308 | }).length | ||
5309 | |||
5310 | // Check the calendar “enabled” flag and respectively flip the | ||
5311 | // disabled state. Then also check if it’s beyond the min/max limits. | ||
5312 | return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch || | ||
5313 | dateToVerify.pick < calendar.item.min.pick || | ||
5314 | dateToVerify.pick > calendar.item.max.pick | ||
5315 | |||
5316 | } //DatePicker.prototype.disabled | ||
5317 | |||
5318 | |||
5319 | /** | ||
5320 | * Parse a string into a usable type. | ||
5321 | */ | ||
5322 | DatePicker.prototype.parse = function( type, value, options ) { | ||
5323 | |||
5324 | var calendar = this, | ||
5325 | parsingObject = {} | ||
5326 | |||
5327 | // If it’s already parsed, we’re good. | ||
5328 | if ( !value || typeof value != 'string' ) { | ||
5329 | return value | ||
5330 | } | ||
5331 | |||
5332 | // We need a `.format` to parse the value with. | ||
5333 | if ( !( options && options.format ) ) { | ||
5334 | options = options || {} | ||
5335 | options.format = calendar.settings.format | ||
5336 | } | ||
5337 | |||
5338 | // Convert the format into an array and then map through it. | ||
5339 | calendar.formats.toArray( options.format ).map( function( label ) { | ||
5340 | |||
5341 | var | ||
5342 | // Grab the formatting label. | ||
5343 | formattingLabel = calendar.formats[ label ], | ||
5344 | |||
5345 | // The format length is from the formatting label function or the | ||
5346 | // label length without the escaping exclamation (!) mark. | ||
5347 | formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length | ||
5348 | |||
5349 | // If there's a format label, split the value up to the format length. | ||
5350 | // Then add it to the parsing object with appropriate label. | ||
5351 | if ( formattingLabel ) { | ||
5352 | parsingObject[ label ] = value.substr( 0, formatLength ) | ||
5353 | } | ||
5354 | |||
5355 | // Update the value as the substring from format length to end. | ||
5356 | value = value.substr( formatLength ) | ||
5357 | }) | ||
5358 | |||
5359 | // Compensate for month 0index. | ||
5360 | return [ | ||
5361 | parsingObject.yyyy || parsingObject.yy, | ||
5362 | +( parsingObject.mm || parsingObject.m ) - 1, | ||
5363 | parsingObject.dd || parsingObject.d | ||
5364 | ] | ||
5365 | } //DatePicker.prototype.parse | ||
5366 | |||
5367 | |||
5368 | /** | ||
5369 | * Various formats to display the object in. | ||
5370 | */ | ||
5371 | DatePicker.prototype.formats = (function() { | ||
5372 | |||
5373 | // Return the length of the first word in a collection. | ||
5374 | function getWordLengthFromCollection( string, collection, dateObject ) { | ||
5375 | |||
5376 | // Grab the first word from the string. | ||
5377 | var word = string.match( /\w+/ )[ 0 ] | ||
5378 | |||
5379 | // If there's no month index, add it to the date object | ||
5380 | if ( !dateObject.mm && !dateObject.m ) { | ||
5381 | dateObject.m = collection.indexOf( word ) + 1 | ||
5382 | } | ||
5383 | |||
5384 | // Return the length of the word. | ||
5385 | return word.length | ||
5386 | } | ||
5387 | |||
5388 | // Get the length of the first word in a string. | ||
5389 | function getFirstWordLength( string ) { | ||
5390 | return string.match( /\w+/ )[ 0 ].length | ||
5391 | } | ||
5392 | |||
5393 | return { | ||
5394 | |||
5395 | d: function( string, dateObject ) { | ||
5396 | |||
5397 | // If there's string, then get the digits length. | ||
5398 | // Otherwise return the selected date. | ||
5399 | return string ? _.digits( string ) : dateObject.date | ||
5400 | }, | ||
5401 | dd: function( string, dateObject ) { | ||
5402 | |||
5403 | // If there's a string, then the length is always 2. | ||
5404 | // Otherwise return the selected date with a leading zero. | ||
5405 | return string ? 2 : _.lead( dateObject.date ) | ||
5406 | }, | ||
5407 | ddd: function( string, dateObject ) { | ||
5408 | |||
5409 | // If there's a string, then get the length of the first word. | ||
5410 | // Otherwise return the short selected weekday. | ||
5411 | return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ] | ||
5412 | }, | ||
5413 | dddd: function( string, dateObject ) { | ||
5414 | |||
5415 | // If there's a string, then get the length of the first word. | ||
5416 | // Otherwise return the full selected weekday. | ||
5417 | return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ] | ||
5418 | }, | ||
5419 | m: function( string, dateObject ) { | ||
5420 | |||
5421 | // If there's a string, then get the length of the digits | ||
5422 | // Otherwise return the selected month with 0index compensation. | ||
5423 | return string ? _.digits( string ) : dateObject.month + 1 | ||
5424 | }, | ||
5425 | mm: function( string, dateObject ) { | ||
5426 | |||
5427 | // If there's a string, then the length is always 2. | ||
5428 | // Otherwise return the selected month with 0index and leading zero. | ||
5429 | return string ? 2 : _.lead( dateObject.month + 1 ) | ||
5430 | }, | ||
5431 | mmm: function( string, dateObject ) { | ||
5432 | |||
5433 | var collection = this.settings.monthsShort | ||
5434 | |||
5435 | // If there's a string, get length of the relevant month from the short | ||
5436 | // months collection. Otherwise return the selected month from that collection. | ||
5437 | return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] | ||
5438 | }, | ||
5439 | mmmm: function( string, dateObject ) { | ||
5440 | |||
5441 | var collection = this.settings.monthsFull | ||
5442 | |||
5443 | // If there's a string, get length of the relevant month from the full | ||
5444 | // months collection. Otherwise return the selected month from that collection. | ||
5445 | return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] | ||
5446 | }, | ||
5447 | yy: function( string, dateObject ) { | ||
5448 | |||
5449 | // If there's a string, then the length is always 2. | ||
5450 | // Otherwise return the selected year by slicing out the first 2 digits. | ||
5451 | return string ? 2 : ( '' + dateObject.year ).slice( 2 ) | ||
5452 | }, | ||
5453 | yyyy: function( string, dateObject ) { | ||
5454 | |||
5455 | // If there's a string, then the length is always 4. | ||
5456 | // Otherwise return the selected year. | ||
5457 | return string ? 4 : dateObject.year | ||
5458 | }, | ||
5459 | |||
5460 | // Create an array by splitting the formatting string passed. | ||
5461 | toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) }, | ||
5462 | |||
5463 | // Format an object into a string using the formatting options. | ||
5464 | toString: function ( formatString, itemObject ) { | ||
5465 | var calendar = this | ||
5466 | return calendar.formats.toArray( formatString ).map( function( label ) { | ||
5467 | return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' ) | ||
5468 | }).join( '' ) | ||
5469 | } | ||
5470 | } | ||
5471 | })() //DatePicker.prototype.formats | ||
5472 | |||
5473 | |||
5474 | |||
5475 | |||
5476 | /** | ||
5477 | * Check if two date units are the exact. | ||
5478 | */ | ||
5479 | DatePicker.prototype.isDateExact = function( one, two ) { | ||
5480 | |||
5481 | var calendar = this | ||
5482 | |||
5483 | // When we’re working with weekdays, do a direct comparison. | ||
5484 | if ( | ||
5485 | ( _.isInteger( one ) && _.isInteger( two ) ) || | ||
5486 | ( typeof one == 'boolean' && typeof two == 'boolean' ) | ||
5487 | ) { | ||
5488 | return one === two | ||
5489 | } | ||
5490 | |||
5491 | // When we’re working with date representations, compare the “pick” value. | ||
5492 | if ( | ||
5493 | ( _.isDate( one ) || $.isArray( one ) ) && | ||
5494 | ( _.isDate( two ) || $.isArray( two ) ) | ||
5495 | ) { | ||
5496 | return calendar.create( one ).pick === calendar.create( two ).pick | ||
5497 | } | ||
5498 | |||
5499 | // When we’re working with range objects, compare the “from” and “to”. | ||
5500 | if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { | ||
5501 | return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to ) | ||
5502 | } | ||
5503 | |||
5504 | return false | ||
5505 | } | ||
5506 | |||
5507 | |||
5508 | /** | ||
5509 | * Check if two date units overlap. | ||
5510 | */ | ||
5511 | DatePicker.prototype.isDateOverlap = function( one, two ) { | ||
5512 | |||
5513 | var calendar = this, | ||
5514 | firstDay = calendar.settings.firstDay ? 1 : 0 | ||
5515 | |||
5516 | // When we’re working with a weekday index, compare the days. | ||
5517 | if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) { | ||
5518 | one = one % 7 + firstDay | ||
5519 | return one === calendar.create( two ).day + 1 | ||
5520 | } | ||
5521 | if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) { | ||
5522 | two = two % 7 + firstDay | ||
5523 | return two === calendar.create( one ).day + 1 | ||
5524 | } | ||
5525 | |||
5526 | // When we’re working with range objects, check if the ranges overlap. | ||
5527 | if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { | ||
5528 | return calendar.overlapRanges( one, two ) | ||
5529 | } | ||
5530 | |||
5531 | return false | ||
5532 | } | ||
5533 | |||
5534 | |||
5535 | /** | ||
5536 | * Flip the “enabled” state. | ||
5537 | */ | ||
5538 | DatePicker.prototype.flipEnable = function(val) { | ||
5539 | var itemObject = this.item | ||
5540 | itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1) | ||
5541 | } | ||
5542 | |||
5543 | |||
5544 | /** | ||
5545 | * Mark a collection of dates as “disabled”. | ||
5546 | */ | ||
5547 | DatePicker.prototype.deactivate = function( type, datesToDisable ) { | ||
5548 | |||
5549 | var calendar = this, | ||
5550 | disabledItems = calendar.item.disable.slice(0) | ||
5551 | |||
5552 | |||
5553 | // If we’re flipping, that’s all we need to do. | ||
5554 | if ( datesToDisable == 'flip' ) { | ||
5555 | calendar.flipEnable() | ||
5556 | } | ||
5557 | |||
5558 | else if ( datesToDisable === false ) { | ||
5559 | calendar.flipEnable(1) | ||
5560 | disabledItems = [] | ||
5561 | } | ||
5562 | |||
5563 | else if ( datesToDisable === true ) { | ||
5564 | calendar.flipEnable(-1) | ||
5565 | disabledItems = [] | ||
5566 | } | ||
5567 | |||
5568 | // Otherwise go through the dates to disable. | ||
5569 | else { | ||
5570 | |||
5571 | datesToDisable.map(function( unitToDisable ) { | ||
5572 | |||
5573 | var matchFound | ||
5574 | |||
5575 | // When we have disabled items, check for matches. | ||
5576 | // If something is matched, immediately break out. | ||
5577 | for ( var index = 0; index < disabledItems.length; index += 1 ) { | ||
5578 | if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) { | ||
5579 | matchFound = true | ||
5580 | break | ||
5581 | } | ||
5582 | } | ||
5583 | |||
5584 | // If nothing was found, add the validated unit to the collection. | ||
5585 | if ( !matchFound ) { | ||
5586 | if ( | ||
5587 | _.isInteger( unitToDisable ) || | ||
5588 | _.isDate( unitToDisable ) || | ||
5589 | $.isArray( unitToDisable ) || | ||
5590 | ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to ) | ||
5591 | ) { | ||
5592 | disabledItems.push( unitToDisable ) | ||
5593 | } | ||
5594 | } | ||
5595 | }) | ||
5596 | } | ||
5597 | |||
5598 | // Return the updated collection. | ||
5599 | return disabledItems | ||
5600 | } //DatePicker.prototype.deactivate | ||
5601 | |||
5602 | |||
5603 | /** | ||
5604 | * Mark a collection of dates as “enabled”. | ||
5605 | */ | ||
5606 | DatePicker.prototype.activate = function( type, datesToEnable ) { | ||
5607 | |||
5608 | var calendar = this, | ||
5609 | disabledItems = calendar.item.disable, | ||
5610 | disabledItemsCount = disabledItems.length | ||
5611 | |||
5612 | // If we’re flipping, that’s all we need to do. | ||
5613 | if ( datesToEnable == 'flip' ) { | ||
5614 | calendar.flipEnable() | ||
5615 | } | ||
5616 | |||
5617 | else if ( datesToEnable === true ) { | ||
5618 | calendar.flipEnable(1) | ||
5619 | disabledItems = [] | ||
5620 | } | ||
5621 | |||
5622 | else if ( datesToEnable === false ) { | ||
5623 | calendar.flipEnable(-1) | ||
5624 | disabledItems = [] | ||
5625 | } | ||
5626 | |||
5627 | // Otherwise go through the disabled dates. | ||
5628 | else { | ||
5629 | |||
5630 | datesToEnable.map(function( unitToEnable ) { | ||
5631 | |||
5632 | var matchFound, | ||
5633 | disabledUnit, | ||
5634 | index, | ||
5635 | isExactRange | ||
5636 | |||
5637 | // Go through the disabled items and try to find a match. | ||
5638 | for ( index = 0; index < disabledItemsCount; index += 1 ) { | ||
5639 | |||
5640 | disabledUnit = disabledItems[index] | ||
5641 | |||
5642 | // When an exact match is found, remove it from the collection. | ||
5643 | if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) { | ||
5644 | matchFound = disabledItems[index] = null | ||
5645 | isExactRange = true | ||
5646 | break | ||
5647 | } | ||
5648 | |||
5649 | // When an overlapped match is found, add the “inverted” state to it. | ||
5650 | else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) { | ||
5651 | if ( $.isPlainObject( unitToEnable ) ) { | ||
5652 | unitToEnable.inverted = true | ||
5653 | matchFound = unitToEnable | ||
5654 | } | ||
5655 | else if ( $.isArray( unitToEnable ) ) { | ||
5656 | matchFound = unitToEnable | ||
5657 | if ( !matchFound[3] ) matchFound.push( 'inverted' ) | ||
5658 | } | ||
5659 | else if ( _.isDate( unitToEnable ) ) { | ||
5660 | matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ] | ||
5661 | } | ||
5662 | break | ||
5663 | } | ||
5664 | } | ||
5665 | |||
5666 | // If a match was found, remove a previous duplicate entry. | ||
5667 | if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) { | ||
5668 | if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) { | ||
5669 | disabledItems[index] = null | ||
5670 | break | ||
5671 | } | ||
5672 | } | ||
5673 | |||
5674 | // In the event that we’re dealing with an exact range of dates, | ||
5675 | // make sure there are no “inverted” dates because of it. | ||
5676 | if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) { | ||
5677 | if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) { | ||
5678 | disabledItems[index] = null | ||
5679 | break | ||
5680 | } | ||
5681 | } | ||
5682 | |||
5683 | // If something is still matched, add it into the collection. | ||
5684 | if ( matchFound ) { | ||
5685 | disabledItems.push( matchFound ) | ||
5686 | } | ||
5687 | }) | ||
5688 | } | ||
5689 | |||
5690 | // Return the updated collection. | ||
5691 | return disabledItems.filter(function( val ) { return val != null }) | ||
5692 | } //DatePicker.prototype.activate | ||
5693 | |||
5694 | |||
5695 | /** | ||
5696 | * Create a string for the nodes in the picker. | ||
5697 | */ | ||
5698 | DatePicker.prototype.nodes = function( isOpen ) { | ||
5699 | |||
5700 | var | ||
5701 | calendar = this, | ||
5702 | settings = calendar.settings, | ||
5703 | calendarItem = calendar.item, | ||
5704 | nowObject = calendarItem.now, | ||
5705 | selectedObject = calendarItem.select, | ||
5706 | highlightedObject = calendarItem.highlight, | ||
5707 | viewsetObject = calendarItem.view, | ||
5708 | disabledCollection = calendarItem.disable, | ||
5709 | minLimitObject = calendarItem.min, | ||
5710 | maxLimitObject = calendarItem.max, | ||
5711 | |||
5712 | |||
5713 | // Create the calendar table head using a copy of weekday labels collection. | ||
5714 | // * We do a copy so we don't mutate the original array. | ||
5715 | tableHead = (function( collection, fullCollection ) { | ||
5716 | |||
5717 | // If the first day should be Monday, move Sunday to the end. | ||
5718 | if ( settings.firstDay ) { | ||
5719 | collection.push( collection.shift() ) | ||
5720 | fullCollection.push( fullCollection.shift() ) | ||
5721 | } | ||
5722 | |||
5723 | // Create and return the table head group. | ||
5724 | return _.node( | ||
5725 | 'thead', | ||
5726 | _.node( | ||
5727 | 'tr', | ||
5728 | _.group({ | ||
5729 | min: 0, | ||
5730 | max: DAYS_IN_WEEK - 1, | ||
5731 | i: 1, | ||
5732 | node: 'th', | ||
5733 | item: function( counter ) { | ||
5734 | return [ | ||
5735 | collection[ counter ], | ||
5736 | settings.klass.weekdays, | ||
5737 | 'scope=col title="' + fullCollection[ counter ] + '"' | ||
5738 | ] | ||
5739 | } | ||
5740 | }) | ||
5741 | ) | ||
5742 | ) //endreturn | ||
5743 | |||
5744 | // Materialize modified | ||
5745 | })( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysLetter ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead | ||
5746 | |||
5747 | |||
5748 | // Create the nav for next/prev month. | ||
5749 | createMonthNav = function( next ) { | ||
5750 | |||
5751 | // Otherwise, return the created month tag. | ||
5752 | return _.node( | ||
5753 | 'div', | ||
5754 | ' ', | ||
5755 | settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + ( | ||
5756 | |||
5757 | // If the focused month is outside the range, disabled the button. | ||
5758 | ( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) || | ||
5759 | ( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ? | ||
5760 | ' ' + settings.klass.navDisabled : '' | ||
5761 | ), | ||
5762 | 'data-nav=' + ( next || -1 ) + ' ' + | ||
5763 | _.ariaAttr({ | ||
5764 | role: 'button', | ||
5765 | controls: calendar.$node[0].id + '_table' | ||
5766 | }) + ' ' + | ||
5767 | 'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"' | ||
5768 | ) //endreturn | ||
5769 | }, //createMonthNav | ||
5770 | |||
5771 | |||
5772 | // Create the month label. | ||
5773 | //Materialize modified | ||
5774 | createMonthLabel = function(override) { | ||
5775 | |||
5776 | var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull | ||
5777 | |||
5778 | // Materialize modified | ||
5779 | if (override == "short_months") { | ||
5780 | monthsCollection = settings.monthsShort; | ||
5781 | } | ||
5782 | |||
5783 | // If there are months to select, add a dropdown menu. | ||
5784 | if ( settings.selectMonths && override == undefined) { | ||
5785 | |||
5786 | return _.node( 'select', | ||
5787 | _.group({ | ||
5788 | min: 0, | ||
5789 | max: 11, | ||
5790 | i: 1, | ||
5791 | node: 'option', | ||
5792 | item: function( loopedMonth ) { | ||
5793 | |||
5794 | return [ | ||
5795 | |||
5796 | // The looped month and no classes. | ||
5797 | monthsCollection[ loopedMonth ], 0, | ||
5798 | |||
5799 | // Set the value and selected index. | ||
5800 | 'value=' + loopedMonth + | ||
5801 | ( viewsetObject.month == loopedMonth ? ' selected' : '' ) + | ||
5802 | ( | ||
5803 | ( | ||
5804 | ( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) || | ||
5805 | ( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month ) | ||
5806 | ) ? | ||
5807 | ' disabled' : '' | ||
5808 | ) | ||
5809 | ] | ||
5810 | } | ||
5811 | }), | ||
5812 | settings.klass.selectMonth + ' browser-default', | ||
5813 | ( isOpen ? '' : 'disabled' ) + ' ' + | ||
5814 | _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + | ||
5815 | 'title="' + settings.labelMonthSelect + '"' | ||
5816 | ) | ||
5817 | } | ||
5818 | |||
5819 | // Materialize modified | ||
5820 | if (override == "short_months") | ||
5821 | if (selectedObject != null) | ||
5822 | return _.node( 'div', monthsCollection[ selectedObject.month ] ); | ||
5823 | else return _.node( 'div', monthsCollection[ viewsetObject.month ] ); | ||
5824 | |||
5825 | // If there's a need for a month selector | ||
5826 | return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month ) | ||
5827 | }, //createMonthLabel | ||
5828 | |||
5829 | |||
5830 | // Create the year label. | ||
5831 | // Materialize modified | ||
5832 | createYearLabel = function(override) { | ||
5833 | |||
5834 | var focusedYear = viewsetObject.year, | ||
5835 | |||
5836 | // If years selector is set to a literal "true", set it to 5. Otherwise | ||
5837 | // divide in half to get half before and half after focused year. | ||
5838 | numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 ) | ||
5839 | |||
5840 | // If there are years to select, add a dropdown menu. | ||
5841 | if ( numberYears ) { | ||
5842 | |||
5843 | var | ||
5844 | minYear = minLimitObject.year, | ||
5845 | maxYear = maxLimitObject.year, | ||
5846 | lowestYear = focusedYear - numberYears, | ||
5847 | highestYear = focusedYear + numberYears | ||
5848 | |||
5849 | // If the min year is greater than the lowest year, increase the highest year | ||
5850 | // by the difference and set the lowest year to the min year. | ||
5851 | if ( minYear > lowestYear ) { | ||
5852 | highestYear += minYear - lowestYear | ||
5853 | lowestYear = minYear | ||
5854 | } | ||
5855 | |||
5856 | // If the max year is less than the highest year, decrease the lowest year | ||
5857 | // by the lower of the two: available and needed years. Then set the | ||
5858 | // highest year to the max year. | ||
5859 | if ( maxYear < highestYear ) { | ||
5860 | |||
5861 | var availableYears = lowestYear - minYear, | ||
5862 | neededYears = highestYear - maxYear | ||
5863 | |||
5864 | lowestYear -= availableYears > neededYears ? neededYears : availableYears | ||
5865 | highestYear = maxYear | ||
5866 | } | ||
5867 | |||
5868 | if ( settings.selectYears && override == undefined ) { | ||
5869 | return _.node( 'select', | ||
5870 | _.group({ | ||
5871 | min: lowestYear, | ||
5872 | max: highestYear, | ||
5873 | i: 1, | ||
5874 | node: 'option', | ||
5875 | item: function( loopedYear ) { | ||
5876 | return [ | ||
5877 | |||
5878 | // The looped year and no classes. | ||
5879 | loopedYear, 0, | ||
5880 | |||
5881 | // Set the value and selected index. | ||
5882 | 'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' ) | ||
5883 | ] | ||
5884 | } | ||
5885 | }), | ||
5886 | settings.klass.selectYear + ' browser-default', | ||
5887 | ( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + | ||
5888 | 'title="' + settings.labelYearSelect + '"' | ||
5889 | ) | ||
5890 | } | ||
5891 | } | ||
5892 | |||
5893 | // Materialize modified | ||
5894 | if (override == "raw") | ||
5895 | return _.node( 'div', focusedYear ) | ||
5896 | |||
5897 | // Otherwise just return the year focused | ||
5898 | return _.node( 'div', focusedYear, settings.klass.year ) | ||
5899 | } //createYearLabel | ||
5900 | |||
5901 | |||
5902 | // Materialize modified | ||
5903 | createDayLabel = function() { | ||
5904 | if (selectedObject != null) | ||
5905 | return _.node( 'div', selectedObject.date) | ||
5906 | else return _.node( 'div', nowObject.date) | ||
5907 | } | ||
5908 | createWeekdayLabel = function() { | ||
5909 | var display_day; | ||
5910 | |||
5911 | if (selectedObject != null) | ||
5912 | display_day = selectedObject.day; | ||
5913 | else | ||
5914 | display_day = nowObject.day; | ||
5915 | var weekday = settings.weekdaysFull[ display_day ] | ||
5916 | return weekday | ||
5917 | } | ||
5918 | |||
5919 | |||
5920 | // Create and return the entire calendar. | ||
5921 | return _.node( | ||
5922 | // Date presentation View | ||
5923 | 'div', | ||
5924 | _.node( | ||
5925 | 'div', | ||
5926 | createWeekdayLabel(), | ||
5927 | "picker__weekday-display" | ||
5928 | )+ | ||
5929 | _.node( | ||
5930 | // Div for short Month | ||
5931 | 'div', | ||
5932 | createMonthLabel("short_months"), | ||
5933 | settings.klass.month_display | ||
5934 | )+ | ||
5935 | _.node( | ||
5936 | // Div for Day | ||
5937 | 'div', | ||
5938 | createDayLabel() , | ||
5939 | settings.klass.day_display | ||
5940 | )+ | ||
5941 | _.node( | ||
5942 | // Div for Year | ||
5943 | 'div', | ||
5944 | createYearLabel("raw") , | ||
5945 | settings.klass.year_display | ||
5946 | ), | ||
5947 | settings.klass.date_display | ||
5948 | )+ | ||
5949 | // Calendar container | ||
5950 | _.node('div', | ||
5951 | _.node('div', | ||
5952 | ( settings.selectYears ? createMonthLabel() + createYearLabel() : createMonthLabel() + createYearLabel() ) + | ||
5953 | createMonthNav() + createMonthNav( 1 ), | ||
5954 | settings.klass.header | ||
5955 | ) + _.node( | ||
5956 | 'table', | ||
5957 | tableHead + | ||
5958 | _.node( | ||
5959 | 'tbody', | ||
5960 | _.group({ | ||
5961 | min: 0, | ||
5962 | max: WEEKS_IN_CALENDAR - 1, | ||
5963 | i: 1, | ||
5964 | node: 'tr', | ||
5965 | item: function( rowCounter ) { | ||
5966 | |||
5967 | // If Monday is the first day and the month starts on Sunday, shift the date back a week. | ||
5968 | var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0 | ||
5969 | |||
5970 | return [ | ||
5971 | _.group({ | ||
5972 | min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index | ||
5973 | max: function() { | ||
5974 | return this.min + DAYS_IN_WEEK - 1 | ||
5975 | }, | ||
5976 | i: 1, | ||
5977 | node: 'td', | ||
5978 | item: function( targetDate ) { | ||
5979 | |||
5980 | // Convert the time date from a relative date to a target date. | ||
5981 | targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ]) | ||
5982 | |||
5983 | var isSelected = selectedObject && selectedObject.pick == targetDate.pick, | ||
5984 | isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick, | ||
5985 | isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick, | ||
5986 | formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] ) | ||
5987 | |||
5988 | return [ | ||
5989 | _.node( | ||
5990 | 'div', | ||
5991 | targetDate.date, | ||
5992 | (function( klasses ) { | ||
5993 | |||
5994 | // Add the `infocus` or `outfocus` classes based on month in view. | ||
5995 | klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus ) | ||
5996 | |||
5997 | // Add the `today` class if needed. | ||
5998 | if ( nowObject.pick == targetDate.pick ) { | ||
5999 | klasses.push( settings.klass.now ) | ||
6000 | } | ||
6001 | |||
6002 | // Add the `selected` class if something's selected and the time matches. | ||
6003 | if ( isSelected ) { | ||
6004 | klasses.push( settings.klass.selected ) | ||
6005 | } | ||
6006 | |||
6007 | // Add the `highlighted` class if something's highlighted and the time matches. | ||
6008 | if ( isHighlighted ) { | ||
6009 | klasses.push( settings.klass.highlighted ) | ||
6010 | } | ||
6011 | |||
6012 | // Add the `disabled` class if something's disabled and the object matches. | ||
6013 | if ( isDisabled ) { | ||
6014 | klasses.push( settings.klass.disabled ) | ||
6015 | } | ||
6016 | |||
6017 | return klasses.join( ' ' ) | ||
6018 | })([ settings.klass.day ]), | ||
6019 | 'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({ | ||
6020 | role: 'gridcell', | ||
6021 | label: formattedDate, | ||
6022 | selected: isSelected && calendar.$node.val() === formattedDate ? true : null, | ||
6023 | activedescendant: isHighlighted ? true : null, | ||
6024 | disabled: isDisabled ? true : null | ||
6025 | }) | ||
6026 | ), | ||
6027 | '', | ||
6028 | _.ariaAttr({ role: 'presentation' }) | ||
6029 | ] //endreturn | ||
6030 | } | ||
6031 | }) | ||
6032 | ] //endreturn | ||
6033 | } | ||
6034 | }) | ||
6035 | ), | ||
6036 | settings.klass.table, | ||
6037 | 'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({ | ||
6038 | role: 'grid', | ||
6039 | controls: calendar.$node[0].id, | ||
6040 | readonly: true | ||
6041 | }) | ||
6042 | ) | ||
6043 | , settings.klass.calendar_container) // end calendar | ||
6044 | |||
6045 | + | ||
6046 | |||
6047 | // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”. | ||
6048 | _.node( | ||
6049 | 'div', | ||
6050 | _.node( 'button', settings.today, "btn-flat picker__today", | ||
6051 | 'type=button data-pick=' + nowObject.pick + | ||
6052 | ( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' + | ||
6053 | _.ariaAttr({ controls: calendar.$node[0].id }) ) + | ||
6054 | _.node( 'button', settings.clear, "btn-flat picker__clear", | ||
6055 | 'type=button data-clear=1' + | ||
6056 | ( isOpen ? '' : ' disabled' ) + ' ' + | ||
6057 | _.ariaAttr({ controls: calendar.$node[0].id }) ) + | ||
6058 | _.node('button', settings.close, "btn-flat picker__close", | ||
6059 | 'type=button data-close=true ' + | ||
6060 | ( isOpen ? '' : ' disabled' ) + ' ' + | ||
6061 | _.ariaAttr({ controls: calendar.$node[0].id }) ), | ||
6062 | settings.klass.footer | ||
6063 | ) //endreturn | ||
6064 | } //DatePicker.prototype.nodes | ||
6065 | |||
6066 | |||
6067 | |||
6068 | |||
6069 | /** | ||
6070 | * The date picker defaults. | ||
6071 | */ | ||
6072 | DatePicker.defaults = (function( prefix ) { | ||
6073 | |||
6074 | return { | ||
6075 | |||
6076 | // The title label to use for the month nav buttons | ||
6077 | labelMonthNext: 'Next month', | ||
6078 | labelMonthPrev: 'Previous month', | ||
6079 | |||
6080 | // The title label to use for the dropdown selectors | ||
6081 | labelMonthSelect: 'Select a month', | ||
6082 | labelYearSelect: 'Select a year', | ||
6083 | |||
6084 | // Months and weekdays | ||
6085 | monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], | ||
6086 | monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], | ||
6087 | weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], | ||
6088 | weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ], | ||
6089 | |||
6090 | // Materialize modified | ||
6091 | weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ], | ||
6092 | |||
6093 | // Today and clear | ||
6094 | today: 'Today', | ||
6095 | clear: 'Clear', | ||
6096 | close: 'Close', | ||
6097 | |||
6098 | // The format to show on the `input` element | ||
6099 | format: 'd mmmm, yyyy', | ||
6100 | |||
6101 | // Classes | ||
6102 | klass: { | ||
6103 | |||
6104 | table: prefix + 'table', | ||
6105 | |||
6106 | header: prefix + 'header', | ||
6107 | |||
6108 | |||
6109 | // Materialize Added klasses | ||
6110 | date_display: prefix + 'date-display', | ||
6111 | day_display: prefix + 'day-display', | ||
6112 | month_display: prefix + 'month-display', | ||
6113 | year_display: prefix + 'year-display', | ||
6114 | calendar_container: prefix + 'calendar-container', | ||
6115 | // end | ||
6116 | |||
6117 | |||
6118 | |||
6119 | navPrev: prefix + 'nav--prev', | ||
6120 | navNext: prefix + 'nav--next', | ||
6121 | navDisabled: prefix + 'nav--disabled', | ||
6122 | |||
6123 | month: prefix + 'month', | ||
6124 | year: prefix + 'year', | ||
6125 | |||
6126 | selectMonth: prefix + 'select--month', | ||
6127 | selectYear: prefix + 'select--year', | ||
6128 | |||
6129 | weekdays: prefix + 'weekday', | ||
6130 | |||
6131 | day: prefix + 'day', | ||
6132 | disabled: prefix + 'day--disabled', | ||
6133 | selected: prefix + 'day--selected', | ||
6134 | highlighted: prefix + 'day--highlighted', | ||
6135 | now: prefix + 'day--today', | ||
6136 | infocus: prefix + 'day--infocus', | ||
6137 | outfocus: prefix + 'day--outfocus', | ||
6138 | |||
6139 | footer: prefix + 'footer', | ||
6140 | |||
6141 | buttonClear: prefix + 'button--clear', | ||
6142 | buttonToday: prefix + 'button--today', | ||
6143 | buttonClose: prefix + 'button--close' | ||
6144 | } | ||
6145 | } | ||
6146 | })( Picker.klasses().picker + '__' ) | ||
6147 | |||
6148 | |||
6149 | |||
6150 | |||
6151 | |||
6152 | /** | ||
6153 | * Extend the picker to add the date picker. | ||
6154 | */ | ||
6155 | Picker.extend( 'pickadate', DatePicker ) | ||
6156 | |||
6157 | |||
6158 | })); | ||
6159 | |||
6160 | |||
6161 | ;(function ($) { | ||
6162 | |||
6163 | $.fn.characterCounter = function(){ | ||
6164 | return this.each(function(){ | ||
6165 | |||
6166 | var itHasLengthAttribute = $(this).attr('length') !== undefined; | ||
6167 | |||
6168 | if(itHasLengthAttribute){ | ||
6169 | $(this).on('input', updateCounter); | ||
6170 | $(this).on('focus', updateCounter); | ||
6171 | $(this).on('blur', removeCounterElement); | ||
6172 | |||
6173 | addCounterElement($(this)); | ||
6174 | } | ||
6175 | |||
6176 | }); | ||
6177 | }; | ||
6178 | |||
6179 | function updateCounter(){ | ||
6180 | var maxLength = +$(this).attr('length'), | ||
6181 | actualLength = +$(this).val().length, | ||
6182 | isValidLength = actualLength <= maxLength; | ||
6183 | |||
6184 | $(this).parent().find('span[class="character-counter"]') | ||
6185 | .html( actualLength + '/' + maxLength); | ||
6186 | |||
6187 | addInputStyle(isValidLength, $(this)); | ||
6188 | } | ||
6189 | |||
6190 | function addCounterElement($input){ | ||
6191 | var $counterElement = $('<span/>') | ||
6192 | .addClass('character-counter') | ||
6193 | .css('float','right') | ||
6194 | .css('font-size','12px') | ||
6195 | .css('height', 1); | ||
6196 | |||
6197 | $input.parent().append($counterElement); | ||
6198 | } | ||
6199 | |||
6200 | function removeCounterElement(){ | ||
6201 | $(this).parent().find('span[class="character-counter"]').html(''); | ||
6202 | } | ||
6203 | |||
6204 | function addInputStyle(isValidLength, $input){ | ||
6205 | var inputHasInvalidClass = $input.hasClass('invalid'); | ||
6206 | if (isValidLength && inputHasInvalidClass) { | ||
6207 | $input.removeClass('invalid'); | ||
6208 | } | ||
6209 | else if(!isValidLength && !inputHasInvalidClass){ | ||
6210 | $input.removeClass('valid'); | ||
6211 | $input.addClass('invalid'); | ||
6212 | } | ||
6213 | } | ||
6214 | |||
6215 | $(document).ready(function(){ | ||
6216 | $('input, textarea').characterCounter(); | ||
6217 | }); | ||
6218 | |||
6219 | }( jQuery )); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/materialize.min.js b/src/Wallabag/CoreBundle/Resources/public/themes/material/js/materialize.min.js deleted file mode 100644 index 7f778aad..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/materialize.min.js +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | /*! | ||
2 | * Materialize v0.97.1 (http://materializecss.com) | ||
3 | * Copyright 2014-2015 Materialize | ||
4 | * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) | ||
5 | */ | ||
6 | jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return 0==b?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return 0==b?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(b-=1))*Math.sin(2*(b*e-f)*Math.PI/g))+c},easeOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(1==(b/=e))return c+d;if(g||(g=.3*e),h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*b)*Math.sin(2*(b*e-f)*Math.PI/g)+d+c},easeInOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(0==b)return c;if(2==(b/=e/2))return c+d;if(g||(g=.3*e*1.5),h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return 1>b?-.5*h*Math.pow(2,10*(b-=1))*Math.sin(2*(b*e-f)*Math.PI/g)+c:h*Math.pow(2,-10*(b-=1))*Math.sin(2*(b*e-f)*Math.PI/g)*.5+d+c},easeInBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*(b/=e)*b*((f+1)*b-f)+c},easeOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*((b=b/e-1)*b*((f+1)*b+f)+1)+c},easeInOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),(b/=e/2)<1?d/2*b*b*(((f*=1.525)+1)*b-f)+c:d/2*((b-=2)*b*(((f*=1.525)+1)*b+f)+2)+c},easeInBounce:function(a,b,c,d,e){return d-jQuery.easing.easeOutBounce(a,e-b,0,d,e)+c},easeOutBounce:function(a,b,c,d,e){return(b/=e)<1/2.75?7.5625*d*b*b+c:2/2.75>b?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:2.5/2.75>b?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(a,b,c,d,e){return e/2>b?.5*jQuery.easing.easeInBounce(a,2*b,0,d,e)+c:.5*jQuery.easing.easeOutBounce(a,2*b-e,0,d,e)+.5*d+c}}),jQuery.extend(jQuery.easing,{easeInOutMaterial:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:d/4*((b-=2)*b*b+2)+c}}),!function(a){function b(a){var b=a.length,d=c.type(a);return"function"===d||c.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===d||0===b||"number"==typeof b&&b>0&&b-1 in a}if(!a.jQuery){var c=function(a,b){return new c.fn.init(a,b)};c.isWindow=function(a){return null!=a&&a==a.window},c.type=function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?e[g.call(a)]||"object":typeof a},c.isArray=Array.isArray||function(a){return"array"===c.type(a)},c.isPlainObject=function(a){var b;if(!a||"object"!==c.type(a)||a.nodeType||c.isWindow(a))return!1;try{if(a.constructor&&!f.call(a,"constructor")&&!f.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(d){return!1}for(b in a);return void 0===b||f.call(a,b)},c.each=function(a,c,d){var e,f=0,g=a.length,h=b(a);if(d){if(h)for(;g>f&&(e=c.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=c.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=c.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=c.call(a[f],f,a[f]),e===!1)break;return a},c.data=function(a,b,e){if(void 0===e){var f=a[c.expando],g=f&&d[f];if(void 0===b)return g;if(g&&b in g)return g[b]}else if(void 0!==b){var f=a[c.expando]||(a[c.expando]=++c.uuid);return d[f]=d[f]||{},d[f][b]=e,e}},c.removeData=function(a,b){var e=a[c.expando],f=e&&d[e];f&&c.each(b,function(a,b){delete f[b]})},c.extend=function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[i]||{},i++),"object"!=typeof h&&"function"!==c.type(h)&&(h={}),i===j&&(h=this,i--);j>i;i++)if(null!=(f=arguments[i]))for(e in f)a=h[e],d=f[e],h!==d&&(k&&d&&(c.isPlainObject(d)||(b=c.isArray(d)))?(b?(b=!1,g=a&&c.isArray(a)?a:[]):g=a&&c.isPlainObject(a)?a:{},h[e]=c.extend(k,g,d)):void 0!==d&&(h[e]=d));return h},c.queue=function(a,d,e){function f(a,c){var d=c||[];return null!=a&&(b(Object(a))?!function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;)a[e++]=b[d++];if(c!==c)for(;void 0!==b[d];)a[e++]=b[d++];return a.length=e,a}(d,"string"==typeof a?[a]:a):[].push.call(d,a)),d}if(a){d=(d||"fx")+"queue";var g=c.data(a,d);return e?(!g||c.isArray(e)?g=c.data(a,d,f(e)):g.push(e),g):g||[]}},c.dequeue=function(a,b){c.each(a.nodeType?[a]:a,function(a,d){b=b||"fx";var e=c.queue(d,b),f=e.shift();"inprogress"===f&&(f=e.shift()),f&&("fx"===b&&e.unshift("inprogress"),f.call(d,function(){c.dequeue(d,b)}))})},c.fn=c.prototype={init:function(a){if(a.nodeType)return this[0]=a,this;throw new Error("Not a DOM node.")},offset:function(){var b=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:b.top+(a.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:b.left+(a.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function a(){for(var a=this.offsetParent||document;a&&"html"===!a.nodeType.toLowerCase&&"static"===a.style.position;)a=a.offsetParent;return a||document}var b=this[0],a=a.apply(b),d=this.offset(),e=/^(?:body|html)$/i.test(a.nodeName)?{top:0,left:0}:c(a).offset();return d.top-=parseFloat(b.style.marginTop)||0,d.left-=parseFloat(b.style.marginLeft)||0,a.style&&(e.top+=parseFloat(a.style.borderTopWidth)||0,e.left+=parseFloat(a.style.borderLeftWidth)||0),{top:d.top-e.top,left:d.left-e.left}}};var d={};c.expando="velocity"+(new Date).getTime(),c.uuid=0;for(var e={},f=e.hasOwnProperty,g=e.toString,h="Boolean Number String Function Array Date RegExp Object Error".split(" "),i=0;i<h.length;i++)e["[object "+h[i]+"]"]=h[i].toLowerCase();c.fn.init.prototype=c.fn,a.Velocity={Utilities:c}}}(window),function(a){"object"==typeof module&&"object"==typeof module.exports?module.exports=a():"function"==typeof define&&define.amd?define(a):a()}(function(){return function(a,b,c,d){function e(a){for(var b=-1,c=a?a.length:0,d=[];++b<c;){var e=a[b];e&&d.push(e)}return d}function f(a){return p.isWrapped(a)?a=[].slice.call(a):p.isNode(a)&&(a=[a]),a}function g(a){var b=m.data(a,"velocity");return null===b?d:b}function h(a){return function(b){return Math.round(b*a)*(1/a)}}function i(a,c,d,e){function f(a,b){return 1-3*b+3*a}function g(a,b){return 3*b-6*a}function h(a){return 3*a}function i(a,b,c){return((f(b,c)*a+g(b,c))*a+h(b))*a}function j(a,b,c){return 3*f(b,c)*a*a+2*g(b,c)*a+h(b)}function k(b,c){for(var e=0;p>e;++e){var f=j(c,a,d);if(0===f)return c;var g=i(c,a,d)-b;c-=g/f}return c}function l(){for(var b=0;t>b;++b)x[b]=i(b*u,a,d)}function m(b,c,e){var f,g,h=0;do g=c+(e-c)/2,f=i(g,a,d)-b,f>0?e=g:c=g;while(Math.abs(f)>r&&++h<s);return g}function n(b){for(var c=0,e=1,f=t-1;e!=f&&x[e]<=b;++e)c+=u;--e;var g=(b-x[e])/(x[e+1]-x[e]),h=c+g*u,i=j(h,a,d);return i>=q?k(b,h):0==i?h:m(b,c,c+u)}function o(){y=!0,(a!=c||d!=e)&&l()}var p=4,q=.001,r=1e-7,s=10,t=11,u=1/(t-1),v="Float32Array"in b;if(4!==arguments.length)return!1;for(var w=0;4>w;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;a=Math.min(a,1),d=Math.min(d,1),a=Math.max(a,0),d=Math.max(d,0);var x=v?new Float32Array(t):new Array(t),y=!1,z=function(b){return y||o(),a===c&&d===e?b:0===b?0:1===b?1:i(n(b),c,e)};z.getControlPoints=function(){return[{x:a,y:c},{x:d,y:e}]};var A="generateBezier("+[a,c,d,e]+")";return z.toString=function(){return A},z}function j(a,b){var c=a;return p.isString(a)?t.Easings[a]||(c=!1):c=p.isArray(a)&&1===a.length?h.apply(null,a):p.isArray(a)&&2===a.length?u.apply(null,a.concat([b])):p.isArray(a)&&4===a.length?i.apply(null,a):!1,c===!1&&(c=t.Easings[t.defaults.easing]?t.defaults.easing:s),c}function k(a){if(a){var b=(new Date).getTime(),c=t.State.calls.length;c>1e4&&(t.State.calls=e(t.State.calls));for(var f=0;c>f;f++)if(t.State.calls[f]){var h=t.State.calls[f],i=h[0],j=h[2],n=h[3],o=!!n,q=null;n||(n=t.State.calls[f][3]=b-16);for(var r=Math.min((b-n)/j.duration,1),s=0,u=i.length;u>s;s++){var w=i[s],y=w.element;if(g(y)){var z=!1;if(j.display!==d&&null!==j.display&&"none"!==j.display){if("flex"===j.display){var A=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];m.each(A,function(a,b){v.setPropertyValue(y,"display",b)})}v.setPropertyValue(y,"display",j.display)}j.visibility!==d&&"hidden"!==j.visibility&&v.setPropertyValue(y,"visibility",j.visibility);for(var B in w)if("element"!==B){var C,D=w[B],E=p.isString(D.easing)?t.Easings[D.easing]:D.easing;if(1===r)C=D.endValue;else{var F=D.endValue-D.startValue;if(C=D.startValue+F*E(r,j,F),!o&&C===D.currentValue)continue}if(D.currentValue=C,"tween"===B)q=C;else{if(v.Hooks.registered[B]){var G=v.Hooks.getRoot(B),H=g(y).rootPropertyValueCache[G];H&&(D.rootPropertyValue=H)}var I=v.setPropertyValue(y,B,D.currentValue+(0===parseFloat(C)?"":D.unitType),D.rootPropertyValue,D.scrollData);v.Hooks.registered[B]&&(g(y).rootPropertyValueCache[G]=v.Normalizations.registered[G]?v.Normalizations.registered[G]("extract",null,I[1]):I[1]),"transform"===I[0]&&(z=!0)}}j.mobileHA&&g(y).transformCache.translate3d===d&&(g(y).transformCache.translate3d="(0px, 0px, 0px)",z=!0),z&&v.flushTransformCache(y)}}j.display!==d&&"none"!==j.display&&(t.State.calls[f][2].display=!1),j.visibility!==d&&"hidden"!==j.visibility&&(t.State.calls[f][2].visibility=!1),j.progress&&j.progress.call(h[1],h[1],r,Math.max(0,n+j.duration-b),n,q),1===r&&l(f)}}t.State.isTicking&&x(k)}function l(a,b){if(!t.State.calls[a])return!1;for(var c=t.State.calls[a][0],e=t.State.calls[a][1],f=t.State.calls[a][2],h=t.State.calls[a][4],i=!1,j=0,k=c.length;k>j;j++){var l=c[j].element;if(b||f.loop||("none"===f.display&&v.setPropertyValue(l,"display",f.display),"hidden"===f.visibility&&v.setPropertyValue(l,"visibility",f.visibility)),f.loop!==!0&&(m.queue(l)[1]===d||!/\.velocityQueueEntryFlag/i.test(m.queue(l)[1]))&&g(l)){g(l).isAnimating=!1,g(l).rootPropertyValueCache={};var n=!1;m.each(v.Lists.transforms3D,function(a,b){var c=/^scale/.test(b)?1:0,e=g(l).transformCache[b];g(l).transformCache[b]!==d&&new RegExp("^\\("+c+"[^.]").test(e)&&(n=!0,delete g(l).transformCache[b])}),f.mobileHA&&(n=!0,delete g(l).transformCache.translate3d),n&&v.flushTransformCache(l),v.Values.removeClass(l,"velocity-animating")}if(!b&&f.complete&&!f.loop&&j===k-1)try{f.complete.call(e,e)}catch(o){setTimeout(function(){throw o},1)}h&&f.loop!==!0&&h(e),g(l)&&f.loop===!0&&!b&&(m.each(g(l).tweensContainer,function(a,b){/^rotate/.test(a)&&360===parseFloat(b.endValue)&&(b.endValue=0,b.startValue=360),/^backgroundPosition/.test(a)&&100===parseFloat(b.endValue)&&"%"===b.unitType&&(b.endValue=0,b.startValue=100)}),t(l,"reverse",{loop:!0,delay:f.delay})),f.queue!==!1&&m.dequeue(l,f.queue)}t.State.calls[a]=!1;for(var p=0,q=t.State.calls.length;q>p;p++)if(t.State.calls[p]!==!1){i=!0;break}i===!1&&(t.State.isTicking=!1,delete t.State.calls,t.State.calls=[])}var m,n=function(){if(c.documentMode)return c.documentMode;for(var a=7;a>4;a--){var b=c.createElement("div");if(b.innerHTML="<!--[if IE "+a+"]><span></span><![endif]-->",b.getElementsByTagName("span").length)return b=null,a}return d}(),o=function(){var a=0;return b.webkitRequestAnimationFrame||b.mozRequestAnimationFrame||function(b){var c,d=(new Date).getTime();return c=Math.max(0,16-(d-a)),a=d+c,setTimeout(function(){b(d+c)},c)}}(),p={isString:function(a){return"string"==typeof a},isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},isFunction:function(a){return"[object Function]"===Object.prototype.toString.call(a)},isNode:function(a){return a&&a.nodeType},isNodeList:function(a){return"object"==typeof a&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(a))&&a.length!==d&&(0===a.length||"object"==typeof a[0]&&a[0].nodeType>0)},isWrapped:function(a){return a&&(a.jquery||b.Zepto&&b.Zepto.zepto.isZ(a))},isSVG:function(a){return b.SVGElement&&a instanceof b.SVGElement},isEmptyObject:function(a){for(var b in a)return!1;return!0}},q=!1;if(a.fn&&a.fn.jquery?(m=a,q=!0):m=b.Velocity.Utilities,8>=n&&!q)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=n)return void(jQuery.fn.velocity=jQuery.fn.animate);var r=400,s="swing",t={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:b.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:c.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:m,Redirects:{},Easings:{},Promise:b.Promise,defaults:{queue:"",duration:r,easing:s,begin:d,complete:d,progress:d,display:d,visibility:d,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(a){m.data(a,"velocity",{isSVG:p.isSVG(a),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};b.pageYOffset!==d?(t.State.scrollAnchor=b,t.State.scrollPropertyLeft="pageXOffset",t.State.scrollPropertyTop="pageYOffset"):(t.State.scrollAnchor=c.documentElement||c.body.parentNode||c.body,t.State.scrollPropertyLeft="scrollLeft",t.State.scrollPropertyTop="scrollTop");var u=function(){function a(a){return-a.tension*a.x-a.friction*a.v}function b(b,c,d){var e={x:b.x+d.dx*c,v:b.v+d.dv*c,tension:b.tension,friction:b.friction};return{dx:e.v,dv:a(e)}}function c(c,d){var e={dx:c.v,dv:a(c)},f=b(c,.5*d,e),g=b(c,.5*d,f),h=b(c,d,g),i=1/6*(e.dx+2*(f.dx+g.dx)+h.dx),j=1/6*(e.dv+2*(f.dv+g.dv)+h.dv);return c.x=c.x+i*d,c.v=c.v+j*d,c}return function d(a,b,e){var f,g,h,i={x:-1,v:0,tension:null,friction:null},j=[0],k=0,l=1e-4,m=.016;for(a=parseFloat(a)||500,b=parseFloat(b)||20,e=e||null,i.tension=a,i.friction=b,f=null!==e,f?(k=d(a,b),g=k/e*m):g=m;h=c(h||i,g),j.push(1+h.x),k+=16,Math.abs(h.x)>l&&Math.abs(h.v)>l;);return f?function(a){return j[a*(j.length-1)|0]}:k}}();t.Easings={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},spring:function(a){return 1-Math.cos(4.5*a*Math.PI)*Math.exp(6*-a)}},m.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(a,b){t.Easings[b[0]]=i.apply(null,b[1])});var v=t.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var a=0;a<v.Lists.colors.length;a++){var b="color"===v.Lists.colors[a]?"0 0 0 1":"255 255 255 1";v.Hooks.templates[v.Lists.colors[a]]=["Red Green Blue Alpha",b]}var c,d,e;if(n)for(c in v.Hooks.templates){d=v.Hooks.templates[c],e=d[0].split(" ");var f=d[1].match(v.RegEx.valueSplit);"Color"===e[0]&&(e.push(e.shift()),f.push(f.shift()),v.Hooks.templates[c]=[e.join(" "),f.join(" ")])}for(c in v.Hooks.templates){d=v.Hooks.templates[c],e=d[0].split(" ");for(var a in e){var g=c+e[a],h=a;v.Hooks.registered[g]=[c,h]}}},getRoot:function(a){var b=v.Hooks.registered[a];return b?b[0]:a},cleanRootPropertyValue:function(a,b){return v.RegEx.valueUnwrap.test(b)&&(b=b.match(v.RegEx.valueUnwrap)[1]),v.Values.isCSSNullValue(b)&&(b=v.Hooks.templates[a][1]),b},extractValue:function(a,b){var c=v.Hooks.registered[a];if(c){var d=c[0],e=c[1];return b=v.Hooks.cleanRootPropertyValue(d,b),b.toString().match(v.RegEx.valueSplit)[e]}return b},injectValue:function(a,b,c){var d=v.Hooks.registered[a];if(d){var e,f,g=d[0],h=d[1];return c=v.Hooks.cleanRootPropertyValue(g,c),e=c.toString().match(v.RegEx.valueSplit),e[h]=b,f=e.join(" ")}return c}},Normalizations:{registered:{clip:function(a,b,c){switch(a){case"name":return"clip";case"extract":var d;return v.RegEx.wrappedValueAlreadyExtracted.test(c)?d=c:(d=c.toString().match(v.RegEx.valueUnwrap),d=d?d[1].replace(/,(\s+)?/g," "):c),d;case"inject":return"rect("+c+")"}},blur:function(a,b,c){switch(a){case"name":return t.State.isFirefox?"filter":"-webkit-filter";case"extract":var d=parseFloat(c);if(!d&&0!==d){var e=c.toString().match(/blur\(([0-9]+[A-z]+)\)/i);d=e?e[1]:0}return d;case"inject":return parseFloat(c)?"blur("+c+")":"none"}},opacity:function(a,b,c){if(8>=n)switch(a){case"name":return"filter";case"extract":var d=c.toString().match(/alpha\(opacity=(.*)\)/i);return c=d?d[1]/100:1;case"inject":return b.style.zoom=1,parseFloat(c)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(c),10)+")"}else switch(a){case"name":return"opacity";case"extract":return c;case"inject":return c}}},register:function(){9>=n||t.State.isGingerbread||(v.Lists.transformsBase=v.Lists.transformsBase.concat(v.Lists.transforms3D));for(var a=0;a<v.Lists.transformsBase.length;a++)!function(){var b=v.Lists.transformsBase[a];v.Normalizations.registered[b]=function(a,c,e){switch(a){case"name":return"transform";case"extract":return g(c)===d||g(c).transformCache[b]===d?/^scale/i.test(b)?1:0:g(c).transformCache[b].replace(/[()]/g,"");case"inject":var f=!1;switch(b.substr(0,b.length-1)){case"translate":f=!/(%|px|em|rem|vw|vh|\d)$/i.test(e);break;case"scal":case"scale":t.State.isAndroid&&g(c).transformCache[b]===d&&1>e&&(e=1),f=!/(\d)$/i.test(e);break;case"skew":f=!/(deg|\d)$/i.test(e);break;case"rotate":f=!/(deg|\d)$/i.test(e)}return f||(g(c).transformCache[b]="("+e+")"),g(c).transformCache[b]}}}();for(var a=0;a<v.Lists.colors.length;a++)!function(){var b=v.Lists.colors[a];v.Normalizations.registered[b]=function(a,c,e){switch(a){case"name":return b;case"extract":var f;if(v.RegEx.wrappedValueAlreadyExtracted.test(e))f=e;else{var g,h={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(e)?g=h[e]!==d?h[e]:h.black:v.RegEx.isHex.test(e)?g="rgb("+v.Values.hexToRgb(e).join(" ")+")":/^rgba?\(/i.test(e)||(g=h.black),f=(g||e).toString().match(v.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return 8>=n||3!==f.split(" ").length||(f+=" 1"),f;case"inject":return 8>=n?4===e.split(" ").length&&(e=e.split(/\s+/).slice(0,3).join(" ")):3===e.split(" ").length&&(e+=" 1"),(8>=n?"rgb":"rgba")+"("+e.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(a){return a.replace(/-(\w)/g,function(a,b){return b.toUpperCase()})},SVGAttribute:function(a){var b="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(n||t.State.isAndroid&&!t.State.isChrome)&&(b+="|transform"),new RegExp("^("+b+")$","i").test(a)},prefixCheck:function(a){if(t.State.prefixMatches[a])return[t.State.prefixMatches[a],!0];for(var b=["","Webkit","Moz","ms","O"],c=0,d=b.length;d>c;c++){var e;if(e=0===c?a:b[c]+a.replace(/^\w/,function(a){return a.toUpperCase()}),p.isString(t.State.prefixElement.style[e]))return t.State.prefixMatches[a]=e,[e,!0]}return[a,!1]}},Values:{hexToRgb:function(a){var b,c=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,d=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return a=a.replace(c,function(a,b,c,d){return b+b+c+c+d+d}),b=d.exec(a),b?[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]:[0,0,0]},isCSSNullValue:function(a){return 0==a||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(a)},getUnitType:function(a){return/^(rotate|skew)/i.test(a)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(a)?"":"px"},getDisplayType:function(a){var b=a&&a.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(b)?"inline":/^(li)$/i.test(b)?"list-item":/^(tr)$/i.test(b)?"table-row":/^(table)$/i.test(b)?"table":/^(tbody)$/i.test(b)?"table-row-group":"block"},addClass:function(a,b){a.classList?a.classList.add(b):a.className+=(a.className.length?" ":"")+b},removeClass:function(a,b){a.classList?a.classList.remove(b):a.className=a.className.toString().replace(new RegExp("(^|\\s)"+b.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(a,c,e,f){function h(a,c){function e(){j&&v.setPropertyValue(a,"display","none")}var i=0;if(8>=n)i=m.css(a,c);else{var j=!1;if(/^(width|height)$/.test(c)&&0===v.getPropertyValue(a,"display")&&(j=!0,v.setPropertyValue(a,"display",v.Values.getDisplayType(a))),!f){if("height"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var k=a.offsetHeight-(parseFloat(v.getPropertyValue(a,"borderTopWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderBottomWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingTop"))||0)-(parseFloat(v.getPropertyValue(a,"paddingBottom"))||0);return e(),k}if("width"===c&&"border-box"!==v.getPropertyValue(a,"boxSizing").toString().toLowerCase()){var l=a.offsetWidth-(parseFloat(v.getPropertyValue(a,"borderLeftWidth"))||0)-(parseFloat(v.getPropertyValue(a,"borderRightWidth"))||0)-(parseFloat(v.getPropertyValue(a,"paddingLeft"))||0)-(parseFloat(v.getPropertyValue(a,"paddingRight"))||0);return e(),l}}var o;o=g(a)===d?b.getComputedStyle(a,null):g(a).computedStyle?g(a).computedStyle:g(a).computedStyle=b.getComputedStyle(a,null),"borderColor"===c&&(c="borderTopColor"),i=9===n&&"filter"===c?o.getPropertyValue(c):o[c],(""===i||null===i)&&(i=a.style[c]),e()}if("auto"===i&&/^(top|right|bottom|left)$/i.test(c)){var p=h(a,"position");("fixed"===p||"absolute"===p&&/top|left/i.test(c))&&(i=m(a).position()[c]+"px")}return i}var i;if(v.Hooks.registered[c]){var j=c,k=v.Hooks.getRoot(j);e===d&&(e=v.getPropertyValue(a,v.Names.prefixCheck(k)[0])),v.Normalizations.registered[k]&&(e=v.Normalizations.registered[k]("extract",a,e)),i=v.Hooks.extractValue(j,e)}else if(v.Normalizations.registered[c]){var l,o;l=v.Normalizations.registered[c]("name",a),"transform"!==l&&(o=h(a,v.Names.prefixCheck(l)[0]),v.Values.isCSSNullValue(o)&&v.Hooks.templates[c]&&(o=v.Hooks.templates[c][1])),i=v.Normalizations.registered[c]("extract",a,o)}if(!/^[\d-]/.test(i))if(g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c))if(/^(height|width)$/i.test(c))try{i=a.getBBox()[c]}catch(p){i=0}else i=a.getAttribute(c);else i=h(a,v.Names.prefixCheck(c)[0]);return v.Values.isCSSNullValue(i)&&(i=0),t.debug>=2&&console.log("Get "+c+": "+i),i},setPropertyValue:function(a,c,d,e,f){var h=c;if("scroll"===c)f.container?f.container["scroll"+f.direction]=d:"Left"===f.direction?b.scrollTo(d,f.alternateValue):b.scrollTo(f.alternateValue,d);else if(v.Normalizations.registered[c]&&"transform"===v.Normalizations.registered[c]("name",a))v.Normalizations.registered[c]("inject",a,d),h="transform",d=g(a).transformCache[c];else{if(v.Hooks.registered[c]){var i=c,j=v.Hooks.getRoot(c);e=e||v.getPropertyValue(a,j),d=v.Hooks.injectValue(i,d,e),c=j}if(v.Normalizations.registered[c]&&(d=v.Normalizations.registered[c]("inject",a,d),c=v.Normalizations.registered[c]("name",a)),h=v.Names.prefixCheck(c)[0],8>=n)try{a.style[h]=d}catch(k){t.debug&&console.log("Browser does not support ["+d+"] for ["+h+"]")}else g(a)&&g(a).isSVG&&v.Names.SVGAttribute(c)?a.setAttribute(c,d):a.style[h]=d;t.debug>=2&&console.log("Set "+c+" ("+h+"): "+d)}return[h,d]},flushTransformCache:function(a){function b(b){return parseFloat(v.getPropertyValue(a,b))}var c="";if((n||t.State.isAndroid&&!t.State.isChrome)&&g(a).isSVG){var d={translate:[b("translateX"),b("translateY")],skewX:[b("skewX")],skewY:[b("skewY")],scale:1!==b("scale")?[b("scale"),b("scale")]:[b("scaleX"),b("scaleY")],rotate:[b("rotateZ"),0,0]};m.each(g(a).transformCache,function(a){/^translate/i.test(a)?a="translate":/^scale/i.test(a)?a="scale":/^rotate/i.test(a)&&(a="rotate"),d[a]&&(c+=a+"("+d[a].join(" ")+") ",delete d[a])})}else{var e,f;m.each(g(a).transformCache,function(b){return e=g(a).transformCache[b],"transformPerspective"===b?(f=e,!0):(9===n&&"rotateZ"===b&&(b="rotate"),void(c+=b+e+" "))}),f&&(c="perspective"+f+" "+c)}v.setPropertyValue(a,"transform",c)}};v.Hooks.register(),v.Normalizations.register(),t.hook=function(a,b,c){var e=d;return a=f(a),m.each(a,function(a,f){if(g(f)===d&&t.init(f),c===d)e===d&&(e=t.CSS.getPropertyValue(f,b));else{var h=t.CSS.setPropertyValue(f,b,c);"transform"===h[0]&&t.CSS.flushTransformCache(f),e=h}}),e};var w=function(){function a(){return h?B.promise||null:i}function e(){function a(a){function l(a,b){var c=d,e=d,g=d;return p.isArray(a)?(c=a[0],!p.isArray(a[1])&&/^[\d-]/.test(a[1])||p.isFunction(a[1])||v.RegEx.isHex.test(a[1])?g=a[1]:(p.isString(a[1])&&!v.RegEx.isHex.test(a[1])||p.isArray(a[1]))&&(e=b?a[1]:j(a[1],h.duration),a[2]!==d&&(g=a[2]))):c=a,b||(e=e||h.easing),p.isFunction(c)&&(c=c.call(f,y,x)),p.isFunction(g)&&(g=g.call(f,y,x)),[c||0,e,g]}function n(a,b){var c,d;return d=(b||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(a){return c=a,""}),c||(c=v.Values.getUnitType(a)),[d,c]}function r(){var a={myParent:f.parentNode||c.body,position:v.getPropertyValue(f,"position"),fontSize:v.getPropertyValue(f,"fontSize")},d=a.position===I.lastPosition&&a.myParent===I.lastParent,e=a.fontSize===I.lastFontSize;I.lastParent=a.myParent,I.lastPosition=a.position,I.lastFontSize=a.fontSize;var h=100,i={};if(e&&d)i.emToPx=I.lastEmToPx,i.percentToPxWidth=I.lastPercentToPxWidth,i.percentToPxHeight=I.lastPercentToPxHeight;else{var j=g(f).isSVG?c.createElementNS("http://www.w3.org/2000/svg","rect"):c.createElement("div");t.init(j),a.myParent.appendChild(j),m.each(["overflow","overflowX","overflowY"],function(a,b){t.CSS.setPropertyValue(j,b,"hidden")}),t.CSS.setPropertyValue(j,"position",a.position),t.CSS.setPropertyValue(j,"fontSize",a.fontSize),t.CSS.setPropertyValue(j,"boxSizing","content-box"),m.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(a,b){t.CSS.setPropertyValue(j,b,h+"%")}),t.CSS.setPropertyValue(j,"paddingLeft",h+"em"),i.percentToPxWidth=I.lastPercentToPxWidth=(parseFloat(v.getPropertyValue(j,"width",null,!0))||1)/h,i.percentToPxHeight=I.lastPercentToPxHeight=(parseFloat(v.getPropertyValue(j,"height",null,!0))||1)/h,i.emToPx=I.lastEmToPx=(parseFloat(v.getPropertyValue(j,"paddingLeft"))||1)/h,a.myParent.removeChild(j)}return null===I.remToPx&&(I.remToPx=parseFloat(v.getPropertyValue(c.body,"fontSize"))||16),null===I.vwToPx&&(I.vwToPx=parseFloat(b.innerWidth)/100,I.vhToPx=parseFloat(b.innerHeight)/100),i.remToPx=I.remToPx,i.vwToPx=I.vwToPx,i.vhToPx=I.vhToPx,t.debug>=1&&console.log("Unit ratios: "+JSON.stringify(i),f),i}if(h.begin&&0===y)try{h.begin.call(o,o)}catch(u){setTimeout(function(){throw u},1)}if("scroll"===C){var w,z,A,D=/^x$/i.test(h.axis)?"Left":"Top",E=parseFloat(h.offset)||0;h.container?p.isWrapped(h.container)||p.isNode(h.container)?(h.container=h.container[0]||h.container,w=h.container["scroll"+D],A=w+m(f).position()[D.toLowerCase()]+E):h.container=null:(w=t.State.scrollAnchor[t.State["scrollProperty"+D]],z=t.State.scrollAnchor[t.State["scrollProperty"+("Left"===D?"Top":"Left")]],A=m(f).offset()[D.toLowerCase()]+E),i={scroll:{rootPropertyValue:!1,startValue:w,currentValue:w,endValue:A,unitType:"",easing:h.easing,scrollData:{container:h.container,direction:D,alternateValue:z}},element:f},t.debug&&console.log("tweensContainer (scroll): ",i.scroll,f)}else if("reverse"===C){if(!g(f).tweensContainer)return void m.dequeue(f,h.queue);"none"===g(f).opts.display&&(g(f).opts.display="auto"),"hidden"===g(f).opts.visibility&&(g(f).opts.visibility="visible"),g(f).opts.loop=!1,g(f).opts.begin=null,g(f).opts.complete=null,s.easing||delete h.easing,s.duration||delete h.duration,h=m.extend({},g(f).opts,h);var F=m.extend(!0,{},g(f).tweensContainer);for(var G in F)if("element"!==G){var H=F[G].startValue;F[G].startValue=F[G].currentValue=F[G].endValue,F[G].endValue=H,p.isEmptyObject(s)||(F[G].easing=h.easing),t.debug&&console.log("reverse tweensContainer ("+G+"): "+JSON.stringify(F[G]),f)}i=F}else if("start"===C){var F;g(f).tweensContainer&&g(f).isAnimating===!0&&(F=g(f).tweensContainer),m.each(q,function(a,b){if(RegExp("^"+v.Lists.colors.join("$|^")+"$").test(a)){var c=l(b,!0),e=c[0],f=c[1],g=c[2];if(v.RegEx.isHex.test(e)){for(var h=["Red","Green","Blue"],i=v.Values.hexToRgb(e),j=g?v.Values.hexToRgb(g):d,k=0;k<h.length;k++){var m=[i[k]];f&&m.push(f),j!==d&&m.push(j[k]),q[a+h[k]]=m}delete q[a]}}});for(var K in q){var L=l(q[K]),M=L[0],N=L[1],O=L[2];K=v.Names.camelCase(K);var P=v.Hooks.getRoot(K),Q=!1;if(g(f).isSVG||"tween"===P||v.Names.prefixCheck(P)[1]!==!1||v.Normalizations.registered[P]!==d){(h.display!==d&&null!==h.display&&"none"!==h.display||h.visibility!==d&&"hidden"!==h.visibility)&&/opacity|filter/.test(K)&&!O&&0!==M&&(O=0),h._cacheValues&&F&&F[K]?(O===d&&(O=F[K].endValue+F[K].unitType),Q=g(f).rootPropertyValueCache[P]):v.Hooks.registered[K]?O===d?(Q=v.getPropertyValue(f,P),O=v.getPropertyValue(f,K,Q)):Q=v.Hooks.templates[P][1]:O===d&&(O=v.getPropertyValue(f,K));var R,S,T,U=!1;if(R=n(K,O),O=R[0],T=R[1],R=n(K,M),M=R[0].replace(/^([+-\/*])=/,function(a,b){return U=b,""}),S=R[1],O=parseFloat(O)||0,M=parseFloat(M)||0,"%"===S&&(/^(fontSize|lineHeight)$/.test(K)?(M/=100,S="em"):/^scale/.test(K)?(M/=100,S=""):/(Red|Green|Blue)$/i.test(K)&&(M=M/100*255,S="")),/[\/*]/.test(U))S=T;else if(T!==S&&0!==O)if(0===M)S=T;else{e=e||r();var V=/margin|padding|left|right|width|text|word|letter/i.test(K)||/X$/.test(K)||"x"===K?"x":"y";switch(T){case"%":O*="x"===V?e.percentToPxWidth:e.percentToPxHeight;break;case"px":break;default:O*=e[T+"ToPx"]}switch(S){case"%":O*=1/("x"===V?e.percentToPxWidth:e.percentToPxHeight);break;case"px":break;default: | ||
7 | O*=1/e[S+"ToPx"]}}switch(U){case"+":M=O+M;break;case"-":M=O-M;break;case"*":M=O*M;break;case"/":M=O/M}i[K]={rootPropertyValue:Q,startValue:O,currentValue:O,endValue:M,unitType:S,easing:N},t.debug&&console.log("tweensContainer ("+K+"): "+JSON.stringify(i[K]),f)}else t.debug&&console.log("Skipping ["+P+"] due to a lack of browser support.")}i.element=f}i.element&&(v.Values.addClass(f,"velocity-animating"),J.push(i),""===h.queue&&(g(f).tweensContainer=i,g(f).opts=h),g(f).isAnimating=!0,y===x-1?(t.State.calls.push([J,o,h,null,B.resolver]),t.State.isTicking===!1&&(t.State.isTicking=!0,k())):y++)}var e,f=this,h=m.extend({},t.defaults,s),i={};switch(g(f)===d&&t.init(f),parseFloat(h.delay)&&h.queue!==!1&&m.queue(f,h.queue,function(a){t.velocityQueueEntryFlag=!0,g(f).delayTimer={setTimeout:setTimeout(a,parseFloat(h.delay)),next:a}}),h.duration.toString().toLowerCase()){case"fast":h.duration=200;break;case"normal":h.duration=r;break;case"slow":h.duration=600;break;default:h.duration=parseFloat(h.duration)||1}t.mock!==!1&&(t.mock===!0?h.duration=h.delay=1:(h.duration*=parseFloat(t.mock)||1,h.delay*=parseFloat(t.mock)||1)),h.easing=j(h.easing,h.duration),h.begin&&!p.isFunction(h.begin)&&(h.begin=null),h.progress&&!p.isFunction(h.progress)&&(h.progress=null),h.complete&&!p.isFunction(h.complete)&&(h.complete=null),h.display!==d&&null!==h.display&&(h.display=h.display.toString().toLowerCase(),"auto"===h.display&&(h.display=t.CSS.Values.getDisplayType(f))),h.visibility!==d&&null!==h.visibility&&(h.visibility=h.visibility.toString().toLowerCase()),h.mobileHA=h.mobileHA&&t.State.isMobile&&!t.State.isGingerbread,h.queue===!1?h.delay?setTimeout(a,h.delay):a():m.queue(f,h.queue,function(b,c){return c===!0?(B.promise&&B.resolver(o),!0):(t.velocityQueueEntryFlag=!0,void a(b))}),""!==h.queue&&"fx"!==h.queue||"inprogress"===m.queue(f)[0]||m.dequeue(f)}var h,i,n,o,q,s,u=arguments[0]&&(arguments[0].p||m.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||p.isString(arguments[0].properties));if(p.isWrapped(this)?(h=!1,n=0,o=this,i=this):(h=!0,n=1,o=u?arguments[0].elements||arguments[0].e:arguments[0]),o=f(o)){u?(q=arguments[0].properties||arguments[0].p,s=arguments[0].options||arguments[0].o):(q=arguments[n],s=arguments[n+1]);var x=o.length,y=0;if(!/^(stop|finish)$/i.test(q)&&!m.isPlainObject(s)){var z=n+1;s={};for(var A=z;A<arguments.length;A++)p.isArray(arguments[A])||!/^(fast|normal|slow)$/i.test(arguments[A])&&!/^\d/.test(arguments[A])?p.isString(arguments[A])||p.isArray(arguments[A])?s.easing=arguments[A]:p.isFunction(arguments[A])&&(s.complete=arguments[A]):s.duration=arguments[A]}var B={promise:null,resolver:null,rejecter:null};h&&t.Promise&&(B.promise=new t.Promise(function(a,b){B.resolver=a,B.rejecter=b}));var C;switch(q){case"scroll":C="scroll";break;case"reverse":C="reverse";break;case"finish":case"stop":m.each(o,function(a,b){g(b)&&g(b).delayTimer&&(clearTimeout(g(b).delayTimer.setTimeout),g(b).delayTimer.next&&g(b).delayTimer.next(),delete g(b).delayTimer)});var D=[];return m.each(t.State.calls,function(a,b){b&&m.each(b[1],function(c,e){var f=s===d?"":s;return f===!0||b[2].queue===f||s===d&&b[2].queue===!1?void m.each(o,function(c,d){d===e&&((s===!0||p.isString(s))&&(m.each(m.queue(d,p.isString(s)?s:""),function(a,b){p.isFunction(b)&&b(null,!0)}),m.queue(d,p.isString(s)?s:"",[])),"stop"===q?(g(d)&&g(d).tweensContainer&&f!==!1&&m.each(g(d).tweensContainer,function(a,b){b.endValue=b.currentValue}),D.push(a)):"finish"===q&&(b[2].duration=1))}):!0})}),"stop"===q&&(m.each(D,function(a,b){l(b,!0)}),B.promise&&B.resolver(o)),a();default:if(!m.isPlainObject(q)||p.isEmptyObject(q)){if(p.isString(q)&&t.Redirects[q]){var E=m.extend({},s),F=E.duration,G=E.delay||0;return E.backwards===!0&&(o=m.extend(!0,[],o).reverse()),m.each(o,function(a,b){parseFloat(E.stagger)?E.delay=G+parseFloat(E.stagger)*a:p.isFunction(E.stagger)&&(E.delay=G+E.stagger.call(b,a,x)),E.drag&&(E.duration=parseFloat(F)||(/^(callout|transition)/.test(q)?1e3:r),E.duration=Math.max(E.duration*(E.backwards?1-a/x:(a+1)/x),.75*E.duration,200)),t.Redirects[q].call(b,b,E||{},a,x,o,B.promise?B:d)}),a()}var H="Velocity: First argument ("+q+") was not a property map, a known action, or a registered redirect. Aborting.";return B.promise?B.rejecter(new Error(H)):console.log(H),a()}C="start"}var I={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},J=[];m.each(o,function(a,b){p.isNode(b)&&e.call(b)});var K,E=m.extend({},t.defaults,s);if(E.loop=parseInt(E.loop),K=2*E.loop-1,E.loop)for(var L=0;K>L;L++){var M={delay:E.delay,progress:E.progress};L===K-1&&(M.display=E.display,M.visibility=E.visibility,M.complete=E.complete),w(o,"reverse",M)}return a()}};t=m.extend(w,t),t.animate=w;var x=b.requestAnimationFrame||o;return t.State.isMobile||c.hidden===d||c.addEventListener("visibilitychange",function(){c.hidden?(x=function(a){return setTimeout(function(){a(!0)},16)},k()):x=b.requestAnimationFrame||o}),a.Velocity=t,a!==b&&(a.fn.velocity=w,a.fn.velocity.defaults=t.defaults),m.each(["Down","Up"],function(a,b){t.Redirects["slide"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j=i.begin,k=i.complete,l={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},n={};i.display===d&&(i.display="Down"===b?"inline"===t.CSS.Values.getDisplayType(a)?"inline-block":"block":"none"),i.begin=function(){j&&j.call(g,g);for(var c in l){n[c]=a.style[c];var d=t.CSS.getPropertyValue(a,c);l[c]="Down"===b?[d,0]:[0,d]}n.overflow=a.style.overflow,a.style.overflow="hidden"},i.complete=function(){for(var b in n)a.style[b]=n[b];k&&k.call(g,g),h&&h.resolver(g)},t(a,l,i)}}),m.each(["In","Out"],function(a,b){t.Redirects["fade"+b]=function(a,c,e,f,g,h){var i=m.extend({},c),j={opacity:"In"===b?1:0},k=i.complete;i.complete=e!==f-1?i.begin=null:function(){k&&k.call(g,g),h&&h.resolver(g)},i.display===d&&(i.display="In"===b?"auto":"none"),t(this,j,i)}}),t}(window.jQuery||window.Zepto||window,window,document)}),!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==ka?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ia.length;){if(c=ia[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return oa++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:ra?N:sa?Q:qa?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&ya&&0===d-e,g=b&(Aa|Ba)&&0===d-e;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=na(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===ya||f.eventType===Aa)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ba&&(i>xa||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=ma(l.x)>ma(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:la(a.pointers[c].clientX),clientY:la(a.pointers[c].clientY)},c++;return{timeStamp:na(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:la(a[0].clientX),y:la(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:la(c/b),y:la(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Ca:ma(a)>=ma(b)?a>0?Da:Ea:b>0?Fa:Ga}function I(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Ka);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],La)-J(a[1],a[0],La)}function L(a,b){return I(b[0],b[1],La)/I(a[0],a[1],La)}function M(){this.evEl=Na,this.evWin=Oa,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Ra,this.evWin=Sa,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ua,this.evWin=Va,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Aa|Ba)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xa,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(ya|za)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===ya)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Aa|Ba)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bb))return bb;var b=q(a,cb),c=q(a,db);return b&&c?cb+" "+db:b||c?b?cb:db:q(a,ab)?ab:_a}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=eb,this.simultaneous={},this.requireFail=[]}function W(a){return a&jb?"cancel":a&hb?"end":a&gb?"move":a&fb?"start":""}function X(a){return a==Ga?"down":a==Fa?"up":a==Da?"left":a==Ea?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function aa(){V.apply(this,arguments),this._timer=null,this._input=null}function ba(){Z.apply(this,arguments)}function ca(){Z.apply(this,arguments)}function da(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ea(a,b){return b=b||{},b.recognizers=m(b.recognizers,ea.defaults.preset),new fa(a,b)}function fa(a,b){b=b||{},this.options=i(b,ea.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),ga(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ga(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function ha(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ia=["","webkit","moz","MS","ms","o"],ja=b.createElement("div"),ka="function",la=Math.round,ma=Math.abs,na=Date.now,oa=1,pa=/mobile|tablet|ip(ad|hone|od)|android/i,qa="ontouchstart"in a,ra=v(a,"PointerEvent")!==d,sa=qa&&pa.test(navigator.userAgent),ta="touch",ua="pen",va="mouse",wa="kinect",xa=25,ya=1,za=2,Aa=4,Ba=8,Ca=1,Da=2,Ea=4,Fa=8,Ga=16,Ha=Da|Ea,Ia=Fa|Ga,Ja=Ha|Ia,Ka=["x","y"],La=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Ma={mousedown:ya,mousemove:za,mouseup:Aa},Na="mousedown",Oa="mousemove mouseup";j(M,y,{handler:function(a){var b=Ma[a.type];b&ya&&0===a.button&&(this.pressed=!0),b&za&&1!==a.which&&(b=Aa),this.pressed&&this.allow&&(b&Aa&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:va,srcEvent:a}))}});var Pa={pointerdown:ya,pointermove:za,pointerup:Aa,pointercancel:Ba,pointerout:Ba},Qa={2:ta,3:ua,4:va,5:wa},Ra="pointerdown",Sa="pointermove pointerup pointercancel";a.MSPointerEvent&&(Ra="MSPointerDown",Sa="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pa[d],f=Qa[a.pointerType]||a.pointerType,g=f==ta,h=s(b,a.pointerId,"pointerId");e&ya&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Aa|Ba)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Ta={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Ua="touchstart",Va="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Ta[a.type];if(b===ya&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Aa|Ba)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}});var Wa={touchstart:ya,touchmove:za,touchend:Aa,touchcancel:Ba},Xa="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wa[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:ta,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==ta,e=c.pointerType==va;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Aa|Ba)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Ya=v(ja.style,"touchAction"),Za=Ya!==d,$a="compute",_a="auto",ab="manipulation",bb="none",cb="pan-x",db="pan-y";T.prototype={set:function(a){a==$a&&(a=this.compute()),Za&&(this.manager.element.style[Ya]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Za){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bb),f=q(d,db),g=q(d,cb);return e||f&&c&Ha||g&&c&Ia?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var eb=1,fb=2,gb=4,hb=8,ib=hb,jb=16,kb=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hb>d&&b(!0),b(),d>=hb&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kb|eb)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ib|jb|kb)&&(this.state=eb),this.state=this.process(b),void(this.state&(fb|gb|hb|jb)&&this.tryEmit(b))):(this.reset(),void(this.state=kb))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fb|gb),e=this.attrTest(a);return d&&(c&Ba||!e)?b|jb:d||e?c&Aa?b|hb:b&fb?b|gb:fb:kb}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Ja},getTouchAction:function(){var a=this.options.direction,b=[];return a&Ha&&b.push(db),a&Ia&&b.push(cb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Ha?(e=0===f?Ca:0>f?Da:Ea,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ca:0>g?Fa:Ga,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fb||!(this.state&fb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(aa,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_a]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Aa|Ba)&&!f)this.reset();else if(a.eventType&ya)this.reset(),this._timer=e(function(){this.state=ib,this.tryEmit()},b.time,this);else if(a.eventType&Aa)return ib;return kb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ib&&(a&&a.eventType&Aa?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=na(),this.manager.emit(this.options.event,this._input)))}}),j(ba,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fb)}}),j(ca,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Ha|Ia,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Ha|Ia)?b=a.velocity:c&Ha?b=a.velocityX:c&Ia&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&ma(b)>this.options.velocity&&a.eventType&Aa},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(da,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ab]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&ya&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Aa)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ib,this.tryEmit()},b.interval,this),fb):ib}return kb},failTimeout:function(){return this._timer=e(function(){this.state=kb},this.options.interval,this),kb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ib&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ea.VERSION="2.0.4",ea.defaults={domEvents:!1,touchAction:$a,enable:!0,inputTarget:null,inputClass:null,preset:[[ba,{enable:!1}],[_,{enable:!1},["rotate"]],[ca,{direction:Ha}],[$,{direction:Ha},["swipe"]],[da],[da,{event:"doubletap",taps:2},["tap"]],[aa]],cssProps:{userSelect:"default",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lb=1,mb=2;fa.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mb:lb},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ib)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fb|gb|hb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&ha(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ga(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(ea,{INPUT_START:ya,INPUT_MOVE:za,INPUT_END:Aa,INPUT_CANCEL:Ba,STATE_POSSIBLE:eb,STATE_BEGAN:fb,STATE_CHANGED:gb,STATE_ENDED:hb,STATE_RECOGNIZED:ib,STATE_CANCELLED:jb,STATE_FAILED:kb,DIRECTION_NONE:Ca,DIRECTION_LEFT:Da,DIRECTION_RIGHT:Ea,DIRECTION_UP:Fa,DIRECTION_DOWN:Ga,DIRECTION_HORIZONTAL:Ha,DIRECTION_VERTICAL:Ia,DIRECTION_ALL:Ja,Manager:fa,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:da,Pan:$,Swipe:ca,Pinch:_,Rotate:ba,Press:aa,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==ka&&define.amd?define(function(){return ea}):"undefined"!=typeof module&&module.exports?module.exports=ea:a[c]=ea}(window,document,"Hammer"),function(a){"function"==typeof define&&define.amd?define(["jquery","hammerjs"],a):"object"==typeof exports?a(require("jquery"),require("hammerjs")):a(jQuery,Hammer)}(function(a,b){function c(c,d){var e=a(c);e.data("hammer")||e.data("hammer",new b(e[0],d))}a.fn.hammer=function(a){return this.each(function(){c(this,a)})},b.Manager.prototype.emit=function(b){return function(c,d){b.call(this,c,d),a(this.element).trigger({type:c,gesture:d})}}(b.Manager.prototype.emit)}),window.Materialize={},Materialize.guid=function(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}}(),Materialize.elementOrParentIsFixed=function(a){var b=$(a),c=b.add(b.parents()),d=!1;return c.each(function(){return"fixed"===$(this).css("position")?(d=!0,!1):void 0}),d};var Vel;Vel=$?$.Velocity:Velocity,function(a){a.fn.collapsible=function(b){var c={accordion:void 0};return b=a.extend(c,b),this.each(function(){function c(b){h=g.find("> li > .collapsible-header"),b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}),h.not(b).removeClass("active").parent().removeClass("active"),h.not(b).parent().children(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function d(b){b.hasClass("active")?b.parent().addClass("active"):b.parent().removeClass("active"),b.parent().hasClass("active")?b.siblings(".collapsible-body").stop(!0,!1).slideDown({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}}):b.siblings(".collapsible-body").stop(!0,!1).slideUp({duration:350,easing:"easeOutQuart",queue:!1,complete:function(){a(this).css("height","")}})}function e(a){var b=f(a);return b.length>0}function f(a){return a.closest("li > .collapsible-header")}var g=a(this),h=a(this).find("> li > .collapsible-header"),i=g.data("collapsible");g.off("click.collapse",".collapsible-header"),h.off("click.collapse"),b.accordion||"accordion"===i||void 0===i?(h=g.find("> li > .collapsible-header"),h.on("click.collapse",function(b){var d=a(b.target);e(d)&&(d=f(d)),d.toggleClass("active"),c(d)}),c(h.filter(".active").first())):h.each(function(){a(this).on("click.collapse",function(b){var c=a(b.target);e(c)&&(c=f(c)),c.toggleClass("active"),d(c)}),a(this).hasClass("active")&&d(a(this))})})},a(document).ready(function(){a(".collapsible").collapsible()})}(jQuery),function(a){a.fn.scrollTo=function(b){return a(this).scrollTop(a(this).scrollTop()-a(this).offset().top+a(b).offset().top),this},a.fn.dropdown=function(b){var c={inDuration:300,outDuration:225,constrain_width:!0,hover:!1,gutter:0,belowOrigin:!1,alignment:"left"};this.each(function(){function d(){void 0!==g.data("induration")&&(h.inDuration=g.data("inDuration")),void 0!==g.data("outduration")&&(h.outDuration=g.data("outDuration")),void 0!==g.data("constrainwidth")&&(h.constrain_width=g.data("constrainwidth")),void 0!==g.data("hover")&&(h.hover=g.data("hover")),void 0!==g.data("gutter")&&(h.gutter=g.data("gutter")),void 0!==g.data("beloworigin")&&(h.belowOrigin=g.data("beloworigin")),void 0!==g.data("alignment")&&(h.alignment=g.data("alignment"))}function e(){d(),i.addClass("active"),h.constrain_width===!0?i.css("width",g.outerWidth()):i.css("white-space","nowrap");var b=0;h.belowOrigin===!0&&(b=g.height());var c,e,f,j=g.offset().left;if(j+i.innerWidth()>a(window).width()?h.alignment="right":j-i.innerWidth()+g.innerWidth()<0&&(h.alignment="left"),"left"===h.alignment)e=0,f=h.gutter,c=g.position().left+e+f,i.css({left:c});else if("right"===h.alignment){a(window).width()-j-g.innerWidth();e=0,f=h.gutter,c=a(window).width()-g.position().left-g.innerWidth()+f,i.css({right:c})}i.css({position:"absolute",top:g.position().top+b}),i.stop(!0,!0).css("opacity",0).slideDown({queue:!1,duration:h.inDuration,easing:"easeOutCubic",complete:function(){a(this).css("height","")}}).animate({opacity:1},{queue:!1,duration:h.inDuration,easing:"easeOutSine"})}function f(){i.fadeOut(h.outDuration),i.removeClass("active")}var g=a(this),h=a.extend({},c,b),i=a("#"+g.attr("data-activates"));if(d(),g.after(i),h.hover){var j=!1;g.unbind("click."+g.attr("id")),g.on("mouseenter",function(a){j===!1&&(e(),j=!0)}),g.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-content").is(i)||(i.stop(!0,!0),f(),j=!1)}),i.on("mouseleave",function(b){var c=b.toElement||b.relatedTarget;a(c).closest(".dropdown-button").is(g)||(i.stop(!0,!0),f(),j=!1)})}else g.unbind("click."+g.attr("id")),g.bind("click."+g.attr("id"),function(b){g[0]==b.currentTarget&&0===a(b.target).closest(".dropdown-content").length?(b.preventDefault(),e()):g.hasClass("active")&&(f(),a(document).unbind("click."+i.attr("id"))),i.hasClass("active")&&a(document).bind("click."+i.attr("id"),function(b){!i.is(b.target)&&!g.is(b.target)&&!g.find(b.target).length>0&&(f(),a(document).unbind("click."+i.attr("id")))})});g.on("open",e),g.on("close",f)})},a(document).ready(function(){a(".dropdown-button").dropdown()})}(jQuery),function(a){var b=0,c=0,d=function(){return c++,"materialize-lean-overlay-"+c};a.fn.extend({openModal:function(c){a("body").css("overflow","hidden");var e={opacity:.5,in_duration:350,out_duration:250,ready:void 0,complete:void 0,dismissible:!0,starting_top:"4%"},f=d(),g=a(this),h=a('<div class="lean-overlay"></div>'),i=++b;h.attr("id",f).css("z-index",1e3+2*i),g.data("overlay-id",f).css("z-index",1e3+2*i+1),a("body").append(h),c=a.extend(e,c),c.dismissible&&(h.click(function(){g.closeModal(c)}),a(document).on("keyup.leanModal"+f,function(a){27===a.keyCode&&g.closeModal(c)})),g.find(".modal-close").on("click.close",function(a){g.closeModal(c)}),h.css({display:"block",opacity:0}),g.css({display:"block",opacity:0}),h.velocity({opacity:c.opacity},{duration:c.in_duration,queue:!1,ease:"easeOutCubic"}),g.data("associated-overlay",h[0]),g.hasClass("bottom-sheet")?g.velocity({bottom:"0",opacity:1},{duration:c.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof c.ready&&c.ready()}}):(a.Velocity.hook(g,"scaleX",.7),g.css({top:c.starting_top}),g.velocity({top:"10%",opacity:1,scaleX:"1"},{duration:c.in_duration,queue:!1,ease:"easeOutCubic",complete:function(){"function"==typeof c.ready&&c.ready()}}))}}),a.fn.extend({closeModal:function(c){var d={out_duration:250,complete:void 0},e=a(this),f=e.data("overlay-id"),g=a("#"+f);c=a.extend(d,c),a("body").css("overflow",""),e.find(".modal-close").off("click.close"),a(document).off("keyup.leanModal"+f),g.velocity({opacity:0},{duration:c.out_duration,queue:!1,ease:"easeOutQuart"}),e.hasClass("bottom-sheet")?e.velocity({bottom:"-100%",opacity:0},{duration:c.out_duration,queue:!1,ease:"easeOutCubic",complete:function(){g.css({display:"none"}),"function"==typeof c.complete&&c.complete(),g.remove(),b--}}):e.velocity({top:c.starting_top,opacity:0,scaleX:.7},{duration:c.out_duration,complete:function(){a(this).css("display","none"),"function"==typeof c.complete&&c.complete(),g.remove(),b--}})}}),a.fn.extend({leanModal:function(b){return this.each(function(){var c={starting_top:"4%"},d=a.extend(c,b);a(this).click(function(b){d.starting_top=(a(this).offset().top-a(window).scrollTop())/1.15;var c=a(this).attr("href")||"#"+a(this).data("target");a(c).openModal(d),b.preventDefault()})})}})}(jQuery),function(a){a.fn.materialbox=function(){return this.each(function(){function b(){ | ||
8 | d=!1;var b=g.parent(".material-placeholder"),e=(window.innerWidth,window.innerHeight,g.data("width")),h=g.data("height");g.velocity("stop",!0),a("#materialbox-overlay").velocity("stop",!0),a(".materialbox-caption").velocity("stop",!0),a("#materialbox-overlay").velocity({opacity:0},{duration:f,queue:!1,easing:"easeOutQuad",complete:function(){c=!1,a(this).remove()}}),g.velocity({width:e,height:h,left:0,top:0},{duration:f,queue:!1,easing:"easeOutQuad"}),a(".materialbox-caption").velocity({opacity:0},{duration:f,queue:!1,easing:"easeOutQuad",complete:function(){b.css({height:"",width:"",position:"",top:"",left:""}),g.css({height:"",top:"",left:"",width:"","max-width":"",position:"","z-index":""}),g.removeClass("active"),d=!0,a(this).remove()}})}if(!a(this).hasClass("initialized")){a(this).addClass("initialized");var c=!1,d=!0,e=275,f=200,g=a(this),h=a("<div></div>").addClass("material-placeholder");g.wrap(h),g.on("click",function(){var f=g.parent(".material-placeholder"),h=window.innerWidth,i=window.innerHeight,j=g.width(),k=g.height();if(d===!1)return b(),!1;if(c&&d===!0)return b(),!1;d=!1,g.addClass("active"),c=!0,f.css({width:f[0].getBoundingClientRect().width,height:f[0].getBoundingClientRect().height,position:"relative",top:0,left:0}),g.css({position:"absolute","z-index":1e3}).data("width",j).data("height",k);var l=a('<div id="materialbox-overlay"></div>').css({opacity:0}).click(function(){d===!0&&b()});if(a("body").append(l),l.velocity({opacity:1},{duration:e,queue:!1,easing:"easeOutQuad"}),""!==g.data("caption")){var m=a('<div class="materialbox-caption"></div>');m.text(g.data("caption")),a("body").append(m),m.css({display:"inline"}),m.velocity({opacity:1},{duration:e,queue:!1,easing:"easeOutQuad"})}var n=0,o=j/h,p=k/i,q=0,r=0;o>p?(n=k/j,q=.9*h,r=.9*h*n):(n=j/k,q=.9*i*n,r=.9*i),g.hasClass("responsive-img")?g.velocity({"max-width":q,width:j},{duration:0,queue:!1,complete:function(){g.css({left:0,top:0}).velocity({height:r,width:q,left:a(document).scrollLeft()+h/2-g.parent(".material-placeholder").offset().left-q/2,top:a(document).scrollTop()+i/2-g.parent(".material-placeholder").offset().top-r/2},{duration:e,queue:!1,easing:"easeOutQuad",complete:function(){d=!0}})}}):g.css("left",0).css("top",0).velocity({height:r,width:q,left:a(document).scrollLeft()+h/2-g.parent(".material-placeholder").offset().left-q/2,top:a(document).scrollTop()+i/2-g.parent(".material-placeholder").offset().top-r/2},{duration:e,queue:!1,easing:"easeOutQuad",complete:function(){d=!0}})}),a(window).scroll(function(){c&&b()}),a(document).keyup(function(a){27===a.keyCode&&d===!0&&c&&b()})}})},a(document).ready(function(){a(".materialboxed").materialbox()})}(jQuery),function(a){a.fn.parallax=function(){var b=a(window).width();return this.each(function(c){function d(c){var d;d=601>b?e.height()>0?e.height():e.children("img").height():e.height()>0?e.height():500;var f=e.children("img").first(),g=f.height(),h=g-d,i=e.offset().top+d,j=e.offset().top,k=a(window).scrollTop(),l=window.innerHeight,m=k+l,n=(m-j)/(d+l),o=Math.round(h*n);c&&f.css("display","block"),i>k&&k+l>j&&f.css("transform","translate3D(-50%,"+o+"px, 0)")}var e=a(this);e.addClass("parallax"),e.children("img").one("load",function(){d(!0)}).each(function(){this.complete&&a(this).load()}),a(window).scroll(function(){b=a(window).width(),d(!1)}),a(window).resize(function(){b=a(window).width(),d(!1)})})}}(jQuery),function(a){var b={init:function(){return this.each(function(){var b=a(this);a(window).width();b.width("100%");var c,d,e=b.find("li.tab a"),f=b.width(),g=b.find("li").first().outerWidth(),h=0;c=a(e.filter('[href="'+location.hash+'"]')),0===c.length&&(c=a(this).find("li.tab a.active").first()),0===c.length&&(c=a(this).find("li.tab a").first()),c.addClass("active"),h=e.index(c),0>h&&(h=0),d=a(c[0].hash),b.append('<div class="indicator"></div>');var i=b.find(".indicator");b.is(":visible")&&(i.css({right:f-(h+1)*g}),i.css({left:h*g})),a(window).resize(function(){f=b.width(),g=b.find("li").first().outerWidth(),0>h&&(h=0),0!==g&&0!==f&&(i.css({right:f-(h+1)*g}),i.css({left:h*g}))}),e.not(c).each(function(){a(this.hash).hide()}),b.on("click","a",function(j){if(a(this).parent().hasClass("disabled"))return void j.preventDefault();f=b.width(),g=b.find("li").first().outerWidth(),c.removeClass("active"),d.hide(),c=a(this),d=a(this.hash),e=b.find("li.tab a"),c.addClass("active");var k=h;h=e.index(a(this)),0>h&&(h=0),d.show(),h-k>=0?(i.velocity({right:f-(h+1)*g},{duration:300,queue:!1,easing:"easeOutQuad"}),i.velocity({left:h*g},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})):(i.velocity({left:h*g},{duration:300,queue:!1,easing:"easeOutQuad"}),i.velocity({right:f-(h+1)*g},{duration:300,queue:!1,easing:"easeOutQuad",delay:90})),j.preventDefault()})})},select_tab:function(a){this.find('a[href="#'+a+'"]').trigger("click")}};a.fn.tabs=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments)},a(document).ready(function(){a("ul.tabs").tabs()})}(jQuery),function(a){a.fn.tooltip=function(b){var c=null,d=!1,e=null,f=5,g={delay:350};return"remove"===b?(this.each(function(){a("#"+a(this).attr("data-tooltip-id")).remove()}),!1):(b=a.extend(g,b),this.each(function(){var g=Materialize.guid(),h=a(this);h.attr("data-tooltip-id",g);var i=a("<span></span>").text(h.attr("data-tooltip")),j=a("<div></div>");j.addClass("material-tooltip").append(i).appendTo(a("body")).attr("id",g);var k=a("<div></div>").addClass("backdrop");k.appendTo(j),k.css({top:0,left:0}),h.off("mouseenter.tooltip mouseleave.tooltip"),h.on({"mouseenter.tooltip":function(a){var g=h.data("delay");g=void 0===g||""===g?b.delay:g,c=0,e=setInterval(function(){if(c+=10,c>=g&&d===!1){d=!0,j.css({display:"block",left:"0px",top:"0px"}),j.children("span").text(h.attr("data-tooltip"));var a=h.outerWidth(),b=h.outerHeight(),e=h.attr("data-position"),i=j.outerHeight(),l=j.outerWidth(),m="0px",n="0px",o=8;"top"===e?(j.css({top:h.offset().top-i-f,left:h.offset().left+a/2-l/2}),m="-10px",k.css({borderRadius:"14px 14px 0 0",transformOrigin:"50% 90%",marginTop:i,marginLeft:l/2-k.width()/2})):"left"===e?(j.css({top:h.offset().top+b/2-i/2,left:h.offset().left-l-f}),n="-10px",k.css({width:"14px",height:"14px",borderRadius:"14px 0 0 14px",transformOrigin:"95% 50%",marginTop:i/2,marginLeft:l})):"right"===e?(j.css({top:h.offset().top+b/2-i/2,left:h.offset().left+a+f}),n="+10px",k.css({width:"14px",height:"14px",borderRadius:"0 14px 14px 0",transformOrigin:"5% 50%",marginTop:i/2,marginLeft:"0px"})):(j.css({top:h.offset().top+h.outerHeight()+f,left:h.offset().left+a/2-l/2}),m="+10px",k.css({marginLeft:l/2-k.width()/2})),o=l/8,8>o&&(o=8),("right"===e||"left"===e)&&(o=l/10,6>o&&(o=6)),j.velocity({marginTop:m,marginLeft:n},{duration:350,queue:!1}).velocity({opacity:1},{duration:300,delay:50,queue:!1}),k.css({display:"block"}).velocity({opacity:1},{duration:55,delay:0,queue:!1}).velocity({scale:o},{duration:300,delay:0,queue:!1,easing:"easeInOutQuad"})}},10)},"mouseleave.tooltip":function(){clearInterval(e),c=0,j.velocity({opacity:0,marginTop:0,marginLeft:0},{duration:225,queue:!1,delay:225}),k.velocity({opacity:0,scale:1},{duration:225,delay:275,queue:!1,complete:function(){k.css("display","none"),j.css("display","none"),d=!1}})}})}))},a(document).ready(function(){a(".tooltipped").tooltip()})}(jQuery),function(a){"use strict";function b(a){return null!==a&&a===a.window}function c(a){return b(a)?a:9===a.nodeType&&a.defaultView}function d(a){var b,d,e={top:0,left:0},f=a&&a.ownerDocument;return b=f.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect()),d=c(f),{top:e.top+d.pageYOffset-b.clientTop,left:e.left+d.pageXOffset-b.clientLeft}}function e(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}function f(a){if(k.allowEvent(a)===!1)return null;for(var b=null,c=a.target||a.srcElement;null!==c.parentElement;){if(!(c instanceof SVGElement||-1===c.className.indexOf("waves-effect"))){b=c;break}if(c.classList.contains("waves-effect")){b=c;break}c=c.parentElement}return b}function g(b){var c=f(b);null!==c&&(j.show(b,c),"ontouchstart"in a&&(c.addEventListener("touchend",j.hide,!1),c.addEventListener("touchcancel",j.hide,!1)),c.addEventListener("mouseup",j.hide,!1),c.addEventListener("mouseleave",j.hide,!1))}var h=h||{},i=document.querySelectorAll.bind(document),j={duration:750,show:function(a,b){if(2===a.button)return!1;var c=b||this,f=document.createElement("div");f.className="waves-ripple",c.appendChild(f);var g=d(c),h=a.pageY-g.top,i=a.pageX-g.left,k="scale("+c.clientWidth/100*10+")";"touches"in a&&(h=a.touches[0].pageY-g.top,i=a.touches[0].pageX-g.left),f.setAttribute("data-hold",Date.now()),f.setAttribute("data-scale",k),f.setAttribute("data-x",i),f.setAttribute("data-y",h);var l={top:h+"px",left:i+"px"};f.className=f.className+" waves-notransition",f.setAttribute("style",e(l)),f.className=f.className.replace("waves-notransition",""),l["-webkit-transform"]=k,l["-moz-transform"]=k,l["-ms-transform"]=k,l["-o-transform"]=k,l.transform=k,l.opacity="1",l["-webkit-transition-duration"]=j.duration+"ms",l["-moz-transition-duration"]=j.duration+"ms",l["-o-transition-duration"]=j.duration+"ms",l["transition-duration"]=j.duration+"ms",l["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",l["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f.setAttribute("style",e(l))},hide:function(a){k.touchup(a);var b=this,c=(1.4*b.clientWidth,null),d=b.getElementsByClassName("waves-ripple");if(!(d.length>0))return!1;c=d[d.length-1];var f=c.getAttribute("data-x"),g=c.getAttribute("data-y"),h=c.getAttribute("data-scale"),i=Date.now()-Number(c.getAttribute("data-hold")),l=350-i;0>l&&(l=0),setTimeout(function(){var a={top:g+"px",left:f+"px",opacity:"0","-webkit-transition-duration":j.duration+"ms","-moz-transition-duration":j.duration+"ms","-o-transition-duration":j.duration+"ms","transition-duration":j.duration+"ms","-webkit-transform":h,"-moz-transform":h,"-ms-transform":h,"-o-transform":h,transform:h};c.setAttribute("style",e(a)),setTimeout(function(){try{b.removeChild(c)}catch(a){return!1}},j.duration)},l)},wrapInput:function(a){for(var b=0;b<a.length;b++){var c=a[b];if("input"===c.tagName.toLowerCase()){var d=c.parentNode;if("i"===d.tagName.toLowerCase()&&-1!==d.className.indexOf("waves-effect"))continue;var e=document.createElement("i");e.className=c.className+" waves-input-wrapper";var f=c.getAttribute("style");f||(f=""),e.setAttribute("style",f),c.className="waves-button-input",c.removeAttribute("style"),d.replaceChild(e,c),e.appendChild(c)}}}},k={touches:0,allowEvent:function(a){var b=!0;return"touchstart"===a.type?k.touches+=1:"touchend"===a.type||"touchcancel"===a.type?setTimeout(function(){k.touches>0&&(k.touches-=1)},500):"mousedown"===a.type&&k.touches>0&&(b=!1),b},touchup:function(a){k.allowEvent(a)}};h.displayEffect=function(b){b=b||{},"duration"in b&&(j.duration=b.duration),j.wrapInput(i(".waves-effect")),"ontouchstart"in a&&document.body.addEventListener("touchstart",g,!1),document.body.addEventListener("mousedown",g,!1)},h.attach=function(b){"input"===b.tagName.toLowerCase()&&(j.wrapInput([b]),b=b.parentElement),"ontouchstart"in a&&b.addEventListener("touchstart",g,!1),b.addEventListener("mousedown",g,!1)},a.Waves=h,document.addEventListener("DOMContentLoaded",function(){h.displayEffect()},!1)}(window),Materialize.toast=function(a,b,c,d){function e(a){var b=document.createElement("div");if(b.classList.add("toast"),c)for(var e=c.split(" "),f=0,g=e.length;g>f;f++)b.classList.add(e[f]);("object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&null!==a&&1===a.nodeType&&"string"==typeof a.nodeName)?b.appendChild(a):a instanceof jQuery?b.appendChild(a[0]):b.innerHTML=a;var h=new Hammer(b,{prevent_default:!1});return h.on("pan",function(a){var c=a.deltaX,d=80;b.classList.contains("panning")||b.classList.add("panning");var e=1-Math.abs(c/d);0>e&&(e=0),Vel(b,{left:c,opacity:e},{duration:50,queue:!1,easing:"easeOutQuad"})}),h.on("panend",function(a){var c=a.deltaX,e=80;Math.abs(c)>e?Vel(b,{marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),b.parentNode.removeChild(b)}}):(b.classList.remove("panning"),Vel(b,{left:0,opacity:1},{duration:300,easing:"easeOutExpo",queue:!1}))}),b}c=c||"";var f=document.getElementById("toast-container");null===f&&(f=document.createElement("div"),f.id="toast-container",document.body.appendChild(f));var g=e(a);a&&f.appendChild(g),g.style.top="35px",g.style.opacity=0,Vel(g,{top:"0px",opacity:1},{duration:300,easing:"easeOutCubic",queue:!1});var h=b,i=setInterval(function(){null===g.parentNode&&window.clearInterval(i),g.classList.contains("panning")||(h-=20),0>=h&&(Vel(g,{opacity:0,marginTop:"-40px"},{duration:375,easing:"easeOutExpo",queue:!1,complete:function(){"function"==typeof d&&d(),this[0].parentNode.removeChild(this[0])}}),window.clearInterval(i))},20)},function(a){var b={init:function(b){var c={menuWidth:240,edge:"left",closeOnClick:!1};b=a.extend(c,b),a(this).each(function(){function c(c){g=!1,h=!1,a("body").css("overflow",""),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),"left"===b.edge?(f.css({width:"",right:"",left:"0"}),e.velocity({left:-1*(b.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}})):(f.css({width:"",right:"0",left:""}),e.velocity({right:-1*(b.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutCubic",complete:function(){c===!0&&(e.removeAttr("style"),e.css("width",b.menuWidth))}}))}var d=a(this),e=a("#"+d.attr("data-activates"));240!=b.menuWidth&&e.css("width",b.menuWidth);var f=a('<div class="drag-target"></div>');a("body").append(f),"left"==b.edge?(e.css("left",-1*(b.menuWidth+10)),f.css({left:0})):(e.addClass("right-aligned").css("right",-1*(b.menuWidth+10)).css("left",""),f.css({right:0})),e.hasClass("fixed")&&window.innerWidth>992&&e.css("left",0),e.hasClass("fixed")&&a(window).resize(function(){window.innerWidth>992?0!==a("#sidenav-overlay").css("opacity")&&h?c(!0):(e.removeAttr("style"),e.css("width",b.menuWidth)):h===!1&&("left"===b.edge?e.css("left",-1*(b.menuWidth+10)):e.css("right",-1*(b.menuWidth+10)))}),b.closeOnClick===!0&&e.on("click.itemclick","a:not(.collapsible-header)",function(){c()});var g=!1,h=!1;f.on("click",function(){c()}),f.hammer({prevent_default:!1}).bind("pan",function(d){if("touch"==d.gesture.pointerType){var f=(d.gesture.direction,d.gesture.center.x);d.gesture.center.y,d.gesture.velocityX;if(a("body").css("overflow","hidden"),0===a("#sidenav-overlay").length){var g=a('<div id="sidenav-overlay"></div>');g.css("opacity",0).click(function(){c()}),a("body").append(g)}if("left"===b.edge&&(f>b.menuWidth?f=b.menuWidth:0>f&&(f=0)),"left"===b.edge)f<b.menuWidth/2?h=!1:f>=b.menuWidth/2&&(h=!0),e.css("left",f-b.menuWidth);else{f<window.innerWidth-b.menuWidth/2?h=!0:f>=window.innerWidth-b.menuWidth/2&&(h=!1);var i=-1*(f-b.menuWidth/2);i>0&&(i=0),e.css("right",i)}var j;"left"===b.edge?(j=f/b.menuWidth,a("#sidenav-overlay").velocity({opacity:j},{duration:50,queue:!1,easing:"easeOutQuad"})):(j=Math.abs((f-window.innerWidth)/b.menuWidth),a("#sidenav-overlay").velocity({opacity:j},{duration:50,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(c){if("touch"==c.gesture.pointerType){var d=c.gesture.velocityX;g=!1,"left"===b.edge?h&&.3>=d||-.5>d?(e.velocity({left:0},{duration:300,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:0,left:""})):(!h||d>.3)&&(a("body").css("overflow",""),e.velocity({left:-1*(b.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:"",left:0})):h&&d>=-.3||d>.5?(e.velocity({right:0},{duration:300,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:1},{duration:50,queue:!1,easing:"easeOutQuad"}),f.css({width:"50%",right:"",left:0})):(!h||-.3>d)&&(a("body").css("overflow",""),e.velocity({right:-1*(b.menuWidth+10)},{duration:200,queue:!1,easing:"easeOutQuad"}),a("#sidenav-overlay").velocity({opacity:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}}),f.css({width:"10px",right:0,left:""}))}}),d.click(function(){if(h===!0)h=!1,g=!1,c();else{a("body").css("overflow","hidden"),a("body").append(f),"left"===b.edge?(f.css({width:"50%",right:0,left:""}),e.velocity({left:0},{duration:300,queue:!1,easing:"easeOutQuad"})):(f.css({width:"50%",right:"",left:0}),e.velocity({right:0},{duration:300,queue:!1,easing:"easeOutQuad"}),e.css("left",""));var d=a('<div id="sidenav-overlay"></div>');d.css("opacity",0).click(function(){h=!1,g=!1,c(),d.velocity({opacity:0},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){a(this).remove()}})}),a("body").append(d),d.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){h=!0,g=!1}})}return!1})})},show:function(){this.trigger("click")},hide:function(){a("#sidenav-overlay").trigger("click")}};a.fn.sideNav=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.sideNav"):b.init.apply(this,arguments)}}(jQuery),function(a){function b(b,c,d,e){var f=a();return a.each(g,function(a,g){if(g.height()>0){var h=g.offset().top,i=g.offset().left,j=i+g.width(),k=h+g.height(),l=!(i>c||e>j||h>d||b>k);l&&f.push(g)}}),f}function c(){++j;var c=f.scrollTop(),d=f.scrollLeft(),e=d+f.width(),g=c+f.height(),i=b(c+k.top+200,e+k.right,g+k.bottom,d+k.left);a.each(i,function(a,b){var c=b.data("scrollSpy:ticks");"number"!=typeof c&&b.triggerHandler("scrollSpy:enter"),b.data("scrollSpy:ticks",j)}),a.each(h,function(a,b){var c=b.data("scrollSpy:ticks");"number"==typeof c&&c!==j&&(b.triggerHandler("scrollSpy:exit"),b.data("scrollSpy:ticks",null))}),h=i}function d(){f.trigger("scrollSpy:winSize")}function e(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:l(),g=null,f=a.apply(d,e),d=e=null};return function(){var j=l();h||c.leading!==!1||(h=j);var k=b-(j-h);return d=this,e=arguments,0>=k?(clearTimeout(g),g=null,h=j,f=a.apply(d,e),d=e=null):g||c.trailing===!1||(g=setTimeout(i,k)),f}}var f=a(window),g=[],h=[],i=!1,j=0,k={top:0,right:0,bottom:0,left:0},l=Date.now||function(){return(new Date).getTime()};a.scrollSpy=function(b,d){var h=[];b=a(b),b.each(function(b,c){g.push(a(c)),a(c).data("scrollSpy:id",b),a("a[href=#"+a(c).attr("id")+"]").click(function(b){b.preventDefault();var c=a(this.hash).offset().top+1;a("html, body").animate({scrollTop:c-200},{duration:400,queue:!1,easing:"easeOutCubic"})})}),d=d||{throttle:100},k.top=d.offsetTop||0,k.right=d.offsetRight||0,k.bottom=d.offsetBottom||0,k.left=d.offsetLeft||0;var j=e(c,d.throttle||100),l=function(){a(document).ready(j)};return i||(f.on("scroll",l),f.on("resize",l),i=!0),setTimeout(l,0),b.on("scrollSpy:enter",function(){h=a.grep(h,function(a){return 0!=a.height()});var b=a(this);h[0]?(a("a[href=#"+h[0].attr("id")+"]").removeClass("active"),b.data("scrollSpy:id")<h[0].data("scrollSpy:id")?h.unshift(a(this)):h.push(a(this))):h.push(a(this)),a("a[href=#"+h[0].attr("id")+"]").addClass("active")}),b.on("scrollSpy:exit",function(){if(h=a.grep(h,function(a){return 0!=a.height()}),h[0]){a("a[href=#"+h[0].attr("id")+"]").removeClass("active");var b=a(this);h=a.grep(h,function(a){return a.attr("id")!=b.attr("id")}),h[0]&&a("a[href=#"+h[0].attr("id")+"]").addClass("active")}}),b},a.winSizeSpy=function(b){return a.winSizeSpy=function(){return f},b=b||{throttle:100},f.on("resize",e(d,b.throttle||100))},a.fn.scrollSpy=function(b){return a.scrollSpy(a(this),b)}}(jQuery),function(a){a(document).ready(function(){function b(b){var c=b.css("font-family"),e=b.css("font-size");e&&d.css("font-size",e),c&&d.css("font-family",c),"off"===b.attr("wrap")&&d.css("overflow-wrap","normal").css("white-space","pre"),d.text(b.val()+"\n");var f=d.html().replace(/\n/g,"<br>");d.html(f),b.is(":visible")?d.css("width",b.width()):d.css("width",a(window).width()/2),b.css("height",d.height())}Materialize.updateTextFields=function(){var b="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a(b).each(function(b,c){a(c).val().length>0||void 0!==a(this).attr("placeholder")||a(c)[0].validity.badInput===!0?a(this).siblings("label").addClass("active"):a(this).siblings("label, i").removeClass("active")})};var c="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea";a("input[autofocus]").siblings("label, i").addClass("active"),a(document).on("change",c,function(){(0!==a(this).val().length||void 0!==a(this).attr("placeholder"))&&a(this).siblings("label").addClass("active"),validate_field(a(this))}),a(document).ready(function(){Materialize.updateTextFields()}),a(document).on("reset",function(b){var d=a(b.target);d.is("form")&&(d.find(c).removeClass("valid").removeClass("invalid"),d.find(c).each(function(){""===a(this).attr("value")&&a(this).siblings("label, i").removeClass("active")}),d.find("select.initialized").each(function(){var a=d.find("option[selected]").text();d.siblings("input.select-dropdown").val(a)}))}),a(document).on("focus",c,function(){a(this).siblings("label, i").addClass("active")}),a(document).on("blur",c,function(){var b=a(this);0===b.val().length&&b[0].validity.badInput!==!0&&void 0===b.attr("placeholder")&&b.siblings("label, i").removeClass("active"),0===b.val().length&&b[0].validity.badInput!==!0&&void 0!==b.attr("placeholder")&&b.siblings("i").removeClass("active"),validate_field(b)}),window.validate_field=function(a){var b=void 0!==a.attr("length"),c=parseInt(a.attr("length")),d=a.val().length;0===a.val().length&&a[0].validity.badInput===!1?a.hasClass("validate")&&(a.removeClass("valid"),a.removeClass("invalid")):a.hasClass("validate")&&(a.is(":valid")&&b&&c>=d||a.is(":valid")&&!b?(a.removeClass("invalid"),a.addClass("valid")):(a.removeClass("valid"),a.addClass("invalid")))};var d=a(".hiddendiv").first();d.length||(d=a('<div class="hiddendiv common"></div>'),a("body").append(d));var e=".materialize-textarea";a(e).each(function(){var c=a(this);c.val().length&&b(c)}),a("body").on("keyup keydown autoresize",e,function(){b(a(this))}),a(document).on("change",'.file-field input[type="file"]',function(){for(var b=a(this).closest(".file-field"),c=b.find("input.file-path"),d=a(this)[0].files,e=[],f=0;f<d.length;f++)e.push(d[f].name);c.val(e.join(", ")),c.trigger("change")});var f,g="input[type=range]",h=!1;a(g).each(function(){var b=a('<span class="thumb"><span class="value"></span></span>');a(this).after(b)});var i=".range-field";a(document).on("change",g,function(b){var c=a(this).siblings(".thumb");c.find(".value").html(a(this).val())}),a(document).on("input mousedown touchstart",g,function(b){var c=a(this).siblings(".thumb");c.length<=0&&(c=a('<span class="thumb"><span class="value"></span></span>'),a(this).append(c)),c.find(".value").html(a(this).val()),h=!0,a(this).addClass("active"),c.hasClass("active")||c.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),f=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left;var d=a(this).outerWidth();0>f?f=0:f>d&&(f=d),c.addClass("active").css("left",f),c.find(".value").html(a(this).val())}),a(document).on("mouseup touchend",i,function(){h=!1,a(this).removeClass("active")}),a(document).on("mousemove touchmove",i,function(b){var c,d=a(this).children(".thumb");if(h){d.hasClass("active")||d.velocity({height:"30px",width:"30px",top:"-20px",marginLeft:"-15px"},{duration:300,easing:"easeOutExpo"}),c=void 0===b.pageX||null===b.pageX?b.originalEvent.touches[0].pageX-a(this).offset().left:b.pageX-a(this).offset().left;var e=a(this).outerWidth();0>c?c=0:c>e&&(c=e),d.addClass("active").css("left",c),d.find(".value").html(d.siblings(g).val())}}),a(document).on("mouseout touchleave",i,function(){if(!h){var b=a(this).children(".thumb");b.hasClass("active")&&b.velocity({height:"0",width:"0",top:"10px",marginLeft:"-6px"},{duration:100}),b.removeClass("active")}})}),a.fn.material_select=function(b){a(this).each(function(){if($select=a(this),!$select.hasClass("browser-default")){var c=$select.data("select-id");if(c&&($select.parent().find("span.caret").remove(),$select.parent().find("input").remove(),$select.unwrap(),a("ul#select-options-"+c).remove()),"destroy"===b)return void $select.data("select-id",null).removeClass("initialized");var d=Materialize.guid();$select.data("select-id",d);var e=a('<div class="select-wrapper"></div>');e.addClass($select.attr("class"));var f,g=a('<ul id="select-options-'+d+'" class="dropdown-content select-dropdown"></ul>'),h=$select.children("option");f=void 0!==$select.find("option:selected")?$select.find("option:selected"):g.first(),h.each(function(){g.append(a('<li class="'+(a(this).is(":disabled")?"disabled":"")+'"><span>'+a(this).html()+"</span></li>"))}),g.find("li").each(function(c){var d=$select;a(this).click(function(){a(this).hasClass("disabled")||(d.find("option").eq(c).prop("selected",!0),d.trigger("change"),d.siblings("input.select-dropdown").val(a(this).text()),"undefined"!=typeof b&&b())})}),$select.wrap(e);var i=a('<span class="caret">▼</span>');$select.is(":disabled")&&i.addClass("disabled");var j=f.html().replace(/"/g,"""),k=a('<input type="text" class="select-dropdown" readonly="true" '+($select.is(":disabled")?"disabled":"")+' data-activates="select-options-'+d+'" value="'+j+'"/>');$select.before(k),k.before(i),a("body").append(g),$select.is(":disabled")||k.dropdown({hover:!1}),$select.attr("tabindex")&&a(k[0]).attr("tabindex",$select.attr("tabindex")),$select.addClass("initialized"),k.on("focus",function(){a(this).trigger("open"),f=a(this).val(),selectedOption=g.find("li").filter(function(){return a(this).text().toLowerCase()===f.toLowerCase()})[0],activateOption(g,selectedOption)}),k.on("blur",function(){a(this).trigger("close")}),activateOption=function(b,c){b.find("li.active").removeClass("active"),a(c).addClass("active"),b.scrollTo(c)},filterQuery=[],onKeyDown=function(b){if(9==b.which)return void k.trigger("close");if(40==b.which&&!g.is(":visible"))return void k.trigger("open");if(13!=b.which||g.is(":visible")){b.preventDefault(),letter=String.fromCharCode(b.which).toLowerCase();var c=[9,13,27,38,40];letter&&-1===c.indexOf(b.which)&&(filterQuery.push(letter),string=filterQuery.join(""),newOption=g.find("li").filter(function(){return 0===a(this).text().toLowerCase().indexOf(string)})[0],newOption&&activateOption(g,newOption)),13==b.which&&(activeOption=g.find("li.active:not(.disabled)")[0],activeOption&&(a(activeOption).trigger("click"),k.trigger("close"))),40==b.which&&(newOption=g.find("li.active").next("li:not(.disabled)")[0],newOption&&activateOption(g,newOption)),27==b.which&&k.trigger("close"),38==b.which&&(newOption=g.find("li.active").prev("li:not(.disabled)")[0],newOption&&activateOption(g,newOption)),setTimeout(function(){filterQuery=[]},1e3)}},k.on("keydown",onKeyDown)}})}}(jQuery),function(a){var b={init:function(b){var c={indicators:!0,height:400,transition:500,interval:6e3};return b=a.extend(c,b),this.each(function(){function c(a,b){a.hasClass("center-align")?a.velocity({opacity:0,translateY:-100},{duration:b,queue:!1}):a.hasClass("right-align")?a.velocity({opacity:0,translateX:100},{duration:b,queue:!1}):a.hasClass("left-align")&&a.velocity({opacity:0,translateX:-100},{duration:b,queue:!1})}function d(a){a>=h.length?a=0:0>a&&(a=h.length-1),i=g.find(".active").index(),i!=a&&(e=h.eq(i),$caption=e.find(".caption"),e.removeClass("active"),e.velocity({opacity:0},{duration:b.transition,queue:!1,easing:"easeOutQuad",complete:function(){h.not(".active").velocity({opacity:0,translateX:0,translateY:0},{duration:0,queue:!1})}}),c($caption,b.transition),b.indicators&&j.eq(i).removeClass("active"),h.eq(a).velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),h.eq(a).find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,delay:b.transition,queue:!1,easing:"easeOutQuad"}),h.eq(a).addClass("active"),b.indicators&&j.eq(a).addClass("active"))}var e,f=a(this),g=f.find("ul.slides").first(),h=g.find("li"),i=g.find(".active").index();if(-1!=i&&(e=h.eq(i)),f.hasClass("fullscreen")||(b.indicators?f.height(b.height+40):f.height(b.height),g.height(b.height)),h.find(".caption").each(function(){c(a(this),0)}),h.find("img").each(function(){a(this).css("background-image","url("+a(this).attr("src")+")"),a(this).attr("src","data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==")}),b.indicators){var j=a('<ul class="indicators"></ul>');h.each(function(c){var e=a('<li class="indicator-item"></li>');e.click(function(){var c=g.parent(),e=c.find(a(this)).index();d(e),clearInterval($interval),$interval=setInterval(function(){i=g.find(".active").index(),h.length==i+1?i=0:i+=1,d(i)},b.transition+b.interval)}),j.append(e)}),f.append(j),j=f.find("ul.indicators").find("li.indicator-item")}e?e.show():(h.first().addClass("active").velocity({opacity:1},{duration:b.transition,queue:!1,easing:"easeOutQuad"}),i=0,e=h.eq(i),b.indicators&&j.eq(i).addClass("active")),e.find("img").each(function(){e.find(".caption").velocity({opacity:1,translateX:0,translateY:0},{duration:b.transition,queue:!1,easing:"easeOutQuad"})}),$interval=setInterval(function(){i=g.find(".active").index(),d(i+1)},b.transition+b.interval);var k=!1,l=!1,m=!1;f.hammer({prevent_default:!1}).bind("pan",function(a){if("touch"===a.gesture.pointerType){clearInterval($interval);var b=a.gesture.direction,c=a.gesture.deltaX,d=a.gesture.velocityX;$curr_slide=g.find(".active"),$curr_slide.velocity({translateX:c},{duration:50,queue:!1,easing:"easeOutQuad"}),4===b&&(c>f.innerWidth()/2||-.65>d)?m=!0:2===b&&(c<-1*f.innerWidth()/2||d>.65)&&(l=!0);var e;l&&(e=$curr_slide.next(),0===e.length&&(e=h.first()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"})),m&&(e=$curr_slide.prev(),0===e.length&&(e=h.last()),e.velocity({opacity:1},{duration:300,queue:!1,easing:"easeOutQuad"}))}}).bind("panend",function(a){"touch"===a.gesture.pointerType&&($curr_slide=g.find(".active"),k=!1,curr_index=g.find(".active").index(),m||l?l?(d(curr_index+1),$curr_slide.velocity({translateX:-1*f.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):m&&(d(curr_index-1),$curr_slide.velocity({translateX:f.innerWidth()},{duration:300,queue:!1,easing:"easeOutQuad",complete:function(){$curr_slide.velocity({opacity:0,translateX:0},{duration:0,queue:!1})}})):$curr_slide.velocity({translateX:0},{duration:300,queue:!1,easing:"easeOutQuad"}),l=!1,m=!1,clearInterval($interval),$interval=setInterval(function(){i=g.find(".active").index(),h.length==i+1?i=0:i+=1,d(i)},b.transition+b.interval))}),f.on("sliderPause",function(){clearInterval($interval)}),f.on("sliderStart",function(){clearInterval($interval),$interval=setInterval(function(){i=g.find(".active").index(),h.length==i+1?i=0:i+=1,d(i)},b.transition+b.interval)})})},pause:function(){a(this).trigger("sliderPause")},start:function(){a(this).trigger("sliderStart")}};a.fn.slider=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?void a.error("Method "+c+" does not exist on jQuery.tooltip"):b.init.apply(this,arguments); | ||
9 | }}(jQuery),function(a){a(document).ready(function(){a(document).on("click.card",".card",function(b){a(this).find("> .card-reveal").length&&(a(b.target).is(a(".card-reveal .card-title"))||a(b.target).is(a(".card-reveal .card-title i"))?a(this).find(".card-reveal").velocity({translateY:0},{duration:225,queue:!1,easing:"easeInOutQuad",complete:function(){a(this).css({display:"none"})}}):(a(b.target).is(a(".card .activator"))||a(b.target).is(a(".card .activator i")))&&a(this).find(".card-reveal").css({display:"block"}).velocity("stop",!1).velocity({translateY:"-100%"},{duration:300,queue:!1,easing:"easeInOutQuad"}))})})}(jQuery),function(a){a(document).ready(function(){a(document).on("click.chip",".chip .material-icons",function(b){a(this).parent().remove()})})}(jQuery),function(a){a(document).ready(function(){a.fn.pushpin=function(b){var c={top:0,bottom:1/0,offset:0};return b=a.extend(c,b),$index=0,this.each(function(){function c(a){a.removeClass("pin-top"),a.removeClass("pinned"),a.removeClass("pin-bottom")}function d(d,e){d.each(function(){b.top<=e&&b.bottom>=e&&!a(this).hasClass("pinned")&&(c(a(this)),a(this).css("top",b.offset),a(this).addClass("pinned")),e<b.top&&!a(this).hasClass("pin-top")&&(c(a(this)),a(this).css("top",0),a(this).addClass("pin-top")),e>b.bottom&&!a(this).hasClass("pin-bottom")&&(c(a(this)),a(this).addClass("pin-bottom"),a(this).css("top",b.bottom-g))})}var e=Materialize.guid(),f=a(this),g=a(this).offset().top;d(f,a(window).scrollTop()),a(window).on("scroll."+e,function(){var c=a(window).scrollTop()+b.offset;d(f,c)})})}})}(jQuery),function(a){a(document).ready(function(){a.fn.reverse=[].reverse,a(document).on("mouseenter.fixedActionBtn",".fixed-action-btn",function(c){var d=a(this);b(d)}),a(document).on("mouseleave.fixedActionBtn",".fixed-action-btn",function(b){var d=a(this);c(d)})}),a.fn.extend({openFAB:function(){var c=a(this);b(c)},closeFAB:function(){c($this)}});var b=function(b){if($this=b,$this.hasClass("active")===!1){$this.addClass("active"),$this.find("ul .btn-floating").velocity({scaleY:".4",scaleX:".4",translateY:"40px"},{duration:0});var c=0;$this.find("ul .btn-floating").reverse().each(function(){a(this).velocity({opacity:"1",scaleX:"1",scaleY:"1",translateY:"0"},{duration:80,delay:c}),c+=40})}},c=function(a){$this=a,$this.removeClass("active");$this.find("ul .btn-floating").velocity("stop",!0),$this.find("ul .btn-floating").velocity({opacity:"0",scaleX:".4",scaleY:".4",translateY:"40px"},{duration:80})}}(jQuery),function(a){Materialize.fadeInImage=function(b){var c=a(b);c.css({opacity:0}),a(c).velocity({opacity:1},{duration:650,queue:!1,easing:"easeOutSine"}),a(c).velocity({opacity:1},{duration:1300,queue:!1,easing:"swing",step:function(b,c){c.start=100;var d=b/100,e=150-(100-b)/1.75;100>e&&(e=100),b>=0&&a(this).css({"-webkit-filter":"grayscale("+d+")brightness("+e+"%)",filter:"grayscale("+d+")brightness("+e+"%)"})}})},Materialize.showStaggeredList=function(b){var c=0;a(b).find("li").velocity({translateX:"-100px"},{duration:0}),a(b).find("li").each(function(){a(this).velocity({opacity:"1",translateX:"0"},{duration:800,delay:c,easing:[60,10]}),c+=120})},a(document).ready(function(){var b=!1,c=!1;a(".dismissable").each(function(){a(this).hammer({prevent_default:!1}).bind("pan",function(d){if("touch"===d.gesture.pointerType){var e=a(this),f=d.gesture.direction,g=d.gesture.deltaX,h=d.gesture.velocityX;e.velocity({translateX:g},{duration:50,queue:!1,easing:"easeOutQuad"}),4===f&&(g>e.innerWidth()/2||-.75>h)&&(b=!0),2===f&&(g<-1*e.innerWidth()/2||h>.75)&&(c=!0)}}).bind("panend",function(d){if(Math.abs(d.gesture.deltaX)<a(this).innerWidth()/2&&(c=!1,b=!1),"touch"===d.gesture.pointerType){var e=a(this);if(b||c){var f;f=b?e.innerWidth():-1*e.innerWidth(),e.velocity({translateX:f},{duration:100,queue:!1,easing:"easeOutQuad",complete:function(){e.css("border","none"),e.velocity({height:0,padding:0},{duration:200,queue:!1,easing:"easeOutQuad",complete:function(){e.remove()}})}})}else e.velocity({translateX:0},{duration:100,queue:!1,easing:"easeOutQuad"});b=!1,c=!1}})})})}(jQuery),function(a){Materialize.scrollFire=function(a){var b=!1;window.addEventListener("scroll",function(){b=!0}),setInterval(function(){if(b){b=!1;for(var c=window.pageYOffset+window.innerHeight,d=0;d<a.length;d++){var e=a[d],f=e.selector,g=e.offset,h=e.callback,i=document.querySelector(f);if(null!==i){var j=i.getBoundingClientRect().top+window.pageYOffset;if(c>j+g&&e.done!==!0){var k=new Function(h);k(),e.done=!0}}}}},100)}}(jQuery),function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,i,l){function m(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",y.component.nodes(t.open),v.box),v.wrap),v.frame),v.holder)}function n(){w.data(g,y).addClass(v.input).attr("tabindex",-1).val(w.data("value")?y.get("select",u.format):f.value),u.editable||w.on("focus."+t.id+" click."+t.id,function(a){a.preventDefault(),y.$root[0].focus()}).on("keydown."+t.id,q),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"})}function o(){y.$root.on({keydown:q,focusin:function(a){y.$root.removeClass(v.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=y.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is("input, select, textarea, button, option")||(b.preventDefault(),y.$root[0].focus()))}}).on({focus:function(){w.addClass(v.target)},blur:function(){w.removeClass(v.target)}}).on("focus.toOpen",r).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(v.navDisabled)||b.hasClass(v.disabled),e=h();e=e&&(e.type||e.href),(d||e&&!a.contains(y.$root[0],e))&&y.$root[0].focus(),!d&&c.nav?y.set("highlight",y.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?y.set("select",c.pick):c.clear?y.clear().close(!0):c.close&&y.close(!0)}),e(y.$root[0],"hidden",!0)}function p(){var b;u.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof u.hiddenPrefix?u.hiddenPrefix:"","string"==typeof u.hiddenSuffix?u.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),y._hidden=a('<input type=hidden name="'+b+'"'+(w.data("value")||f.value?' value="'+y.get("select",u.formatSubmit)+'"':"")+">")[0],w.on("change."+t.id,function(){y._hidden.value=f.value?y.get("select",u.formatSubmit):""}),u.container?a(u.container).append(y._hidden):w.after(y._hidden)}function q(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(y.close(),!1):void((32==b||c||!t.open&&y.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?y.clear().close():y.open()))}function r(a){a.stopPropagation(),"focus"==a.type&&y.$root.addClass(v.focused),y.open()}if(!f)return b;var s=!1,t={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},u=i?a.extend(!0,{},i.defaults,l):l||{},v=a.extend({},b.klasses(),u.klass),w=a(f),x=function(){return this.start()},y=x.prototype={constructor:x,$node:w,start:function(){return t&&t.start?y:(t.methods={},t.start=!0,t.open=!1,t.type=f.type,f.autofocus=f==h(),f.readOnly=!u.editable,f.id=f.id||t.id,"text"!=f.type&&(f.type="text"),y.component=new i(y,u),y.$root=a(b._.node("div",m(),v.picker,'id="'+f.id+'_root" tabindex="0"')),o(),u.formatSubmit&&p(),n(),u.container?a(u.container).append(y.$root):w.after(y.$root),y.on({start:y.component.onStart,render:y.component.onRender,stop:y.component.onStop,open:y.component.onOpen,close:y.component.onClose,set:y.component.onSet}).on({start:u.onStart,render:u.onRender,stop:u.onStop,open:u.onOpen,close:u.onClose,set:u.onSet}),s=c(y.$root.children()[0]),f.autofocus&&y.open(),y.trigger("start").trigger("render"))},render:function(a){return a?y.$root.html(m()):y.$root.find("."+v.box).html(y.component.nodes(t.open)),y.trigger("render")},stop:function(){return t.start?(y.close(),y._hidden&&y._hidden.parentNode.removeChild(y._hidden),y.$root.remove(),w.removeClass(v.input).removeData(g),setTimeout(function(){w.off("."+t.id)},0),f.type=t.type,f.readOnly=!1,y.trigger("stop"),t.methods={},t.start=!1,y):y},open:function(c){return t.open?y:(w.addClass(v.active),e(f,"expanded",!0),setTimeout(function(){y.$root.addClass(v.opened),e(y.$root[0],"hidden",!1)},0),c!==!1&&(t.open=!0,s&&k.css("overflow","hidden").css("padding-right","+="+d()),y.$root[0].focus(),j.on("click."+t.id+" focusin."+t.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&y.close(b===y.$root.children()[0])}).on("keydown."+t.id,function(c){var d=c.keyCode,e=y.component.key[d],f=c.target;27==d?y.close(!0):f!=y.$root[0]||!e&&13!=d?a.contains(y.$root[0],f)&&13==d&&(c.preventDefault(),f.click()):(c.preventDefault(),e?b._.trigger(y.component.key.go,y,[b._.trigger(e)]):y.$root.find("."+v.highlighted).hasClass(v.disabled)||y.set("select",y.component.item.highlight).close())})),y.trigger("open"))},close:function(a){return a&&(y.$root.off("focus.toOpen")[0].focus(),setTimeout(function(){y.$root.on("focus.toOpen",r)},0)),w.removeClass(v.active),e(f,"expanded",!1),setTimeout(function(){y.$root.removeClass(v.opened+" "+v.focused),e(y.$root[0],"hidden",!0)},0),t.open?(t.open=!1,s&&k.css("overflow","").css("padding-right","-="+d()),j.off("."+t.id),y.trigger("close")):y},clear:function(a){return y.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in y.component.item&&(void 0===f&&(f=null),y.component.set(e,f,d)),("select"==e||"clear"==e)&&w.val("clear"==e?"":y.get(e,u.format)).trigger("change");y.render()}return d.muted?y:y.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=t[a])return t[a];if("valueSubmit"==a){if(y._hidden)return y._hidden.value;a="value"}if("value"==a)return f.value;if(a in y.component.item){if("string"==typeof c){var d=y.component.get(a);return d?b._.trigger(y.component.formats.toString,y.component,[c,d]):""}return y.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),t.methods[e]=t.methods[e]||[],t.methods[e].push(f)}return y},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;a<namesCount;a+=1)b=c[a],b in t.methods&&delete t.methods[b];return y},trigger:function(a,c){var d=function(a){var d=t.methods[a];d&&d.map(function(a){b._.trigger(a,y,[c])})};return d("_"+a),d(a),y}};return new x}function c(a){var b,c="position";return a.currentStyle?b=a.currentStyle[c]:window.getComputedStyle&&(b=getComputedStyle(a)[c]),"fixed"==b}function d(){if(k.height()<=i.height())return 0;var b=a('<div style="visibility:hidden;width:100px" />').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('<div style="width:100%" />').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}function h(){try{return document.activeElement}catch(a){}}var i=a(window),j=a(document),k=a(document.documentElement);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",target:a+"__input--target",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+"</"+b+">"):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b}),function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(b.year,b.month,b.date+a);c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-(1/0)||c==1/0?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(c[0],c[1],c[2]),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)||f.isDate(c)?g.normalize(new Date(c),d):g.now(a,c,d),{year:e||c.getFullYear(),month:e||c.getMonth(),date:e||c.getDate(),day:e||c.getDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setDate(b.getDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(f,g+(d&&d.nav?d.nav:0),1),f=e.getFullYear(),g=e.getMonth();new Date(f,g,h).getMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-(1/0):1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;d<c.pick?e=!0:d>c.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.month<k.month||c.month>k.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g<e.length;g+=1)if(d.isDateExact(a,e[g])){c=!0;break}c||(f.isInteger(a)||f.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,g=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,h,i,j;for(i=0;g>i;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getFullYear(),a.getMonth(),a.getDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysLetter).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",controls:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(d){var e=c.showMonthsShort?c.monthsShort:c.monthsFull;return"short_months"==d&&(e=c.monthsShort),c.selectMonths&&void 0==d?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[e[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&a<m.month||k.year==n.year&&a>n.month?" disabled":"")]}}),c.klass.selectMonth+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):"short_months"==d?null!=i?f.node("div",e[i.month]):f.node("div",e[k.month]):f.node("div",e[k.month],c.klass.month)},r=function(d){var e=k.year,g=c.selectYears===!0?5:~~(c.selectYears/2);if(g){var h=m.year,i=n.year,j=e-g,l=e+g;if(h>j&&(l+=h-j,j=h),l>i){var o=j-h,p=l-i;j-=o>p?p:o,l=i}if(c.selectYears&&void 0==d)return f.node("select",f.group({min:j,max:l,i:1,node:"option",item:function(a){return[a,0,"value="+a+(e==a?" selected":"")]}}),c.klass.selectYear+" browser-default",(a?"":"disabled")+" "+f.ariaAttr({controls:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return"raw"==d?f.node("div",e):f.node("div",e,c.klass.year)};return createDayLabel=function(){return null!=i?f.node("div",i.date):f.node("div",h.date)},createWeekdayLabel=function(){var a;a=null!=i?i.day:h.day;var b=c.weekdaysFull[a];return b},f.node("div",f.node("div",createWeekdayLabel(),"picker__weekday-display")+f.node("div",q("short_months"),c.klass.month_display)+f.node("div",createDayLabel(),c.klass.day_display)+f.node("div",r("raw"),c.klass.year_display),c.klass.date_display)+f.node("div",f.node("div",(c.selectYears?q()+r():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pick<m.pick||a.pick>n.pick,o=f.trigger(b.formats.toString,b,[c.format,a]);return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",label:o,selected:d&&b.$node.val()===o?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",controls:b.$node[0].id,readonly:!0})),c.klass.calendar_container)+f.node("div",f.node("button",c.today,"btn-flat picker__today","type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.clear,"btn-flat picker__clear","type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id}))+f.node("button",c.close,"btn-flat picker__close","type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({controls:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysLetter:["S","M","T","W","T","F","S"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",date_display:a+"date-display",day_display:a+"day-display",month_display:a+"month-display",year_display:a+"year-display",calendar_container:a+"calendar-container",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)}),function(a){function b(){var b=+a(this).attr("length"),c=+a(this).val().length,d=b>=c;a(this).parent().find('span[class="character-counter"]').html(c+"/"+b),e(d,a(this))}function c(b){var c=a("<span/>").addClass("character-counter").css("float","right").css("font-size","12px").css("height",1);b.parent().append(c)}function d(){a(this).parent().find('span[class="character-counter"]').html("")}function e(a,b){var c=b.hasClass("invalid");a&&c?b.removeClass("invalid"):a||c||(b.removeClass("valid"),b.addClass("invalid"))}a.fn.characterCounter=function(){return this.each(function(){var e=void 0!==a(this).attr("length");e&&(a(this).on("input",b),a(this).on("focus",b),a(this).on("blur",d),c(a(this)))})},a(document).ready(function(){a("input, textarea").characterCounter()})}(jQuery); \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/restoreScroll.js b/src/Wallabag/CoreBundle/Resources/public/themes/material/js/restoreScroll.js deleted file mode 100644 index 331c9e19..00000000 --- a/src/Wallabag/CoreBundle/Resources/public/themes/material/js/restoreScroll.js +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | function supportsLocalStorage() { | ||
2 | try { | ||
3 | return 'localStorage' in window && window['localStorage'] !== null; | ||
4 | } catch (e) { | ||
5 | return false; | ||
6 | } | ||
7 | } | ||
8 | |||
9 | function savePercent(id, percent) { | ||
10 | if (!supportsLocalStorage()) { return false; } | ||
11 | localStorage["poche.article." + id + ".percent"] = percent; | ||
12 | return true; | ||
13 | } | ||
14 | |||
15 | function retrievePercent(id) { | ||
16 | if (!supportsLocalStorage()) { return false; } | ||
17 | |||
18 | var bheight = $(document).height(); | ||
19 | var percent = localStorage["poche.article." + id + ".percent"]; | ||
20 | var scroll = bheight * percent; | ||
21 | |||
22 | $('html,body').animate({scrollTop: scroll}, 'fast'); | ||
23 | |||
24 | return true; | ||
25 | } \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml index c066aaf7..bb23b5fe 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Søg' | 31 | search: 'Søg' |
32 | # save_link: 'Save a link' | 32 | # save_link: 'Save a link' |
33 | back_to_unread: 'Tilbage til de ulæste artikler' | 33 | back_to_unread: 'Tilbage til de ulæste artikler' |
34 | # users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Tilføj ny artikel' | 36 | add_new_entry: 'Tilføj ny artikel' |
36 | search: 'Søg' | 37 | search: 'Søg' |
@@ -45,6 +46,7 @@ footer: | |||
45 | # social: 'Social' | 46 | # social: 'Social' |
46 | # powered_by: 'powered by' | 47 | # powered_by: 'powered by' |
47 | about: 'Om' | 48 | about: 'Om' |
49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Opsætning' | 52 | page_title: 'Opsætning' |
@@ -68,6 +70,7 @@ config: | |||
68 | # 200_word: 'I read ~200 words per minute' | 70 | # 200_word: 'I read ~200 words per minute' |
69 | # 300_word: 'I read ~300 words per minute' | 71 | # 300_word: 'I read ~300 words per minute' |
70 | # 400_word: 'I read ~400 words per minute' | 72 | # 400_word: 'I read ~400 words per minute' |
73 | pocket_consumer_key_label: Brugers nøgle til Pocket for at importere materialer | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'RSS-feeds fra wallabag gør det muligt at læse de artikler, der gemmes i wallabag, med din RSS-læser. Det kræver, at du genererer et token først.' | 75 | description: 'RSS-feeds fra wallabag gør det muligt at læse de artikler, der gemmes i wallabag, med din RSS-læser. Det kræver, at du genererer et token først.' |
73 | token_label: 'RSS-Token' | 76 | token_label: 'RSS-Token' |
@@ -93,6 +96,7 @@ config: | |||
93 | # if_label: 'if' | 96 | # if_label: 'if' |
94 | # then_tag_as_label: 'then tag as' | 97 | # then_tag_as_label: 'then tag as' |
95 | # delete_rule_label: 'delete' | 98 | # delete_rule_label: 'delete' |
99 | # edit_rule_label: 'edit' | ||
96 | # rule_label: 'Rule' | 100 | # rule_label: 'Rule' |
97 | # tags_label: 'Tags' | 101 | # tags_label: 'Tags' |
98 | # faq: | 102 | # faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | # or: 'One rule OR another' | 130 | # or: 'One rule OR another' |
127 | # and: 'One rule AND another' | 131 | # and: 'One rule AND another' |
128 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | 132 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Brugernavn' | ||
131 | password_label: 'Adgangskode' | ||
132 | repeat_new_password_label: 'Gentag adgangskode' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'Emailadresse' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | # starred: 'Starred entries' | 137 | # starred: 'Starred entries' |
140 | # archived: 'Archived entries' | 138 | # archived: 'Archived entries' |
141 | # filtered: 'Filtered entries' | 139 | # filtered: 'Filtered entries' |
140 | # filtered_tags: 'Filtered by tags' | ||
141 | # untagged: 'Untagged entries' | ||
142 | list: | 142 | list: |
143 | # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' | 143 | # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' |
144 | reading_time: 'estimeret læsetid' | 144 | reading_time: 'estimeret læsetid' |
145 | reading_time_minutes: 'estimeret læsetid: %readingTime% min' | 145 | reading_time_minutes: 'estimeret læsetid: %readingTime% min' |
146 | reading_time_less_one_minute: 'estimeret læsetid: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'estimeret læsetid: <small class="inferieur"><</small> 1 min' |
147 | # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'original' |
@@ -185,6 +186,8 @@ entry: | |||
185 | add_a_tag: 'Tliføj et tag' | 186 | add_a_tag: 'Tliføj et tag' |
186 | share_content: 'Deling' | 187 | share_content: 'Deling' |
187 | # share_email_label: 'Email' | 188 | # share_email_label: 'Email' |
189 | # public_link: 'public link' | ||
190 | # delete_public_link: 'delete public link' | ||
188 | download: 'Download' | 191 | download: 'Download' |
189 | # print: 'Print' | 192 | # print: 'Print' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: 'Vises artiklen forkert?' | 195 | description: 'Vises artiklen forkert?' |
193 | edit_title: 'Rediger titel' | 196 | edit_title: 'Rediger titel' |
194 | original_article: 'original' | 197 | original_article: 'original' |
195 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' | 198 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' |
196 | created_at: 'Oprettelsesdato' | 199 | created_at: 'Oprettelsesdato' |
197 | new: | 200 | new: |
198 | page_title: 'Gem ny artikel' | 201 | page_title: 'Gem ny artikel' |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'Url' | 208 | url_label: 'Url' |
206 | # is_public_label: 'Public' | 209 | # is_public_label: 'Public' |
207 | save_label: 'Gem' | 210 | save_label: 'Gem' |
211 | public: | ||
212 | # shared_by_wallabag: "This article has been shared by <a href=%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'Om' | 215 | page_title: 'Om' |
@@ -260,12 +265,14 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | # page_title: 'Quickstart' | 267 | # page_title: 'Quickstart' |
268 | # more: 'More…' | ||
263 | # intro: | 269 | # intro: |
264 | # title: 'Welcome to wallabag!' | 270 | # title: 'Welcome to wallabag!' |
265 | # paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you." | 271 | # paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you." |
266 | # paragraph_2: 'Follow us!' | 272 | # paragraph_2: 'Follow us!' |
267 | # configure: | 273 | # configure: |
268 | # title: 'Configure the application' | 274 | # title: 'Configure the application' |
275 | # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | ||
269 | # language: 'Change language and design' | 276 | # language: 'Change language and design' |
270 | # rss: 'Enable RSS feeds' | 277 | # rss: 'Enable RSS feeds' |
271 | # tagging_rules: 'Write rules to automatically tag your articles' | 278 | # tagging_rules: 'Write rules to automatically tag your articles' |
@@ -279,6 +286,7 @@ quickstart: | |||
279 | # import: 'Configure import' | 286 | # import: 'Configure import' |
280 | # first_steps: | 287 | # first_steps: |
281 | # title: 'First steps' | 288 | # title: 'First steps' |
289 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
282 | # new_article: 'Save your first article' | 290 | # new_article: 'Save your first article' |
283 | # unread_articles: 'And classify it!' | 291 | # unread_articles: 'And classify it!' |
284 | # migrate: | 292 | # migrate: |
@@ -287,11 +295,16 @@ quickstart: | |||
287 | # pocket: 'Migrate from Pocket' | 295 | # pocket: 'Migrate from Pocket' |
288 | # wallabag_v1: 'Migrate from wallabag v1' | 296 | # wallabag_v1: 'Migrate from wallabag v1' |
289 | # wallabag_v2: 'Migrate from wallabag v2' | 297 | # wallabag_v2: 'Migrate from wallabag v2' |
298 | # readability: 'Migrate from Readability' | ||
299 | # instapaper: 'Migrate from Instapaper' | ||
290 | # developer: | 300 | # developer: |
291 | # title: 'Developers' | 301 | # title: 'Developers' |
302 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
292 | # create_application: 'Create your third application' | 303 | # create_application: 'Create your third application' |
304 | # use_docker: 'Use Docker to install wallabag' | ||
293 | # docs: | 305 | # docs: |
294 | # title: 'Full documentation' | 306 | # title: 'Full documentation' |
307 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
295 | # annotate: 'Annotate your article' | 308 | # annotate: 'Annotate your article' |
296 | # export: 'Convert your articles into ePUB or PDF' | 309 | # export: 'Convert your articles into ePUB or PDF' |
297 | # search_filters: 'See how you can look for an article by using search engine and filters' | 310 | # search_filters: 'See how you can look for an article by using search engine and filters' |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Tags' | 321 | page_title: 'Tags' |
309 | list: | 322 | list: |
310 | # number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' | 323 | # number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' |
324 | # see_untagged_entries: 'See untagged entries' | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | # page_title: 'Import' | 327 | # page_title: 'Import' |
@@ -335,6 +349,24 @@ import: | |||
335 | # wallabag_v2: | 349 | # wallabag_v2: |
336 | # page_title: 'Import > Wallabag v2' | 350 | # page_title: 'Import > Wallabag v2' |
337 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' | 351 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' |
352 | # readability: | ||
353 | # page_title: 'Import > Readability' | ||
354 | # description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | ||
355 | # how_to: 'Please select your Readability export and click on the below button to upload and import it.' | ||
356 | worker: | ||
357 | # enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | ||
358 | # firefox: | ||
359 | # page_title: 'Import > Firefox' | ||
360 | # description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
361 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
362 | #chrome: | ||
363 | # page_title: 'Import > Chrome' | ||
364 | # description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | ||
365 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
366 | # instapaper: | ||
367 | # page_title: 'Import > Instapaper' | ||
368 | # description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | ||
369 | # how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | # page_title: 'Developer' | 372 | # page_title: 'Developer' |
@@ -361,12 +393,14 @@ developer: | |||
361 | # page_title: 'Developer > New client' | 393 | # page_title: 'Developer > New client' |
362 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' | 394 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' |
363 | # form: | 395 | # form: |
396 | # name_label: 'Name of the client' | ||
364 | # redirect_uris_label: 'Redirect URIs' | 397 | # redirect_uris_label: 'Redirect URIs' |
365 | # save_label: 'Create a new client' | 398 | # save_label: 'Create a new client' |
366 | # action_back: 'Back' | 399 | # action_back: 'Back' |
367 | # client_parameter: | 400 | # client_parameter: |
368 | # page_title: 'Developer > Client parameters' | 401 | # page_title: 'Developer > Client parameters' |
369 | # page_description: 'Here are your client parameters.' | 402 | # page_description: 'Here are your client parameters.' |
403 | # field_name: 'Client name' | ||
370 | # field_id: 'Client ID' | 404 | # field_id: 'Client ID' |
371 | # field_secret: 'Client secret' | 405 | # field_secret: 'Client secret' |
372 | # back: 'Back' | 406 | # back: 'Back' |
@@ -384,6 +418,33 @@ developer: | |||
384 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' | 418 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' |
385 | # back: 'Back' | 419 | # back: 'Back' |
386 | 420 | ||
421 | user: | ||
422 | # page_title: Users management | ||
423 | # new_user: Create a new user | ||
424 | # edit_user: Edit an existing user | ||
425 | # description: "Here you can manage all users (create, edit and delete)" | ||
426 | # list: | ||
427 | # actions: Actions | ||
428 | # edit_action: Edit | ||
429 | # yes: Yes | ||
430 | # no: No | ||
431 | # create_new_one: Create a new user | ||
432 | form: | ||
433 | username_label: 'Brugernavn' | ||
434 | # name_label: 'Name' | ||
435 | password_label: 'Adgangskode' | ||
436 | repeat_new_password_label: 'Gentag adgangskode' | ||
437 | plain_password_label: '????' | ||
438 | email_label: 'Emailadresse' | ||
439 | # enabled_label: 'Enabled' | ||
440 | # locked_label: 'Locked' | ||
441 | # last_login_label: 'Last login' | ||
442 | # twofactor_label: Two factor authentication | ||
443 | # save: Save | ||
444 | # delete: Delete | ||
445 | # delete_confirm: Are you sure? | ||
446 | # back_to_list: Back to list | ||
447 | |||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
389 | notice: | 450 | notice: |
@@ -400,10 +461,10 @@ flashes: | |||
400 | notice: | 461 | notice: |
401 | # entry_already_saved: 'Entry already saved on %date%' | 462 | # entry_already_saved: 'Entry already saved on %date%' |
402 | # entry_saved: 'Entry saved' | 463 | # entry_saved: 'Entry saved' |
403 | # entry_saved_failed: 'Failed to save entry' | 464 | # entry_saved_failed: 'Entry saved but fetching content failed' |
404 | # entry_updated: 'Entry updated' | 465 | # entry_updated: 'Entry updated' |
405 | # entry_reloaded: 'Entry reloaded' | 466 | # entry_reloaded: 'Entry reloaded' |
406 | # entry_reload_failed: 'Failed to reload entry' | 467 | # entry_reloaded_failed: 'Entry reloaded but fetching content failed' |
407 | entry_archived: 'Artikel arkiveret' | 468 | entry_archived: 'Artikel arkiveret' |
408 | entry_unarchived: 'Artikel ikke længere arkiveret' | 469 | entry_unarchived: 'Artikel ikke længere arkiveret' |
409 | entry_starred: 'Artikel markeret som favorit' | 470 | entry_starred: 'Artikel markeret som favorit' |
@@ -417,6 +478,10 @@ flashes: | |||
417 | # failed: 'Import failed, please try again.' | 478 | # failed: 'Import failed, please try again.' |
418 | # failed_on_file: 'Error while processing import. Please verify your import file.' | 479 | # failed_on_file: 'Error while processing import. Please verify your import file.' |
419 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' | 480 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' |
481 | # summary_with_queue: 'Import summary: %queued% queued.' | ||
482 | error: | ||
483 | # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | ||
484 | # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | ||
420 | developer: | 485 | developer: |
421 | notice: | 486 | notice: |
422 | # client_created: 'New client created.' | 487 | # client_created: 'New client created.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml index 28d826b6..d1df8669 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml | |||
@@ -11,8 +11,8 @@ security: | |||
11 | resetting: | 11 | resetting: |
12 | description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts." | 12 | description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts." |
13 | register: | 13 | register: |
14 | page_title: 'Account erstellen' | 14 | page_title: 'Konto erstellen' |
15 | go_to_account: 'Gehe zu deinem Account' | 15 | go_to_account: 'Gehe zu deinem Konto' |
16 | 16 | ||
17 | menu: | 17 | menu: |
18 | left: | 18 | left: |
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Suche' | 31 | search: 'Suche' |
32 | save_link: 'Link speichern' | 32 | save_link: 'Link speichern' |
33 | back_to_unread: 'Zurück zu ungelesenen Artikeln' | 33 | back_to_unread: 'Zurück zu ungelesenen Artikeln' |
34 | users_management: 'Benutzerverwaltung' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Neuen Artikel hinzufügen' | 36 | add_new_entry: 'Neuen Artikel hinzufügen' |
36 | search: 'Suche' | 37 | search: 'Suche' |
@@ -45,13 +46,14 @@ footer: | |||
45 | social: 'Soziales' | 46 | social: 'Soziales' |
46 | powered_by: 'angetrieben von' | 47 | powered_by: 'angetrieben von' |
47 | about: 'Über' | 48 | about: 'Über' |
49 | stats: Seit %user_creation% hast du %nb_archives% Artikel gelesen. Das sind ungefähr %per_day% pro Tag! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Einstellungen' | 52 | page_title: 'Einstellungen' |
51 | tab_menu: | 53 | tab_menu: |
52 | settings: 'Einstellungen' | 54 | settings: 'Einstellungen' |
53 | rss: 'RSS' | 55 | rss: 'RSS' |
54 | user_info: 'Benutzer-Information' | 56 | user_info: 'Benutzerinformation' |
55 | password: 'Kennwort' | 57 | password: 'Kennwort' |
56 | rules: 'Tagging-Regeln' | 58 | rules: 'Tagging-Regeln' |
57 | new_user: 'Benutzer hinzufügen' | 59 | new_user: 'Benutzer hinzufügen' |
@@ -68,20 +70,21 @@ config: | |||
68 | 200_word: 'Ich lese ~200 Wörter pro Minute' | 70 | 200_word: 'Ich lese ~200 Wörter pro Minute' |
69 | 300_word: 'Ich lese ~300 Wörter pro Minute' | 71 | 300_word: 'Ich lese ~300 Wörter pro Minute' |
70 | 400_word: 'Ich lese ~400 Wörter pro Minute' | 72 | 400_word: 'Ich lese ~400 Wörter pro Minute' |
73 | pocket_consumer_key_label: Consumer-Key für Pocket, um Inhalte zu importieren | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.' | 75 | description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.' |
73 | token_label: 'RSS-token' | 76 | token_label: 'RSS-Token' |
74 | no_token: 'Kein Token' | 77 | no_token: 'Kein Token' |
75 | token_create: 'Token erstellen' | 78 | token_create: 'Token erstellen' |
76 | token_reset: 'Token zurücksetzen' | 79 | token_reset: 'Token zurücksetzen' |
77 | rss_links: 'RSS-Links' | 80 | rss_links: 'RSS-Links' |
78 | rss_link: | 81 | rss_link: |
79 | unread: 'ungelesen' | 82 | unread: 'Ungelesene' |
80 | starred: 'favoriten' | 83 | starred: 'Favoriten' |
81 | archive: 'archiv' | 84 | archive: 'Archivierte' |
82 | rss_limit: 'Anzahl der Einträge im Feed' | 85 | rss_limit: 'Anzahl der Einträge pro Feed' |
83 | form_user: | 86 | form_user: |
84 | two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertraulichen Verbindung" | 87 | two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertrauenswürdigen Verbindung" |
85 | name_label: 'Name' | 88 | name_label: 'Name' |
86 | email_label: 'E-Mail-Adresse' | 89 | email_label: 'E-Mail-Adresse' |
87 | twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung' | 90 | twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung' |
@@ -93,15 +96,16 @@ config: | |||
93 | if_label: 'Wenn' | 96 | if_label: 'Wenn' |
94 | then_tag_as_label: 'dann tagge als' | 97 | then_tag_as_label: 'dann tagge als' |
95 | delete_rule_label: 'löschen' | 98 | delete_rule_label: 'löschen' |
99 | edit_rule_label: 'bearbeiten' | ||
96 | rule_label: 'Regel' | 100 | rule_label: 'Regel' |
97 | tags_label: 'Tags' | 101 | tags_label: 'Tags' |
98 | faq: | 102 | faq: |
99 | title: 'FAQ' | 103 | title: 'FAQ' |
100 | tagging_rules_definition_title: 'Was bedeuten die "Tagging-Regeln"?' | 104 | tagging_rules_definition_title: 'Was bedeuten die "Tagging-Regeln"?' |
101 | tagging_rules_definition_description: 'Dies sind Regeln von wallabag, um neu hinzugefügte Einträge autmatisch zu taggen.<br />Jedes Mal, wenn ein neuer Eintrag hinzufügt wird, werden die Tagging-Regeln angewandt. Dies erleichtert dir die Arbeit, deine Einträge manuell zu klassifizieren.' | 105 | tagging_rules_definition_description: 'Dies sind Regeln von wallabag, um neu hinzugefügte Einträge automatisch zu taggen.<br />Jedes Mal, wenn ein neuer Eintrag hinzugefügt wird, werden die Tagging-Regeln angewandt. Dies erleichtert dir die Arbeit, deine Einträge manuell zu kategorisieren.' |
102 | how_to_use_them_title: 'Wie nutze ich sie?' | 106 | how_to_use_them_title: 'Wie nutze ich sie?' |
103 | how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als "<i>schnell lesbar</i>" taggen, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Falle solltest du "readingTime <= 3" in das <i>Regel</i>-Feld und "<i>schnell lesbar</i>" in das <i>Tags</i>-Feld schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Kommata getrennt werden: "<i>schnell lesbar, interessant</i>"<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: if "<i>readingTime >= 5 AND domainName = "github.com"</i>" then tag as "<i>long reading, github </i>"' | 107 | how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als "<i>schnell lesbar</i>" taggen, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Fall solltest du "readingTime <= 3" in das Feld <i>Regel</i> und "<i>schnell lesbar</i>" in das Feld <i>Tags</i> schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Komma getrennt werden: "<i>schnell lesbar, interessant</i>".<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: if "<i>readingTime >= 5 AND domainName = "github.com"</i>" dann tagge als "<i>länger lesen, github</i>".' |
104 | variables_available_title: 'Welche Variablen und Operatoren kann ich nutzen, um Regeln zu schreiben?' | 108 | variables_available_title: 'Welche Variablen und Operatoren kann ich benutzen, um Regeln zu schreiben?' |
105 | variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:' | 109 | variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:' |
106 | meaning: 'Bedeutung' | 110 | meaning: 'Bedeutung' |
107 | variable_description: | 111 | variable_description: |
@@ -114,7 +118,7 @@ config: | |||
114 | language: "Sprache des Eintrags" | 118 | language: "Sprache des Eintrags" |
115 | mimetype: "MIME-Typ des Eintrags" | 119 | mimetype: "MIME-Typ des Eintrags" |
116 | readingTime: "Die geschätzte Lesezeit in Minuten" | 120 | readingTime: "Die geschätzte Lesezeit in Minuten" |
117 | domainName: 'Der Domain-Name des Eintrags' | 121 | domainName: 'Der Domainname des Eintrags' |
118 | operator_description: | 122 | operator_description: |
119 | label: 'Operator' | 123 | label: 'Operator' |
120 | less_than: 'Weniger oder gleich als…' | 124 | less_than: 'Weniger oder gleich als…' |
@@ -125,13 +129,7 @@ config: | |||
125 | not_equal_to: 'ungleich' | 129 | not_equal_to: 'ungleich' |
126 | or: 'Eine Regel ODER die andere' | 130 | or: 'Eine Regel ODER die andere' |
127 | and: 'Eine Regel UND eine andere' | 131 | and: 'Eine Regel UND eine andere' |
128 | matches: 'Tests, ob eine <i>Variable</i> auf eine <i>Suche</i> zutrifft (Groß- und Kleinschreibung wird nicht berücksichtigt).<br />Beispiel: <code>title matches "Fußball"</code>' | 132 | matches: 'Testet, ob eine <i>Variable</i> auf eine <i>Suche</i> zutrifft (Groß- und Kleinschreibung wird nicht berücksichtigt).<br />Beispiel: <code>title matches "Fußball"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Benutzername' | ||
131 | password_label: 'Kennwort' | ||
132 | repeat_new_password_label: 'Neues Kennwort wiederholen' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'E-Mail-Adresse' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,20 +137,23 @@ entry: | |||
139 | starred: 'Favorisierte Einträge' | 137 | starred: 'Favorisierte Einträge' |
140 | archived: 'Archivierte Einträge' | 138 | archived: 'Archivierte Einträge' |
141 | filtered: 'Gefilterte Einträge' | 139 | filtered: 'Gefilterte Einträge' |
140 | filtered_tags: 'Gefiltert nach Tags' | ||
141 | untagged: 'Nicht getaggte Einträge' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: '{0} Es gibt keine Einträge.|{1} Es gibt einen Eintrag.|]1,Inf[ Es gibt %count% Einträge.' | 143 | number_on_the_page: '{0} Es gibt keine Einträge.|{1} Es gibt einen Eintrag.|]1,Inf[ Es gibt %count% Einträge.' |
144 | reading_time: 'geschätzte Lesezeit' | 144 | reading_time: 'geschätzte Lesezeit' |
145 | reading_time_minutes: 'geschätzte Lesezeit: %readingTime% min' | 145 | reading_time_minutes: 'geschätzte Lesezeit: %readingTime% min' |
146 | reading_time_less_one_minute: 'geschätzte Lesezeit: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'geschätzte Lesezeit: <small class="inferieur"><</small> 1 min' |
147 | number_of_tags: '{1}und ein anderer Tag|]1,Inf[und %count% andere Tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'Original' |
150 | toogle_as_read: 'Gelesen-Status ändern' | 151 | toogle_as_read: 'Gelesen-Status ändern' |
151 | toogle_as_star: 'Favoriten-Status ändern' | 152 | toogle_as_star: 'Favoriten-Status ändern' |
152 | delete: 'Löschen' | 153 | delete: 'Löschen' |
153 | export_title: 'Exportieren' | 154 | export_title: 'Exportieren' |
154 | filters: | 155 | filters: |
155 | title: 'Filters' | 156 | title: 'Filter' |
156 | status_label: 'Status' | 157 | status_label: 'Status' |
157 | archived_label: 'Archiviert' | 158 | archived_label: 'Archiviert' |
158 | starred_label: 'Favorisiert' | 159 | starred_label: 'Favorisiert' |
@@ -164,14 +165,14 @@ entry: | |||
164 | label: 'Lesezeit in Minuten' | 165 | label: 'Lesezeit in Minuten' |
165 | from: 'von' | 166 | from: 'von' |
166 | to: 'bis' | 167 | to: 'bis' |
167 | domain_label: 'Domain-Name' | 168 | domain_label: 'Domainname' |
168 | created_at: | 169 | created_at: |
169 | label: 'Erstellungsdatum' | 170 | label: 'Erstellungsdatum' |
170 | from: 'von' | 171 | from: 'von' |
171 | to: 'bis' | 172 | to: 'bis' |
172 | action: | 173 | action: |
173 | clear: 'Zurücksetzen' | 174 | clear: 'Zurücksetzen' |
174 | filter: 'Filter' | 175 | filter: 'Filtern' |
175 | view: | 176 | view: |
176 | left_menu: | 177 | left_menu: |
177 | back_to_top: 'Nach oben' | 178 | back_to_top: 'Nach oben' |
@@ -179,12 +180,14 @@ entry: | |||
179 | set_as_read: 'Als gelesen markieren' | 180 | set_as_read: 'Als gelesen markieren' |
180 | set_as_unread: 'Als ungelesen markieren' | 181 | set_as_unread: 'Als ungelesen markieren' |
181 | set_as_starred: 'Favorisieren' | 182 | set_as_starred: 'Favorisieren' |
182 | view_original_article: 'Original-Artikel' | 183 | view_original_article: 'Originalartikel' |
183 | re_fetch_content: 'Inhalt neu laden' | 184 | re_fetch_content: 'Inhalt neu laden' |
184 | delete: 'Löschen' | 185 | delete: 'Löschen' |
185 | add_a_tag: 'Tag hinzufügen' | 186 | add_a_tag: 'Tag hinzufügen' |
186 | share_content: 'Teilen' | 187 | share_content: 'Teilen' |
187 | share_email_label: 'E-Mail' | 188 | share_email_label: 'E-Mail' |
189 | public_link: 'Öffentlicher Link' | ||
190 | delete_public_link: 'Lösche öffentlichen Link' | ||
188 | download: 'Herunterladen' | 191 | download: 'Herunterladen' |
189 | print: 'Drucken' | 192 | print: 'Drucken' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: 'Erscheint dieser Artikel falsch?' | 195 | description: 'Erscheint dieser Artikel falsch?' |
193 | edit_title: 'Titel ändern' | 196 | edit_title: 'Titel ändern' |
194 | original_article: 'original' | 197 | original_article: 'original' |
195 | annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %nbAnnotations% Anmerkungen' | 198 | annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %count% Anmerkungen' |
196 | created_at: 'Erstellungsdatum' | 199 | created_at: 'Erstellungsdatum' |
197 | new: | 200 | new: |
198 | page_title: 'Neuen Artikel speichern' | 201 | page_title: 'Neuen Artikel speichern' |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'URL' | 208 | url_label: 'URL' |
206 | is_public_label: 'Öffentlich' | 209 | is_public_label: 'Öffentlich' |
207 | save_label: 'Speichern' | 210 | save_label: 'Speichern' |
211 | public: | ||
212 | shared_by_wallabag: "Dieser Artikel wurde mittels <a href='%wallabag_instance%'>wallabag</a> geteilt" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'Über' | 215 | page_title: 'Über' |
@@ -213,7 +218,7 @@ about: | |||
213 | getting_help: 'Hilfe bekommen' | 218 | getting_help: 'Hilfe bekommen' |
214 | helping: 'wallabag unterstützen' | 219 | helping: 'wallabag unterstützen' |
215 | contributors: 'Unterstützer' | 220 | contributors: 'Unterstützer' |
216 | third_party: 'Third-party libraries' | 221 | third_party: 'Bibliotheken von Drittanbietern' |
217 | who_behind_wallabag: | 222 | who_behind_wallabag: |
218 | developped_by: 'Entwickelt von' | 223 | developped_by: 'Entwickelt von' |
219 | website: 'Webseite' | 224 | website: 'Webseite' |
@@ -223,12 +228,12 @@ about: | |||
223 | version: 'Version' | 228 | version: 'Version' |
224 | getting_help: | 229 | getting_help: |
225 | documentation: 'Dokumentation' | 230 | documentation: 'Dokumentation' |
226 | bug_reports: 'Bugs' | 231 | bug_reports: 'Fehlerberichte' |
227 | support: '<a href="https://support.wallabag.org">Auf unserer Support-Webseite</a> oder <a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>' | 232 | support: '<a href="https://support.wallabag.org">Auf unserer Support-Webseite</a> oder <a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>' |
228 | helping: | 233 | helping: |
229 | description: 'wallabag ist kostenlos und Open-Source. Du kannst uns helfen:' | 234 | description: 'wallabag ist frei und Open Source. Du kannst uns helfen:' |
230 | by_contributing: 'indem du zu dem Projekt beiträgst:' | 235 | by_contributing: 'indem du zu dem Projekt beiträgst:' |
231 | by_contributing_2: 'ein Issue listet alle unsere Bedürfnisse:' | 236 | by_contributing_2: 'ein Ticket listet alle unsere Bedürfnisse:' |
232 | by_paypal: 'via PayPal' | 237 | by_paypal: 'via PayPal' |
233 | contributors: | 238 | contributors: |
234 | description: 'Ein Dankeschön an die Unterstützer von wallabag' | 239 | description: 'Ein Dankeschön an die Unterstützer von wallabag' |
@@ -241,11 +246,11 @@ howto: | |||
241 | page_title: 'How-To' | 246 | page_title: 'How-To' |
242 | page_description: 'Es gibt mehrere Möglichkeiten, einen Artikel zu speichern:' | 247 | page_description: 'Es gibt mehrere Möglichkeiten, einen Artikel zu speichern:' |
243 | top_menu: | 248 | top_menu: |
244 | browser_addons: 'Browser-Addons' | 249 | browser_addons: 'Browser-Erweiterungen' |
245 | mobile_apps: 'Apps' | 250 | mobile_apps: 'Apps' |
246 | bookmarklet: 'Bookmarklet' | 251 | bookmarklet: 'Lesezeichen' |
247 | form: | 252 | form: |
248 | description: 'Danke an dieses Formular' | 253 | description: 'Dank dieses Formulars' |
249 | browser_addons: | 254 | browser_addons: |
250 | firefox: 'Firefox-Erweiterung' | 255 | firefox: 'Firefox-Erweiterung' |
251 | chrome: 'Chrome-Erweiterung' | 256 | chrome: 'Chrome-Erweiterung' |
@@ -260,38 +265,46 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | page_title: 'Schnelleinstieg' | 267 | page_title: 'Schnelleinstieg' |
268 | more: 'Mehr…' | ||
263 | intro: | 269 | intro: |
264 | title: 'Willkommen zu wallabag!' | 270 | title: 'Willkommen zu wallabag!' |
265 | paragraph_1: "Wir werden dich bei der Benutzung von wallabag begleiten und dir einige Funktionen zeigen, die dich interessieren könnten." | 271 | paragraph_1: "Wir werden dich bei der Benutzung von wallabag begleiten und dir einige Funktionen zeigen, die dich interessieren könnten." |
266 | paragraph_2: 'Folge uns!' | 272 | paragraph_2: 'Folge uns!' |
267 | configure: | 273 | configure: |
268 | title: 'Anwendung konfigurieren' | 274 | title: 'Anwendung konfigurieren' |
275 | description: 'Um die Applikation für dich anzupassen, schau in die Konfiguration von wallabag.' | ||
269 | language: 'Sprache und Design ändern' | 276 | language: 'Sprache und Design ändern' |
270 | rss: 'RSS-Feeds aktivieren' | 277 | rss: 'RSS-Feeds aktivieren' |
271 | tagging_rules: 'Schreibe Regeln, um deine Beiträge automatisch zu taggen (verschlagworten)' | 278 | tagging_rules: 'Schreibe Regeln, um deine Beiträge automatisch zu taggen (verschlagworten)' |
272 | admin: | 279 | admin: |
273 | title: 'Administration' | 280 | title: 'Administration' |
274 | description: 'Als Adminstrator hast du einige Privilegien. Du kannst:' | 281 | description: 'Als Adminstrator hast du einige Privilegien. Du kannst:' |
275 | new_user: 'Einen neuen Nutzer anlegen' | 282 | new_user: 'Einen neuen Benutzer anlegen' |
276 | analytics: 'das Tracking konfigurieren' | 283 | analytics: 'das Tracking konfigurieren' |
277 | sharing: 'Einige Parameter für das Teilen von Artikel setzen' | 284 | sharing: 'Einige Parameter für das Teilen von Artikel setzen' |
278 | export: 'Export-Einstellungen ändern' | 285 | export: 'Export-Einstellungen ändern' |
279 | import: 'Import-Einstellungen ändern' | 286 | import: 'Import-Einstellungen ändern' |
280 | first_steps: | 287 | first_steps: |
281 | title: 'Erste Schritte' | 288 | title: 'Erste Schritte' |
289 | description: "Jetzt ist wallabag gut konfiguriert, es ist Zeit, das Web zu archivieren. Du kannst auf das Plussymbol + oben rechts klicken, um einen Link hinzuzufügen" | ||
282 | new_article: 'Speichere deinen ersten Artikel' | 290 | new_article: 'Speichere deinen ersten Artikel' |
283 | unread_articles: 'Und klassifiziere ihn!' | 291 | unread_articles: 'Und kategorisiere ihn!' |
284 | migrate: | 292 | migrate: |
285 | title: 'Von einem anderen Dienst migrieren' | 293 | title: 'Von einem anderen Dienst migrieren' |
286 | description: "Du nutzt einen anderen Dienst? Wir helfen dir, um deine Daten zu wallabag zu transportieren." | 294 | description: "Du nutzt einen anderen Dienst? Wir helfen dir, um deine Daten zu wallabag zu transportieren." |
287 | pocket: 'von Pocket migrieren' | 295 | pocket: 'von Pocket migrieren' |
288 | wallabag_v1: 'von wallabag v1 migrieren' | 296 | wallabag_v1: 'von wallabag v1 migrieren' |
289 | wallabag_v2: 'von wallabag v2 migrieren' | 297 | wallabag_v2: 'von wallabag v2 migrieren' |
298 | readability: 'von Readability migrieren' | ||
299 | instapaper: 'von Instapaper migrieren' | ||
290 | developer: | 300 | developer: |
291 | title: 'Entwickler' | 301 | title: 'Entwickler' |
302 | description: 'Wir haben auch an die Entwickler gedacht: Docker, API, Übersetzungen, etc.' | ||
292 | create_application: 'Erstelle eine Anwendung und nutze die wallabag API' | 303 | create_application: 'Erstelle eine Anwendung und nutze die wallabag API' |
304 | use_docker: 'Nutze Docker, um wallabag zu installieren' | ||
293 | docs: | 305 | docs: |
294 | title: 'Komplette Dokumentation' | 306 | title: 'Komplette Dokumentation' |
307 | description: "Es gibt so viele Features in wallabag. Zögere nicht, die Features im Handbuch zu erkunden und zu lernen, wie sie funktionieren." | ||
295 | annotate: 'Anmerkungen zu Artikeln hinzufügen' | 308 | annotate: 'Anmerkungen zu Artikeln hinzufügen' |
296 | export: 'Artikel nach ePUB oder PDF konvertieren' | 309 | export: 'Artikel nach ePUB oder PDF konvertieren' |
297 | search_filters: 'Schau nach, wie du nach einem Artikel über die Such- und Filterfunktion suchen kannst' | 310 | search_filters: 'Schau nach, wie du nach einem Artikel über die Such- und Filterfunktion suchen kannst' |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Tags' | 321 | page_title: 'Tags' |
309 | list: | 322 | list: |
310 | number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.' | 323 | number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.' |
324 | see_untagged_entries: 'Zeige nicht getaggte Einträge' | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | page_title: 'Importieren' | 327 | page_title: 'Importieren' |
@@ -324,25 +338,43 @@ import: | |||
324 | description: "Dieser Importer wird all deine Pocket-Daten importieren. Pocket erlaubt es uns nicht, den Inhalt zu migrieren, daher wird der lesbare Inhalt erneut von wallabag heruntergeladen." | 338 | description: "Dieser Importer wird all deine Pocket-Daten importieren. Pocket erlaubt es uns nicht, den Inhalt zu migrieren, daher wird der lesbare Inhalt erneut von wallabag heruntergeladen." |
325 | config_missing: | 339 | config_missing: |
326 | description: "Pocket-Import ist nicht konfiguriert." | 340 | description: "Pocket-Import ist nicht konfiguriert." |
327 | admin_message: 'Du musst noch den %keyurls%a pocket_consumer_key%keyurle% definieren.' | 341 | admin_message: 'Du musst noch den %keyurls%pocket_consumer_key%keyurle% eintragen.' |
328 | user_message: 'Der Server-Administrator muss noch einen API-Key für Pocket konfigurieren.' | 342 | user_message: 'Der Administrator des Servers muss noch einen API-Schlüssel für Pocket konfigurieren.' |
329 | authorize_message: 'Du kannst deine Daten von deinem Pocket-Account importieren. Dazu musst du nur den nachfolgenden Button klicken und die Anwendung authentifizieren, sich mit getpocket.com zu verbinden.' | 343 | authorize_message: 'Du kannst deine Daten von deinem Pocket-Konto importieren. Dazu musst du nur den nachfolgenden Button klicken und die Anwendung authentifizieren, sich mit getpocket.com zu verbinden zu dürfen.' |
330 | connect_to_pocket: 'Mit Pocket verbinden und Daten importieren' | 344 | connect_to_pocket: 'Mit Pocket verbinden und Daten importieren' |
331 | wallabag_v1: | 345 | wallabag_v1: |
332 | page_title: 'Aus wallabag v1 importieren' | 346 | page_title: 'Aus wallabag v1 importieren' |
333 | description: 'Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke auf der Konfigurations-Seite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.' | 347 | description: 'Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke in der Konfigurationsseite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.' |
334 | how_to: 'Wähle die Export-Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.' | 348 | how_to: 'Wähle die exportierte Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.' |
335 | wallabag_v2: | 349 | wallabag_v2: |
336 | page_title: 'Aus wallabag v2 importieren' | 350 | page_title: 'Aus wallabag v2 importieren' |
337 | description: 'Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.' | 351 | description: 'Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.' |
352 | readability: | ||
353 | page_title: 'Aus Readability importieren' | ||
354 | description: 'Dieser Import wird all deine Artikel aus Readability importieren. Auf der Tools Seite (https://www.readability.com/tools/) klickst du auf "Exportiere deine Daten" in dem Abschnitt "Datenexport". Du wirst eine E-Mail mit einem Downloadlink zu einer json Datei, die aber nicht auf .json endet, erhalten' | ||
355 | how_to: 'Bitte wähle deinen Readability Export aus und klicke den unteren Button für das Hochladen und Importieren dessen.' | ||
356 | worker: | ||
357 | enabled: "Der Import erfolgt asynchron. Sobald der Import gestartet ist, wird diese Aufgabe extern abgearbeitet. Der aktuelle Service dafür ist:" | ||
358 | firefox: | ||
359 | page_title: 'Aus Firefox importieren' | ||
360 | description: "Dieser Import wird all deine Lesezeichen aus Firefox importieren. Gehe zu deinen Lesezeichen (Strg+Shift+O), dann auf \"Importen und Sichern\", wähle \"Sichern…\". Du erhälst eine .json Datei." | ||
361 | how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen." | ||
362 | chrome: | ||
363 | page_title: 'Aus Chrome importieren' | ||
364 | description: "Dieser Import wird all deine Lesezeichen aus Chrome importieren. Der Pfad zu der Datei hängt von deinem Betriebssystem ab: <ul><li>In Linux gehst du zu dem <code>~/.config/chromium/Default/</code> Verzeichnis</li><li>In Windows sollte es unter <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code> sein</li><li>In OS X sollte es unter <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code> sein</li></ul>Wenn du dort angekommen bist, kopiere die Lesezeichendatei <code>Bookmarks</code> zu einem Ort, den du später wiederfindest.<em><br>Beachte falls du Chromium statt Chrome hast, dass du den zuvor genannten Pfad entsprechend anpasst.</em></p>" | ||
365 | how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen." | ||
366 | instapaper: | ||
367 | page_title: 'Aus Instapaper importieren' | ||
368 | description: 'Dieser Import wird all deine Instapaper Artikel importieren. Auf der Einstellungsseite (https://www.instapaper.com/user) klickst du auf "Download .CSV Datei" in dem Abschnitt "Export". Eine CSV Datei wird heruntergeladen (z.B. "instapaper-export.csv").' | ||
369 | how_to: "Bitte wähle deine Instapaper Sicherungsdatei aus und klicke den nachfolgenden Button zum Importieren." | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | page_title: 'Entwickler' | 372 | page_title: 'Entwickler' |
341 | welcome_message: 'Willkomen zur wallabag-API' | 373 | welcome_message: 'Willkomen zur wallabag API' |
342 | documentation: 'Dokumentation' | 374 | documentation: 'Dokumentation' |
343 | how_to_first_app: 'Wie erstelle ich meine erste Anwendung' | 375 | how_to_first_app: 'Wie erstelle ich meine erste Anwendung' |
344 | full_documentation: 'Komplette API-Dokumentation einsehen' | 376 | full_documentation: 'Komplette API-Dokumentation einsehen' |
345 | # list_methods: 'List API methods' | 377 | list_methods: 'Liste der API-Methoden' |
346 | clients: | 378 | clients: |
347 | title: 'Clients' | 379 | title: 'Clients' |
348 | create_new: 'Neuen Client erstellen' | 380 | create_new: 'Neuen Client erstellen' |
@@ -355,18 +387,20 @@ developer: | |||
355 | no_client: 'Bisher kein Client.' | 387 | no_client: 'Bisher kein Client.' |
356 | remove: | 388 | remove: |
357 | warn_message_1: 'Du hast die Möglichkeit, diesen Client zu entfernen. DIESE AKTION IST NICHT WIDERRUFBAR!' | 389 | warn_message_1: 'Du hast die Möglichkeit, diesen Client zu entfernen. DIESE AKTION IST NICHT WIDERRUFBAR!' |
358 | warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Account anzumelden." | 390 | warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Konto anzumelden." |
359 | action: 'Client entfernen' | 391 | action: 'Client entfernen' |
360 | client: | 392 | client: |
361 | page_title: 'Entwickler > Neuer Client' | 393 | page_title: 'Entwickler > Neuer Client' |
362 | page_description: 'Du bist dabei, einen neuen Client zu erstellen. Fülle das nachfolgende Feld für die Weiterleitungs-URIs deiner Anwendung aus.' | 394 | page_description: 'Du bist dabei, einen neuen Client zu erstellen. Fülle das nachfolgende Feld für die Weiterleitungs-URIs deiner Anwendung aus.' |
363 | form: | 395 | form: |
396 | name_label: 'Name des Clients' | ||
364 | redirect_uris_label: 'Weiterleitungs-URIs' | 397 | redirect_uris_label: 'Weiterleitungs-URIs' |
365 | save_label: 'Neuen Client erstellen' | 398 | save_label: 'Neuen Client erstellen' |
366 | action_back: 'Zurück' | 399 | action_back: 'Zurück' |
367 | client_parameter: | 400 | client_parameter: |
368 | page_title: 'Entwickler > Client-Parameter' | 401 | page_title: 'Entwickler > Client-Parameter' |
369 | page_description: 'Dies sind deine Client-Parameter.' | 402 | page_description: 'Dies sind deine Client-Parameter.' |
403 | field_name: 'Client Name' | ||
370 | field_id: 'Client-ID' | 404 | field_id: 'Client-ID' |
371 | field_secret: 'Client-Secret' | 405 | field_secret: 'Client-Secret' |
372 | back: 'Zurück' | 406 | back: 'Zurück' |
@@ -384,12 +418,39 @@ developer: | |||
384 | paragraph_8: 'Wenn du alle API-Endpunkte sehen willst, werfe einen Blick auf die <a href="%link%">API-Dokumentation</a>.' | 418 | paragraph_8: 'Wenn du alle API-Endpunkte sehen willst, werfe einen Blick auf die <a href="%link%">API-Dokumentation</a>.' |
385 | back: 'Zurück' | 419 | back: 'Zurück' |
386 | 420 | ||
421 | user: | ||
422 | page_title: Benutzerverwaltung | ||
423 | new_user: Erstelle einen neuen Benutzer | ||
424 | edit_user: Bearbeite einen existierenden Benutzer | ||
425 | description: "Hier kannst du alle Benutzer verwalten (erstellen, bearbeiten und löschen)" | ||
426 | list: | ||
427 | actions: Aktionen | ||
428 | edit_action: Bearbeiten | ||
429 | yes: Ja | ||
430 | no: Nein | ||
431 | create_new_one: Erstelle einen neuen Benutzer | ||
432 | form: | ||
433 | username_label: 'Benutzername' | ||
434 | name_label: 'Name' | ||
435 | password_label: 'Kennwort' | ||
436 | repeat_new_password_label: 'Neues Kennwort wiederholen' | ||
437 | plain_password_label: '????' | ||
438 | email_label: 'E-Mail-Adresse' | ||
439 | enabled_label: 'Aktiviert' | ||
440 | locked_label: 'Gesperrt' | ||
441 | last_login_label: 'Letzter Login' | ||
442 | twofactor_label: Zwei-Faktor-Authentifizierung | ||
443 | save: Speichern | ||
444 | delete: Löschen | ||
445 | delete_confirm: Bist du sicher? | ||
446 | back_to_list: Zurück zur Liste | ||
447 | |||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
389 | notice: | 450 | notice: |
390 | config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.' | 451 | config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.' |
391 | password_updated: 'Kennwort aktualisiert' | 452 | password_updated: 'Kennwort aktualisiert' |
392 | password_not_updated_demo: "Im Test-Modus kannst du das Kennwort nicht ändern." | 453 | password_not_updated_demo: "Im Testmodus kannst du das Kennwort nicht ändern." |
393 | user_updated: 'Information aktualisiert' | 454 | user_updated: 'Information aktualisiert' |
394 | rss_updated: 'RSS-Informationen aktualisiert' | 455 | rss_updated: 'RSS-Informationen aktualisiert' |
395 | tagging_rules_updated: 'Tagging-Regeln aktualisiert' | 456 | tagging_rules_updated: 'Tagging-Regeln aktualisiert' |
@@ -400,15 +461,15 @@ flashes: | |||
400 | notice: | 461 | notice: |
401 | entry_already_saved: 'Eintrag bereits am %date% gespeichert' | 462 | entry_already_saved: 'Eintrag bereits am %date% gespeichert' |
402 | entry_saved: 'Eintrag gespeichert' | 463 | entry_saved: 'Eintrag gespeichert' |
403 | # entry_saved_failed: 'Failed to save entry' | 464 | entry_saved_failed: 'Eintrag gespeichert, aber das Abrufen des Inhalts ist fehlgeschlagen' |
404 | entry_updated: 'Eintrag aktualisiert' | 465 | entry_updated: 'Eintrag aktualisiert' |
405 | entry_reloaded: 'Eintrag neugeladen' | 466 | entry_reloaded: 'Eintrag neugeladen' |
406 | entry_reload_failed: 'Neuladen des Eintrags fehlgeschlagen' | 467 | entry_reloaded_failed: 'Eintrag neugeladen, aber das Abrufen des Inhalts ist fehlgeschlagen' |
407 | entry_archived: 'Artikel archiviert' | 468 | entry_archived: 'Eintrag archiviert' |
408 | entry_unarchived: 'Artikel dearchiviert' | 469 | entry_unarchived: 'Eintrag dearchiviert' |
409 | entry_starred: 'Artikel favorisiert' | 470 | entry_starred: 'Eintrag favorisiert' |
410 | entry_unstarred: 'Artikel defavorisiert' | 471 | entry_unstarred: 'Eintrag defavorisiert' |
411 | entry_deleted: 'Artikel gelöscht' | 472 | entry_deleted: 'Eintrag gelöscht' |
412 | tag: | 473 | tag: |
413 | notice: | 474 | notice: |
414 | tag_added: 'Tag hinzugefügt' | 475 | tag_added: 'Tag hinzugefügt' |
@@ -416,7 +477,11 @@ flashes: | |||
416 | notice: | 477 | notice: |
417 | failed: 'Import fehlgeschlagen, bitte erneut probieren.' | 478 | failed: 'Import fehlgeschlagen, bitte erneut probieren.' |
418 | failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.' | 479 | failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.' |
419 | summary: 'Import-Zusammenfassung: %imported% importiert, %skipped% bereits gespeichert.' | 480 | summary: 'Importzusammenfassung: %imported% importiert, %skipped% bereits gespeichert.' |
481 | summary_with_queue: 'Importzusammenfassung: %queued% eingereiht.' | ||
482 | error: | ||
483 | redis_enabled_not_installed: 'Redis ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine Redis-Konfiguration.' | ||
484 | rabbit_enabled_not_installed: 'RabbitMQ ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine RabbitMQ-Konfiguration.' | ||
420 | developer: | 485 | developer: |
421 | notice: | 486 | notice: |
422 | client_created: 'Neuer Client erstellt.' | 487 | client_created: 'Neuer Client erstellt.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml index c6633f5b..4a8934b8 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Search' | 31 | search: 'Search' |
32 | save_link: 'Save a link' | 32 | save_link: 'Save a link' |
33 | back_to_unread: 'Back to unread articles' | 33 | back_to_unread: 'Back to unread articles' |
34 | users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Add a new entry' | 36 | add_new_entry: 'Add a new entry' |
36 | search: 'Search' | 37 | search: 'Search' |
@@ -45,6 +46,7 @@ footer: | |||
45 | social: 'Social' | 46 | social: 'Social' |
46 | powered_by: 'powered by' | 47 | powered_by: 'powered by' |
47 | about: 'About' | 48 | about: 'About' |
49 | stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Config' | 52 | page_title: 'Config' |
@@ -68,6 +70,7 @@ config: | |||
68 | 200_word: 'I read ~200 words per minute' | 70 | 200_word: 'I read ~200 words per minute' |
69 | 300_word: 'I read ~300 words per minute' | 71 | 300_word: 'I read ~300 words per minute' |
70 | 400_word: 'I read ~400 words per minute' | 72 | 400_word: 'I read ~400 words per minute' |
73 | pocket_consumer_key_label: Consumer key for Pocket to import contents | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.' | 75 | description: 'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.' |
73 | token_label: 'RSS token' | 76 | token_label: 'RSS token' |
@@ -93,6 +96,7 @@ config: | |||
93 | if_label: 'if' | 96 | if_label: 'if' |
94 | then_tag_as_label: 'then tag as' | 97 | then_tag_as_label: 'then tag as' |
95 | delete_rule_label: 'delete' | 98 | delete_rule_label: 'delete' |
99 | edit_rule_label: 'edit' | ||
96 | rule_label: 'Rule' | 100 | rule_label: 'Rule' |
97 | tags_label: 'Tags' | 101 | tags_label: 'Tags' |
98 | faq: | 102 | faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | or: 'One rule OR another' | 130 | or: 'One rule OR another' |
127 | and: 'One rule AND another' | 131 | and: 'One rule AND another' |
128 | matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | 132 | matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Username' | ||
131 | password_label: 'Password' | ||
132 | repeat_new_password_label: 'Repeat new password' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'Email' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | starred: 'Starred entries' | 137 | starred: 'Starred entries' |
140 | archived: 'Archived entries' | 138 | archived: 'Archived entries' |
141 | filtered: 'Filtered entries' | 139 | filtered: 'Filtered entries' |
140 | filtered_tags: 'Filtered by tags' | ||
141 | untagged: 'Untagged entries' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: '{0} There are no entries.|{1} There is one entry.|]1,Inf[ There are %count% entries.' | 143 | number_on_the_page: '{0} There are no entries.|{1} There is one entry.|]1,Inf[ There are %count% entries.' |
144 | reading_time: 'estimated reading time' | 144 | reading_time: 'estimated reading time' |
145 | reading_time_minutes: 'estimated reading time: %readingTime% min' | 145 | reading_time_minutes: 'estimated reading time: %readingTime% min' |
146 | reading_time_less_one_minute: 'estimated reading time: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'estimated reading time: <small class="inferieur"><</small> 1 min' |
147 | number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'original' |
@@ -185,6 +186,8 @@ entry: | |||
185 | add_a_tag: 'Add a tag' | 186 | add_a_tag: 'Add a tag' |
186 | share_content: 'Share' | 187 | share_content: 'Share' |
187 | share_email_label: 'Email' | 188 | share_email_label: 'Email' |
189 | public_link: 'public link' | ||
190 | delete_public_link: 'delete public link' | ||
188 | download: 'Download' | 191 | download: 'Download' |
189 | print: 'Print' | 192 | print: 'Print' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: 'Does this article appear wrong?' | 195 | description: 'Does this article appear wrong?' |
193 | edit_title: 'Edit title' | 196 | edit_title: 'Edit title' |
194 | original_article: 'original' | 197 | original_article: 'original' |
195 | annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' | 198 | annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' |
196 | created_at: 'Creation date' | 199 | created_at: 'Creation date' |
197 | new: | 200 | new: |
198 | page_title: 'Save new entry' | 201 | page_title: 'Save new entry' |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'Url' | 208 | url_label: 'Url' |
206 | is_public_label: 'Public' | 209 | is_public_label: 'Public' |
207 | save_label: 'Save' | 210 | save_label: 'Save' |
211 | public: | ||
212 | shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'About' | 215 | page_title: 'About' |
@@ -260,12 +265,14 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | page_title: 'Quickstart' | 267 | page_title: 'Quickstart' |
268 | more: 'More…' | ||
263 | intro: | 269 | intro: |
264 | title: 'Welcome to wallabag!' | 270 | title: 'Welcome to wallabag!' |
265 | paragraph_1: "We'll accompany you on your visit to wallabag and show you some features that might interest you." | 271 | paragraph_1: "We'll accompany you on your visit to wallabag and show you some features that might interest you." |
266 | paragraph_2: 'Follow us!' | 272 | paragraph_2: 'Follow us!' |
267 | configure: | 273 | configure: |
268 | title: 'Configure the application' | 274 | title: 'Configure the application' |
275 | description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | ||
269 | language: 'Change language and design' | 276 | language: 'Change language and design' |
270 | rss: 'Enable RSS feeds' | 277 | rss: 'Enable RSS feeds' |
271 | tagging_rules: 'Write rules to automatically tag your articles' | 278 | tagging_rules: 'Write rules to automatically tag your articles' |
@@ -279,6 +286,7 @@ quickstart: | |||
279 | import: 'Configure import' | 286 | import: 'Configure import' |
280 | first_steps: | 287 | first_steps: |
281 | title: 'First steps' | 288 | title: 'First steps' |
289 | description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
282 | new_article: 'Save your first article' | 290 | new_article: 'Save your first article' |
283 | unread_articles: 'And classify it!' | 291 | unread_articles: 'And classify it!' |
284 | migrate: | 292 | migrate: |
@@ -287,11 +295,16 @@ quickstart: | |||
287 | pocket: 'Migrate from Pocket' | 295 | pocket: 'Migrate from Pocket' |
288 | wallabag_v1: 'Migrate from wallabag v1' | 296 | wallabag_v1: 'Migrate from wallabag v1' |
289 | wallabag_v2: 'Migrate from wallabag v2' | 297 | wallabag_v2: 'Migrate from wallabag v2' |
298 | readability: 'Migrate from Readability' | ||
299 | instapaper: 'Migrate from Instapaper' | ||
290 | developer: | 300 | developer: |
291 | title: 'Developers' | 301 | title: 'Developers' |
302 | description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
292 | create_application: 'Create your third application' | 303 | create_application: 'Create your third application' |
304 | use_docker: 'Use Docker to install wallabag' | ||
293 | docs: | 305 | docs: |
294 | title: 'Full documentation' | 306 | title: 'Full documentation' |
307 | description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
295 | annotate: 'Annotate your article' | 308 | annotate: 'Annotate your article' |
296 | export: 'Convert your articles into ePUB or PDF' | 309 | export: 'Convert your articles into ePUB or PDF' |
297 | search_filters: 'See how you can look for an article by using the search engine and filters' | 310 | search_filters: 'See how you can look for an article by using the search engine and filters' |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Tags' | 321 | page_title: 'Tags' |
309 | list: | 322 | list: |
310 | number_on_the_page: '{0} There are no tags.|{1} There is one tag.|]1,Inf[ There are %count% tags.' | 323 | number_on_the_page: '{0} There are no tags.|{1} There is one tag.|]1,Inf[ There are %count% tags.' |
324 | see_untagged_entries: 'See untagged entries' | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | page_title: 'Import' | 327 | page_title: 'Import' |
@@ -335,6 +349,24 @@ import: | |||
335 | wallabag_v2: | 349 | wallabag_v2: |
336 | page_title: 'Import > Wallabag v2' | 350 | page_title: 'Import > Wallabag v2' |
337 | description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' | 351 | description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' |
352 | readability: | ||
353 | page_title: 'Import > Readability' | ||
354 | description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | ||
355 | how_to: 'Please select your Readability export and click on the below button to upload and import it.' | ||
356 | worker: | ||
357 | enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | ||
358 | firefox: | ||
359 | page_title: 'Import > Firefox' | ||
360 | description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
361 | how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
362 | chrome: | ||
363 | page_title: 'Import > Chrome' | ||
364 | description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the <code>Bookmarks</code> file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | ||
365 | how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
366 | instapaper: | ||
367 | page_title: 'Import > Instapaper' | ||
368 | description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | ||
369 | how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | page_title: 'Developer' | 372 | page_title: 'Developer' |
@@ -354,19 +386,21 @@ developer: | |||
354 | field_grant_types: 'Grant type allowed' | 386 | field_grant_types: 'Grant type allowed' |
355 | no_client: 'No client yet.' | 387 | no_client: 'No client yet.' |
356 | remove: | 388 | remove: |
357 | warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !' | 389 | warn_message_1: 'You have the ability to remove the client %name%. This action is IRREVERSIBLE !' |
358 | warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag." | 390 | warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag." |
359 | action: 'Remove this client' | 391 | action: 'Remove the client %name%' |
360 | client: | 392 | client: |
361 | page_title: 'Developer > New client' | 393 | page_title: 'Developer > New client' |
362 | page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' | 394 | page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' |
363 | form: | 395 | form: |
364 | redirect_uris_label: 'Redirect URIs' | 396 | name_label: 'Name of the client' |
397 | redirect_uris_label: 'Redirect URIs (optional)' | ||
365 | save_label: 'Create a new client' | 398 | save_label: 'Create a new client' |
366 | action_back: 'Back' | 399 | action_back: 'Back' |
367 | client_parameter: | 400 | client_parameter: |
368 | page_title: 'Developer > Client parameters' | 401 | page_title: 'Developer > Client parameters' |
369 | page_description: 'Here are your client parameters.' | 402 | page_description: 'Here are your client parameters.' |
403 | field_name: 'Client name' | ||
370 | field_id: 'Client ID' | 404 | field_id: 'Client ID' |
371 | field_secret: 'Client secret' | 405 | field_secret: 'Client secret' |
372 | back: 'Back' | 406 | back: 'Back' |
@@ -384,6 +418,33 @@ developer: | |||
384 | paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' | 418 | paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' |
385 | back: 'Back' | 419 | back: 'Back' |
386 | 420 | ||
421 | user: | ||
422 | page_title: Users management | ||
423 | new_user: Create a new user | ||
424 | edit_user: Edit an existing user | ||
425 | description: "Here you can manage all users (create, edit and delete)" | ||
426 | list: | ||
427 | actions: Actions | ||
428 | edit_action: Edit | ||
429 | yes: Yes | ||
430 | no: No | ||
431 | create_new_one: Create a new user | ||
432 | form: | ||
433 | username_label: 'Username' | ||
434 | name_label: 'Name' | ||
435 | password_label: 'Password' | ||
436 | repeat_new_password_label: 'Repeat new password' | ||
437 | plain_password_label: '????' | ||
438 | email_label: 'Email' | ||
439 | enabled_label: 'Enabled' | ||
440 | locked_label: 'Locked' | ||
441 | last_login_label: 'Last login' | ||
442 | twofactor_label: Two factor authentication | ||
443 | save: Save | ||
444 | delete: Delete | ||
445 | delete_confirm: Are you sure? | ||
446 | back_to_list: Back to list | ||
447 | |||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
389 | notice: | 450 | notice: |
@@ -394,16 +455,15 @@ flashes: | |||
394 | rss_updated: 'RSS information updated' | 455 | rss_updated: 'RSS information updated' |
395 | tagging_rules_updated: 'Tagging rules updated' | 456 | tagging_rules_updated: 'Tagging rules updated' |
396 | tagging_rules_deleted: 'Tagging rule deleted' | 457 | tagging_rules_deleted: 'Tagging rule deleted' |
397 | user_added: 'User "%username%" added' | ||
398 | rss_token_updated: 'RSS token updated' | 458 | rss_token_updated: 'RSS token updated' |
399 | entry: | 459 | entry: |
400 | notice: | 460 | notice: |
401 | entry_already_saved: 'Entry already saved on %date%' | 461 | entry_already_saved: 'Entry already saved on %date%' |
402 | entry_saved: 'Entry saved' | 462 | entry_saved: 'Entry saved' |
403 | entry_saved_failed: 'Failed to save entry' | 463 | entry_saved_failed: 'Entry saved but fetching content failed' |
404 | entry_updated: 'Entry updated' | 464 | entry_updated: 'Entry updated' |
405 | entry_reloaded: 'Entry reloaded' | 465 | entry_reloaded: 'Entry reloaded' |
406 | entry_reload_failed: 'Failed to reload entry' | 466 | entry_reloaded_failed: 'Entry reloaded but fetching content failed' |
407 | entry_archived: 'Entry archived' | 467 | entry_archived: 'Entry archived' |
408 | entry_unarchived: 'Entry unarchived' | 468 | entry_unarchived: 'Entry unarchived' |
409 | entry_starred: 'Entry starred' | 469 | entry_starred: 'Entry starred' |
@@ -417,7 +477,16 @@ flashes: | |||
417 | failed: 'Import failed, please try again.' | 477 | failed: 'Import failed, please try again.' |
418 | failed_on_file: 'Error while processing import. Please verify your import file.' | 478 | failed_on_file: 'Error while processing import. Please verify your import file.' |
419 | summary: 'Import summary: %imported% imported, %skipped% already saved.' | 479 | summary: 'Import summary: %imported% imported, %skipped% already saved.' |
480 | summary_with_queue: 'Import summary: %queued% queued.' | ||
481 | error: | ||
482 | redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | ||
483 | rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | ||
420 | developer: | 484 | developer: |
421 | notice: | 485 | notice: |
422 | client_created: 'New client created.' | 486 | client_created: 'New client %name% created.' |
423 | client_deleted: 'Client deleted' | 487 | client_deleted: 'Client %name% deleted' |
488 | user: | ||
489 | notice: | ||
490 | added: 'User "%username%" added' | ||
491 | updated: 'User "%username%" updated' | ||
492 | deleted: 'User "%username%" deleted' | ||
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml index 266b4af5..29f0676e 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Buscar' | 31 | search: 'Buscar' |
32 | save_link: 'Archivar un enlace' | 32 | save_link: 'Archivar un enlace' |
33 | back_to_unread: 'Volver a los artículos sin leer' | 33 | back_to_unread: 'Volver a los artículos sin leer' |
34 | # users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Añadir un nuevo artículo' | 36 | add_new_entry: 'Añadir un nuevo artículo' |
36 | search: 'Buscar' | 37 | search: 'Buscar' |
@@ -45,6 +46,7 @@ footer: | |||
45 | social: 'Social' | 46 | social: 'Social' |
46 | powered_by: 'funciona por' | 47 | powered_by: 'funciona por' |
47 | about: 'Acerca de' | 48 | about: 'Acerca de' |
49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Configuración' | 52 | page_title: 'Configuración' |
@@ -68,6 +70,7 @@ config: | |||
68 | 200_word: 'Leo ~200 palabras por minuto' | 70 | 200_word: 'Leo ~200 palabras por minuto' |
69 | 300_word: 'Leo ~300 palabras por minuto' | 71 | 300_word: 'Leo ~300 palabras por minuto' |
70 | 400_word: 'Leo ~400 palabras por minuto' | 72 | 400_word: 'Leo ~400 palabras por minuto' |
73 | # pocket_consumer_key_label: Consumer key for Pocket to import contents | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero' | 75 | description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero' |
73 | token_label: 'RSS token' | 76 | token_label: 'RSS token' |
@@ -93,6 +96,7 @@ config: | |||
93 | if_label: 'si' | 96 | if_label: 'si' |
94 | then_tag_as_label: 'Etiquete como' | 97 | then_tag_as_label: 'Etiquete como' |
95 | delete_rule_label: 'Borre' | 98 | delete_rule_label: 'Borre' |
99 | # edit_rule_label: 'edit' | ||
96 | rule_label: 'Regla' | 100 | rule_label: 'Regla' |
97 | tags_label: 'Etiquetas' | 101 | tags_label: 'Etiquetas' |
98 | faq: | 102 | faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | or: 'Una regla U otra' | 130 | or: 'Una regla U otra' |
127 | and: 'Una regla Y la otra' | 131 | and: 'Una regla Y la otra' |
128 | matches: 'Pruebe si un <i>sujeto</i> corresponde a una <i>búsqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>título coincide "football"</code>' | 132 | matches: 'Pruebe si un <i>sujeto</i> corresponde a una <i>búsqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>título coincide "football"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Nombre de usuario' | ||
131 | password_label: 'Contraseña' | ||
132 | repeat_new_password_label: 'Confirmar la nueva contraseña' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'Email' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | starred: 'Artículos favoritos' | 137 | starred: 'Artículos favoritos' |
140 | archived: 'Artículos archivados' | 138 | archived: 'Artículos archivados' |
141 | filtered: 'Artículos filtrados' | 139 | filtered: 'Artículos filtrados' |
140 | # filtered_tags: 'Filtered by tags' | ||
141 | # untagged: 'Untagged entries' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.' | 143 | number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.' |
144 | reading_time: 'tiempo estimado de lectura' | 144 | reading_time: 'tiempo estimado de lectura' |
145 | reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min' | 145 | reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min' |
146 | reading_time_less_one_minute: 'tiempo estimado de lectura: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'tiempo estimado de lectura: <small class="inferieur"><</small> 1 min' |
147 | # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'original' |
@@ -185,6 +186,8 @@ entry: | |||
185 | add_a_tag: 'Añadir una etiqueta' | 186 | add_a_tag: 'Añadir una etiqueta' |
186 | share_content: 'Compartir' | 187 | share_content: 'Compartir' |
187 | share_email_label: 'Dirección e-mail' | 188 | share_email_label: 'Dirección e-mail' |
189 | # public_link: 'public link' | ||
190 | # delete_public_link: 'delete public link' | ||
188 | download: 'Descargar' | 191 | download: 'Descargar' |
189 | print: 'Imprimir' | 192 | print: 'Imprimir' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: '¿Este artículo no se muestra bien?' | 195 | description: '¿Este artículo no se muestra bien?' |
193 | edit_title: 'Modificar el título' | 196 | edit_title: 'Modificar el título' |
194 | original_article: 'original' | 197 | original_article: 'original' |
195 | annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %nbAnnotations% anotaciones' | 198 | annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %count% anotaciones' |
196 | created_at: 'Fecha de creación' | 199 | created_at: 'Fecha de creación' |
197 | new: | 200 | new: |
198 | page_title: 'Guardar un nuevo artículo' | 201 | page_title: 'Guardar un nuevo artículo' |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'Url' | 208 | url_label: 'Url' |
206 | is_public_label: 'Es Público' | 209 | is_public_label: 'Es Público' |
207 | save_label: 'Guardar' | 210 | save_label: 'Guardar' |
211 | public: | ||
212 | # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'Acerca de' | 215 | page_title: 'Acerca de' |
@@ -260,12 +265,14 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | page_title: 'Comienzo rápido' | 267 | page_title: 'Comienzo rápido' |
268 | # more: 'More…' | ||
263 | intro: | 269 | intro: |
264 | title: 'Bienvenido a wallabag !' | 270 | title: 'Bienvenido a wallabag !' |
265 | paragraph_1: "Le acompañaremos a su visita de wallabag y le mostraremos algunas características que le pueden interesar." | 271 | paragraph_1: "Le acompañaremos a su visita de wallabag y le mostraremos algunas características que le pueden interesar." |
266 | paragraph_2: '¡Síganos!' | 272 | paragraph_2: '¡Síganos!' |
267 | configure: | 273 | configure: |
268 | title: 'Configure la aplicación' | 274 | title: 'Configure la aplicación' |
275 | # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | ||
269 | language: 'Cambie el idioma y el diseño de la aplicación' | 276 | language: 'Cambie el idioma y el diseño de la aplicación' |
270 | rss: 'Activar los feeds RSS' | 277 | rss: 'Activar los feeds RSS' |
271 | tagging_rules: 'Escribir reglas para etiquetear automaticamente sus artículos' | 278 | tagging_rules: 'Escribir reglas para etiquetear automaticamente sus artículos' |
@@ -279,6 +286,7 @@ quickstart: | |||
279 | import: 'Configure importación' | 286 | import: 'Configure importación' |
280 | first_steps: | 287 | first_steps: |
281 | title: 'Primeros pasos' | 288 | title: 'Primeros pasos' |
289 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
282 | new_article: 'Guarde su primer artículo' | 290 | new_article: 'Guarde su primer artículo' |
283 | unread_articles: '¡Y clasifíquelo!' | 291 | unread_articles: '¡Y clasifíquelo!' |
284 | migrate: | 292 | migrate: |
@@ -287,11 +295,16 @@ quickstart: | |||
287 | pocket: 'Migrar desde Pocket' | 295 | pocket: 'Migrar desde Pocket' |
288 | wallabag_v1: 'Migrar desde wallabag v1' | 296 | wallabag_v1: 'Migrar desde wallabag v1' |
289 | wallabag_v2: 'Migrar desde wallabag v2' | 297 | wallabag_v2: 'Migrar desde wallabag v2' |
298 | readability: 'Migrar desde Readability' | ||
299 | instapaper: 'Migrar desde Instapaper' | ||
290 | developer: | 300 | developer: |
291 | title: 'Promotores' | 301 | title: 'Promotores' |
302 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
292 | create_application: 'Cree su tercera aplicación' | 303 | create_application: 'Cree su tercera aplicación' |
304 | # use_docker: 'Use Docker to install wallabag' | ||
293 | docs: | 305 | docs: |
294 | title: 'Documentación completa' | 306 | title: 'Documentación completa' |
307 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
295 | annotate: 'Anote su artículo' | 308 | annotate: 'Anote su artículo' |
296 | export: 'Convierta sus artículos a ePub o a PDF' | 309 | export: 'Convierta sus artículos a ePub o a PDF' |
297 | search_filters: 'Aprenda a utilizar el buscador y los filtros para encontrar el artículo que le interese' | 310 | search_filters: 'Aprenda a utilizar el buscador y los filtros para encontrar el artículo que le interese' |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Etiquetas' | 321 | page_title: 'Etiquetas' |
309 | list: | 322 | list: |
310 | number_on_the_page: '{0} No hay ninguna etiqueta.|{1} Hay una etiqueta.|]1,Inf[ Hay %count% etiquetas.' | 323 | number_on_the_page: '{0} No hay ninguna etiqueta.|{1} Hay una etiqueta.|]1,Inf[ Hay %count% etiquetas.' |
324 | # see_untagged_entries: 'See untagged entries' | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | page_title: 'Importar' | 327 | page_title: 'Importar' |
@@ -335,6 +349,24 @@ import: | |||
335 | wallabag_v2: | 349 | wallabag_v2: |
336 | page_title: 'Importar > Wallabag v2' | 350 | page_title: 'Importar > Wallabag v2' |
337 | description: 'Va a importar sus artículos de otra instancia de wallabag v2. Vaya a Todos los artículos, entonces, en la barra lateral, oprima en "JSON". Usted tendrá un fichero "All articles.json"' | 351 | description: 'Va a importar sus artículos de otra instancia de wallabag v2. Vaya a Todos los artículos, entonces, en la barra lateral, oprima en "JSON". Usted tendrá un fichero "All articles.json"' |
352 | readability: | ||
353 | page_title: 'Importar > Readability' | ||
354 | # description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | ||
355 | # how_to: 'Please select your Readability export and click on the below button to upload and import it.' | ||
356 | worker: | ||
357 | # enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | ||
358 | firefox: | ||
359 | page_title: 'Importar > Firefox' | ||
360 | # description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
361 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
362 | chrome: | ||
363 | page_title: 'Importar > Chrome' | ||
364 | # description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | ||
365 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
366 | instapaper: | ||
367 | page_title: 'Importar > Instapaper' | ||
368 | # description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | ||
369 | # how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | page_title: 'Promotor' | 372 | page_title: 'Promotor' |
@@ -361,12 +393,14 @@ developer: | |||
361 | page_title: 'Promotor > Nuevo cliente' | 393 | page_title: 'Promotor > Nuevo cliente' |
362 | page_description: 'Va a crear un nuevo cliente. Por favor, llene el campo abajo para URI redirigido de su aplicación.' | 394 | page_description: 'Va a crear un nuevo cliente. Por favor, llene el campo abajo para URI redirigido de su aplicación.' |
363 | form: | 395 | form: |
396 | # name_label: 'Name of the client' | ||
364 | redirect_uris_label: 'los URI redirigidos' | 397 | redirect_uris_label: 'los URI redirigidos' |
365 | save_label: 'Crear un nuevo cliente' | 398 | save_label: 'Crear un nuevo cliente' |
366 | action_back: 'Atrás' | 399 | action_back: 'Atrás' |
367 | client_parameter: | 400 | client_parameter: |
368 | page_title: 'Promotor > Parámetros del cliente' | 401 | page_title: 'Promotor > Parámetros del cliente' |
369 | page_description: 'Aquí hay sus parámetros del cliente.' | 402 | page_description: 'Aquí hay sus parámetros del cliente.' |
403 | # field_name: 'Client name' | ||
370 | field_id: 'Identificación del cliente' | 404 | field_id: 'Identificación del cliente' |
371 | field_secret: 'Cliente secreto' | 405 | field_secret: 'Cliente secreto' |
372 | back: 'Atrás' | 406 | back: 'Atrás' |
@@ -384,6 +418,33 @@ developer: | |||
384 | paragraph_8: 'Si quiere ver todos los fines de API, se puede ver <a href="%link%">a nuestra documentación API</a>.' | 418 | paragraph_8: 'Si quiere ver todos los fines de API, se puede ver <a href="%link%">a nuestra documentación API</a>.' |
385 | back: 'Atrás' | 419 | back: 'Atrás' |
386 | 420 | ||
421 | user: | ||
422 | # page_title: Users management | ||
423 | # new_user: Create a new user | ||
424 | # edit_user: Edit an existing user | ||
425 | # description: "Here you can manage all users (create, edit and delete)" | ||
426 | # list: | ||
427 | # actions: Actions | ||
428 | # edit_action: Edit | ||
429 | # yes: Yes | ||
430 | # no: No | ||
431 | # create_new_one: Create a new user | ||
432 | form: | ||
433 | username_label: 'Nombre de usuario' | ||
434 | # name_label: 'Name' | ||
435 | password_label: 'Contraseña' | ||
436 | repeat_new_password_label: 'Confirmar la nueva contraseña' | ||
437 | plain_password_label: '????' | ||
438 | email_label: 'Email' | ||
439 | # enabled_label: 'Enabled' | ||
440 | # locked_label: 'Locked' | ||
441 | # last_login_label: 'Last login' | ||
442 | # twofactor_label: Two factor authentication | ||
443 | # save: Save | ||
444 | # delete: Delete | ||
445 | # delete_confirm: Are you sure? | ||
446 | # back_to_list: Back to list | ||
447 | |||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
389 | notice: | 450 | notice: |
@@ -400,10 +461,10 @@ flashes: | |||
400 | notice: | 461 | notice: |
401 | entry_already_saved: 'Entrada ya guardada por %fecha%' | 462 | entry_already_saved: 'Entrada ya guardada por %fecha%' |
402 | entry_saved: 'Entrada guardada' | 463 | entry_saved: 'Entrada guardada' |
403 | # entry_saved_failed: 'Failed to save entry' | 464 | # entry_saved_failed: 'Entry saved but fetching content failed' |
404 | entry_updated: 'Entrada actualizada' | 465 | entry_updated: 'Entrada actualizada' |
405 | entry_reloaded: 'Entrada recargada' | 466 | entry_reloaded: 'Entrada recargada' |
406 | entry_reload_failed: 'Entrada recargada reprobada' | 467 | # entry_reloaded_failed: 'Entry reloaded but fetching content failed' |
407 | entry_archived: 'Artículo archivado' | 468 | entry_archived: 'Artículo archivado' |
408 | entry_unarchived: 'Artículo desarchivado' | 469 | entry_unarchived: 'Artículo desarchivado' |
409 | entry_starred: 'Artículo guardado en los favoritos' | 470 | entry_starred: 'Artículo guardado en los favoritos' |
@@ -414,9 +475,13 @@ flashes: | |||
414 | tag_added: 'Etiqueta añadida' | 475 | tag_added: 'Etiqueta añadida' |
415 | import: | 476 | import: |
416 | notice: | 477 | notice: |
417 | failed: 'Importación reprobada, por favor inténtelo de nuevo.' | 478 | failed: 'Importación reprobada, por favor inténtelo de nuevo.' |
418 | failed_on_file: 'Se ocurre un error por procesar importación. Por favor verifique su archivo importado.' | 479 | failed_on_file: 'Se ocurre un error por procesar importación. Por favor verifique su archivo importado.' |
419 | summary: 'Resúmen importado: %importado% importado, %saltados% ya guardado.' | 480 | summary: 'Resúmen importado: %importado% importado, %saltados% ya guardado.' |
481 | # summary_with_queue: 'Import summary: %queued% queued.' | ||
482 | error: | ||
483 | # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | ||
484 | # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | ||
420 | developer: | 485 | developer: |
421 | notice: | 486 | notice: |
422 | client_created: 'Nuevo cliente creado.' | 487 | client_created: 'Nuevo cliente creado.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml index c2350019..074ab7a8 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'جستجو' | 31 | search: 'جستجو' |
32 | save_link: 'ذخیرهٔ یک پیوند' | 32 | save_link: 'ذخیرهٔ یک پیوند' |
33 | back_to_unread: 'بازگشت به خواندهنشدهها' | 33 | back_to_unread: 'بازگشت به خواندهنشدهها' |
34 | # users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'افزودن مقالهٔ تازه' | 36 | add_new_entry: 'افزودن مقالهٔ تازه' |
36 | search: 'جستجو' | 37 | search: 'جستجو' |
@@ -45,6 +46,7 @@ footer: | |||
45 | social: 'شبکههای اجتماعی' | 46 | social: 'شبکههای اجتماعی' |
46 | powered_by: 'توانمند با' | 47 | powered_by: 'توانمند با' |
47 | about: 'درباره' | 48 | about: 'درباره' |
49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'پیکربندی' | 52 | page_title: 'پیکربندی' |
@@ -68,6 +70,7 @@ config: | |||
68 | 200_word: 'من تقریباً ۲۰۰ واژه را در دقیقه میخوانم' | 70 | 200_word: 'من تقریباً ۲۰۰ واژه را در دقیقه میخوانم' |
69 | 300_word: 'من تقریباً ۳۰۰ واژه را در دقیقه میخوانم' | 71 | 300_word: 'من تقریباً ۳۰۰ واژه را در دقیقه میخوانم' |
70 | 400_word: 'من تقریباً ۴۰۰ واژه را در دقیقه میخوانم' | 72 | 400_word: 'من تقریباً ۴۰۰ واژه را در دقیقه میخوانم' |
73 | pocket_consumer_key_label: کلید کاربری Pocket برای درونریزی مطالب | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'با خوراک آر-اس-اس که wallabag در اختیارتان میگذارد، میتوانید مقالههای ذخیرهشده را در نرمافزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.' | 75 | description: 'با خوراک آر-اس-اس که wallabag در اختیارتان میگذارد، میتوانید مقالههای ذخیرهشده را در نرمافزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.' |
73 | token_label: 'کد آر-اس-اس' | 76 | token_label: 'کد آر-اس-اس' |
@@ -93,6 +96,7 @@ config: | |||
93 | if_label: 'اگر' | 96 | if_label: 'اگر' |
94 | then_tag_as_label: 'این برچسب را بزن' | 97 | then_tag_as_label: 'این برچسب را بزن' |
95 | delete_rule_label: 'پاک کن' | 98 | delete_rule_label: 'پاک کن' |
99 | # edit_rule_label: 'edit' | ||
96 | rule_label: 'قانون' | 100 | rule_label: 'قانون' |
97 | tags_label: 'برچسبها' | 101 | tags_label: 'برچسبها' |
98 | faq: | 102 | faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | # or: 'One rule OR another' | 130 | # or: 'One rule OR another' |
127 | # and: 'One rule AND another' | 131 | # and: 'One rule AND another' |
128 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | 132 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' |
129 | form_new_user: | ||
130 | username_label: 'نام کاربری' | ||
131 | password_label: 'رمز' | ||
132 | repeat_new_password_label: 'رمز تازه را دوباره بنویسید' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'نشانی ایمیل' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | starred: 'مقالههای برگزیده' | 137 | starred: 'مقالههای برگزیده' |
140 | archived: 'مقالههای بایگانیشده' | 138 | archived: 'مقالههای بایگانیشده' |
141 | filtered: 'مقالههای فیلترشده' | 139 | filtered: 'مقالههای فیلترشده' |
140 | # filtered_tags: 'Filtered by tags' | ||
141 | # untagged: 'Untagged entries' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: '{0} هیج مقالهای نیست.|{1} یک مقاله هست.|]1,Inf[ %count% مقاله هست.' | 143 | number_on_the_page: '{0} هیج مقالهای نیست.|{1} یک مقاله هست.|]1,Inf[ %count% مقاله هست.' |
144 | reading_time: 'زمان تخمینی برای خواندن' | 144 | reading_time: 'زمان تخمینی برای خواندن' |
145 | reading_time_minutes: 'زمان تخمینی برای خواندن: %readingTime% min' | 145 | reading_time_minutes: 'زمان تخمینی برای خواندن: %readingTime% min' |
146 | reading_time_less_one_minute: 'زمان تخمینی برای خواندن: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'زمان تخمینی برای خواندن: <small class="inferieur"><</small> 1 min' |
147 | # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'original' |
@@ -185,6 +186,8 @@ entry: | |||
185 | add_a_tag: 'افزودن برچسب' | 186 | add_a_tag: 'افزودن برچسب' |
186 | share_content: 'همرسانی' | 187 | share_content: 'همرسانی' |
187 | share_email_label: 'نشانی ایمیل' | 188 | share_email_label: 'نشانی ایمیل' |
189 | # public_link: 'public link' | ||
190 | # delete_public_link: 'delete public link' | ||
188 | download: 'بارگیری' | 191 | download: 'بارگیری' |
189 | print: 'چاپ' | 192 | print: 'چاپ' |
190 | problem: | 193 | problem: |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'نشانی' | 208 | url_label: 'نشانی' |
206 | is_public_label: 'عمومی' | 209 | is_public_label: 'عمومی' |
207 | save_label: 'ذخیره' | 210 | save_label: 'ذخیره' |
211 | public: | ||
212 | # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'درباره' | 215 | page_title: 'درباره' |
@@ -260,6 +265,7 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | page_title: 'Quickstart' | 267 | page_title: 'Quickstart' |
268 | # more: 'More…' | ||
263 | intro: | 269 | intro: |
264 | title: 'به wallabag خوش آمدید!!' | 270 | title: 'به wallabag خوش آمدید!!' |
265 | paragraph_1: "به شما کمک خواهیم کرد تا wallabag را بشناسید و با برخی از ویژگیهای جالبش آشنا شوید" | 271 | paragraph_1: "به شما کمک خواهیم کرد تا wallabag را بشناسید و با برخی از ویژگیهای جالبش آشنا شوید" |
@@ -279,6 +285,7 @@ quickstart: | |||
279 | import: 'درونریزی را تنظیم کنید' | 285 | import: 'درونریزی را تنظیم کنید' |
280 | first_steps: | 286 | first_steps: |
281 | title: 'گام نخست' | 287 | title: 'گام نخست' |
288 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
282 | new_article: 'نخستین مقالهٔ خود را ذخیره کنید' | 289 | new_article: 'نخستین مقالهٔ خود را ذخیره کنید' |
283 | unread_articles: 'و آن را طبقهبندی کنید!' | 290 | unread_articles: 'و آن را طبقهبندی کنید!' |
284 | migrate: | 291 | migrate: |
@@ -287,11 +294,16 @@ quickstart: | |||
287 | pocket: 'مهاجرت از Pocket' | 294 | pocket: 'مهاجرت از Pocket' |
288 | wallabag_v1: 'مهاجرت از نسخهٔ یکم wallabag' | 295 | wallabag_v1: 'مهاجرت از نسخهٔ یکم wallabag' |
289 | wallabag_v2: 'مهاجرت از نسخهٔ دوم wallabag' | 296 | wallabag_v2: 'مهاجرت از نسخهٔ دوم wallabag' |
297 | readability: 'مهاجرت از نسخهٔ دوم Readability' | ||
298 | instapaper: 'مهاجرت از نسخهٔ دوم Instapaper' | ||
290 | developer: | 299 | developer: |
291 | title: 'برنامهنویسان' | 300 | title: 'برنامهنویسان' |
301 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
292 | create_application: 'برنامهٔ wallabag خود را بسازید' | 302 | create_application: 'برنامهٔ wallabag خود را بسازید' |
303 | # use_docker: 'Use Docker to install wallabag' | ||
293 | docs: | 304 | docs: |
294 | title: 'راهنمای کامل' | 305 | title: 'راهنمای کامل' |
306 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
295 | annotate: 'روی مقالههایتان یادداشت بگذارید' | 307 | annotate: 'روی مقالههایتان یادداشت بگذارید' |
296 | export: 'مقالههایتان را به قالب ePUB یا PDF دربیاورید' | 308 | export: 'مقالههایتان را به قالب ePUB یا PDF دربیاورید' |
297 | search_filters: 'به کمک موتور جستجو و فیلترها به دنبال مقالههایتان بگردید' | 309 | search_filters: 'به کمک موتور جستجو و فیلترها به دنبال مقالههایتان بگردید' |
@@ -308,18 +320,19 @@ tag: | |||
308 | page_title: 'برچسبها' | 320 | page_title: 'برچسبها' |
309 | list: | 321 | list: |
310 | number_on_the_page: '{0} هیچ برچسبی نیست.|{1} یک برچسب هست.|]1,Inf[ %count% برچسب هست.' | 322 | number_on_the_page: '{0} هیچ برچسبی نیست.|{1} یک برچسب هست.|]1,Inf[ %count% برچسب هست.' |
323 | # see_untagged_entries: 'See untagged entries' | ||
311 | 324 | ||
312 | import: | 325 | import: |
313 | page_title: 'درونریزی' | 326 | page_title: 'درونریزی' |
314 | page_description: 'به درونریز wallabag خوش آمدید. لطفاً سرویس قبلی خود را که میخواهید از آن مهاجرت کنید انتخاب کنید.' | 327 | page_description: 'به درونریز wallabag خوش آمدید. لطفاً سرویس قبلی خود را که میخواهید از آن مهاجرت کنید انتخاب کنید.' |
315 | action: | 328 | action: |
316 | import_contents: 'درونریزی مقالهها' | 329 | import_contents: 'درونریزی مقالهها' |
317 | form: | 330 | form: |
318 | mark_as_read_title: 'علامتزدن همه به عنوان خواندهشده؟' | 331 | mark_as_read_title: 'علامتزدن همه به عنوان خواندهشده؟' |
319 | mark_as_read_label: 'همهٔ مقالههای درونریزی شده را به عنوان خواندهشده علامت بزن' | 332 | mark_as_read_label: 'همهٔ مقالههای درونریزی شده را به عنوان خواندهشده علامت بزن' |
320 | file_label: 'پرونده' | 333 | file_label: 'پرونده' |
321 | save_label: 'بارگذاری پرونده' | 334 | save_label: 'بارگذاری پرونده' |
322 | pocket: | 335 | pocket: |
323 | page_title: 'درونریزی > Pocket' | 336 | page_title: 'درونریزی > Pocket' |
324 | description: "این برنامه همهٔ دادههای Pocket شما را درونریزی میکند. سرویس Pocket اجازه نمیدهد که متن مقالهها را درونریزی کنیم، بنابراین wallabag متن مقالهها را دوباره از اینترنت دریافت میکند." | 337 | description: "این برنامه همهٔ دادههای Pocket شما را درونریزی میکند. سرویس Pocket اجازه نمیدهد که متن مقالهها را درونریزی کنیم، بنابراین wallabag متن مقالهها را دوباره از اینترنت دریافت میکند." |
325 | config_missing: | 338 | config_missing: |
@@ -328,13 +341,31 @@ import: | |||
328 | user_message: 'مدیر سرور شما باید یک API Key برای Pocket تعریف کند.' | 341 | user_message: 'مدیر سرور شما باید یک API Key برای Pocket تعریف کند.' |
329 | authorize_message: 'شما میتوانید دادههایتان را از حساب Pocket خود درونریزی کنید. روی دکمهٔ زیر کلیک کنید و به برنامه اجازه دهید تا به getpocket.com وصل شود.' | 342 | authorize_message: 'شما میتوانید دادههایتان را از حساب Pocket خود درونریزی کنید. روی دکمهٔ زیر کلیک کنید و به برنامه اجازه دهید تا به getpocket.com وصل شود.' |
330 | connect_to_pocket: 'به Pocket وصل شو و دادهها را دریافت کن' | 343 | connect_to_pocket: 'به Pocket وصل شو و دادهها را دریافت کن' |
331 | wallabag_v1: | 344 | wallabag_v1: |
332 | page_title: 'درونریزی > Wallabag v1' | 345 | page_title: 'درونریزی > Wallabag v1' |
333 | description: 'این برنامه همهٔ دادههای شما را در نسخهٔ ۱ wallabag درونریزی میکند. در صفحهٔ تنظیمات، روی "JSON export" در بخش "Export your wallabag data" کلیک کنید. با این کار شما پروندهای به شکل "wallabag-export-1-xxxx-xx-xx.json" دریافت خواهید کرد.' | 346 | description: 'این برنامه همهٔ دادههای شما را در نسخهٔ ۱ wallabag درونریزی میکند. در صفحهٔ تنظیمات، روی "JSON export" در بخش "Export your wallabag data" کلیک کنید. با این کار شما پروندهای به شکل "wallabag-export-1-xxxx-xx-xx.json" دریافت خواهید کرد.' |
334 | how_to: 'لطفاً پرونده را انتخاب کنید و روی دکمهٔ زیر کلیک کنید تا بارگذاری و درونریزی شود.' | 347 | how_to: 'لطفاً پرونده را انتخاب کنید و روی دکمهٔ زیر کلیک کنید تا بارگذاری و درونریزی شود.' |
335 | wallabag_v2: | 348 | wallabag_v2: |
336 | page_title: 'درونریزی > Wallabag v2' | 349 | page_title: 'درونریزی > Wallabag v2' |
337 | description: 'این برنامه همهٔ دادههای شما را در نسخهٔ ۲ wallabag درونریزی میکند. به بخش «همهٔ مقالهها» بروید و در بخش «برونریزی» روی "JSON" کلیک کنید. با این کار شما پروندهای به شکل "All articles.json" دریافت خواهید کرد.' | 350 | description: 'این برنامه همهٔ دادههای شما را در نسخهٔ ۲ wallabag درونریزی میکند. به بخش «همهٔ مقالهها» بروید و در بخش «برونریزی» روی "JSON" کلیک کنید. با این کار شما پروندهای به شکل "All articles.json" دریافت خواهید کرد.' |
351 | readability: | ||
352 | page_title: 'درونریزی > Readability' | ||
353 | # description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | ||
354 | # how_to: 'Please select your Readability export and click on the below button to upload and import it.' | ||
355 | worker: | ||
356 | # enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | ||
357 | firefox: | ||
358 | page_title: 'درونریزی > Firefox' | ||
359 | # description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
360 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
361 | chrome: | ||
362 | page_title: 'درونریزی > Chrome' | ||
363 | # description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | ||
364 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
365 | instapaper: | ||
366 | page_title: 'درونریزی > Instapaper' | ||
367 | # description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | ||
368 | # how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | ||
338 | 369 | ||
339 | developer: | 370 | developer: |
340 | # page_title: 'Developer' | 371 | # page_title: 'Developer' |
@@ -361,12 +392,14 @@ developer: | |||
361 | # page_title: 'Developer > New client' | 392 | # page_title: 'Developer > New client' |
362 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' | 393 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' |
363 | # form: | 394 | # form: |
395 | # name_label: 'Name of the client' | ||
364 | # redirect_uris_label: 'Redirect URIs' | 396 | # redirect_uris_label: 'Redirect URIs' |
365 | # save_label: 'Create a new client' | 397 | # save_label: 'Create a new client' |
366 | # action_back: 'بازگشت' | 398 | # action_back: 'بازگشت' |
367 | # client_parameter: | 399 | # client_parameter: |
368 | # page_title: 'Developer > Client parameters' | 400 | # page_title: 'Developer > Client parameters' |
369 | # page_description: 'Here are your client parameters.' | 401 | # page_description: 'Here are your client parameters.' |
402 | # field_name: 'Client name' | ||
370 | # field_id: 'Client ID' | 403 | # field_id: 'Client ID' |
371 | # field_secret: 'Client secret' | 404 | # field_secret: 'Client secret' |
372 | # back: 'بازگشت' | 405 | # back: 'بازگشت' |
@@ -384,6 +417,33 @@ developer: | |||
384 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' | 417 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' |
385 | # back: 'بازگشت' | 418 | # back: 'بازگشت' |
386 | 419 | ||
420 | user: | ||
421 | # page_title: Users management | ||
422 | # new_user: Create a new user | ||
423 | # edit_user: Edit an existing user | ||
424 | # description: "Here you can manage all users (create, edit and delete)" | ||
425 | # list: | ||
426 | # actions: Actions | ||
427 | # edit_action: Edit | ||
428 | # yes: Yes | ||
429 | # no: No | ||
430 | # create_new_one: Create a new user | ||
431 | form: | ||
432 | username_label: 'نام کاربری' | ||
433 | # name_label: 'Name' | ||
434 | password_label: 'رمز' | ||
435 | repeat_new_password_label: 'رمز تازه را دوباره بنویسید' | ||
436 | plain_password_label: '????' | ||
437 | email_label: 'نشانی ایمیل' | ||
438 | # enabled_label: 'Enabled' | ||
439 | # locked_label: 'Locked' | ||
440 | # last_login_label: 'Last login' | ||
441 | # twofactor_label: Two factor authentication | ||
442 | # save: Save | ||
443 | # delete: Delete | ||
444 | # delete_confirm: Are you sure? | ||
445 | # back_to_list: Back to list | ||
446 | |||
387 | flashes: | 447 | flashes: |
388 | config: | 448 | config: |
389 | notice: | 449 | notice: |
@@ -400,10 +460,10 @@ flashes: | |||
400 | notice: | 460 | notice: |
401 | entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود' | 461 | entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود' |
402 | entry_saved: 'مقاله ذخیره شد' | 462 | entry_saved: 'مقاله ذخیره شد' |
403 | # entry_saved_failed: 'Failed to save entry' | 463 | # entry_saved_failed: 'Entry saved but fetching content failed' |
404 | entry_updated: 'مقاله بهروز شد' | 464 | entry_updated: 'مقاله بهروز شد' |
405 | entry_reloaded: 'مقاله بهروز شد' | 465 | entry_reloaded: 'مقاله بهروز شد' |
406 | entry_reload_failed: 'بهروزرسانی مقاله شکست خورد' | 466 | # entry_reloaded_failed: 'Entry reloaded but fetching content failed' |
407 | entry_archived: 'مقاله بایگانی شد' | 467 | entry_archived: 'مقاله بایگانی شد' |
408 | entry_unarchived: 'مقاله از بایگانی درآمد' | 468 | entry_unarchived: 'مقاله از بایگانی درآمد' |
409 | entry_starred: 'مقاله برگزیده شد' | 469 | entry_starred: 'مقاله برگزیده شد' |
@@ -417,6 +477,10 @@ flashes: | |||
417 | failed: 'درونریزی شکست خورد. لطفاً دوباره تلاش کنید.' | 477 | failed: 'درونریزی شکست خورد. لطفاً دوباره تلاش کنید.' |
418 | failed_on_file: 'خطا هنگام پردازش پروندهٔ ورودی. آیا پروندهٔ درونریزی شده سالم است؟' | 478 | failed_on_file: 'خطا هنگام پردازش پروندهٔ ورودی. آیا پروندهٔ درونریزی شده سالم است؟' |
419 | summary: 'گزارش درونریزی: %imported% وارد شد, %skipped% از قبل ذخیره شده بود.' | 479 | summary: 'گزارش درونریزی: %imported% وارد شد, %skipped% از قبل ذخیره شده بود.' |
480 | # summary_with_queue: 'Import summary: %queued% queued.' | ||
481 | error: | ||
482 | # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | ||
483 | # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | ||
420 | developer: | 484 | developer: |
421 | notice: | 485 | notice: |
422 | # client_created: 'New client created.' | 486 | # client_created: 'New client created.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml index 25d9ec59..55453b6c 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Recherche' | 31 | search: 'Recherche' |
32 | save_link: 'Sauvegarder un nouvel article' | 32 | save_link: 'Sauvegarder un nouvel article' |
33 | back_to_unread: 'Retour aux articles non lus' | 33 | back_to_unread: 'Retour aux articles non lus' |
34 | users_management: 'Gestion des utilisateurs' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Sauvegarder un nouvel article' | 36 | add_new_entry: 'Sauvegarder un nouvel article' |
36 | search: 'Rechercher' | 37 | search: 'Rechercher' |
@@ -45,9 +46,10 @@ footer: | |||
45 | social: 'Social' | 46 | social: 'Social' |
46 | powered_by: 'propulsé par' | 47 | powered_by: 'propulsé par' |
47 | about: 'À propos' | 48 | about: 'À propos' |
48 | page_title: 'Configuration' | 49 | stats: Depuis le %user_creation% vous avez lu %nb_archives% articles. Ce qui fait %per_day% par jour ! |
49 | 50 | ||
50 | config: | 51 | config: |
52 | page_title: 'Configuration' | ||
51 | tab_menu: | 53 | tab_menu: |
52 | settings: 'Paramètres' | 54 | settings: 'Paramètres' |
53 | rss: 'RSS' | 55 | rss: 'RSS' |
@@ -68,6 +70,7 @@ config: | |||
68 | 200_word: 'Je lis environ 200 mots par minute' | 70 | 200_word: 'Je lis environ 200 mots par minute' |
69 | 300_word: 'Je lis environ 300 mots par minute' | 71 | 300_word: 'Je lis environ 300 mots par minute' |
70 | 400_word: 'Je lis environ 400 mots par minute' | 72 | 400_word: 'Je lis environ 400 mots par minute' |
73 | pocket_consumer_key_label: Clé d'authentification Pocket pour importer les données | ||
71 | form_rss: | 74 | form_rss: |
72 | description: "Les flux RSS fournis par wallabag vous permettent de lire vos articles sauvegardés dans votre lecteur de flux préféré. Pour pouvoir les utiliser, vous devez d'abord créer un jeton." | 75 | description: "Les flux RSS fournis par wallabag vous permettent de lire vos articles sauvegardés dans votre lecteur de flux préféré. Pour pouvoir les utiliser, vous devez d'abord créer un jeton." |
73 | token_label: 'Jeton RSS' | 76 | token_label: 'Jeton RSS' |
@@ -93,6 +96,7 @@ config: | |||
93 | if_label: 'si' | 96 | if_label: 'si' |
94 | then_tag_as_label: 'alors attribuer les tags' | 97 | then_tag_as_label: 'alors attribuer les tags' |
95 | delete_rule_label: 'supprimer' | 98 | delete_rule_label: 'supprimer' |
99 | edit_rule_label: 'éditer' | ||
96 | rule_label: 'Règle' | 100 | rule_label: 'Règle' |
97 | tags_label: 'Tags' | 101 | tags_label: 'Tags' |
98 | faq: | 102 | faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | or: "Une règle OU l'autre" | 130 | or: "Une règle OU l'autre" |
127 | and: "Une règle ET l'autre" | 131 | and: "Une règle ET l'autre" |
128 | matches: 'Teste si un <i>sujet</i> correspond à une <i>recherche</i> (non sensible à la casse).<br />Exemple : <code>title matches "football"</code>' | 132 | matches: 'Teste si un <i>sujet</i> correspond à une <i>recherche</i> (non sensible à la casse).<br />Exemple : <code>title matches "football"</code>' |
129 | form_new_user: | ||
130 | username_label: "Nom d'utilisateur" | ||
131 | password_label: 'Mot de passe' | ||
132 | repeat_new_password_label: 'Confirmez votre nouveau mot de passe' | ||
133 | plain_password_label: 'Mot de passe en clair' | ||
134 | email_label: 'Adresse e-mail' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | starred: 'Articles favoris' | 137 | starred: 'Articles favoris' |
140 | archived: 'Articles lus' | 138 | archived: 'Articles lus' |
141 | filtered: 'Articles filtrés' | 139 | filtered: 'Articles filtrés' |
140 | filtered_tags: 'Articles filtrés par tags' | ||
141 | untagged: 'Article sans tag' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: "{0} Il n'y a pas d'articles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles." | 143 | number_on_the_page: "{0} Il n'y a pas d'articles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles." |
144 | reading_time: 'durée de lecture' | 144 | reading_time: 'durée de lecture' |
145 | reading_time_minutes: 'durée de lecture: %readingTime% min' | 145 | reading_time_minutes: 'durée de lecture: %readingTime% min' |
146 | reading_time_less_one_minute: 'durée de lecture: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'durée de lecture: <small class="inferieur"><</small> 1 min' |
147 | number_of_tags: '{1}et un autre tag|]1,Inf[et %count% autres tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'original' |
@@ -185,6 +186,8 @@ entry: | |||
185 | add_a_tag: 'Ajouter un tag' | 186 | add_a_tag: 'Ajouter un tag' |
186 | share_content: 'Partager' | 187 | share_content: 'Partager' |
187 | share_email_label: 'Email' | 188 | share_email_label: 'Email' |
189 | public_link: 'Lien public' | ||
190 | delete_public_link: 'Supprimer lien public' | ||
188 | download: 'Télécharger' | 191 | download: 'Télécharger' |
189 | print: 'Imprimer' | 192 | print: 'Imprimer' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: "Est-ce que cet article s'affiche mal ?" | 195 | description: "Est-ce que cet article s'affiche mal ?" |
193 | edit_title: 'Modifier le titre' | 196 | edit_title: 'Modifier le titre' |
194 | original_article: 'original' | 197 | original_article: 'original' |
195 | annotations_on_the_entry: '{0} Aucune annotation|{1} Une annotation|]1,Inf[ %nbAnnotations% annotations' | 198 | annotations_on_the_entry: '{0} Aucune annotation|{1} Une annotation|]1,Inf[ %count% annotations' |
196 | created_at: 'Date de création' | 199 | created_at: 'Date de création' |
197 | new: | 200 | new: |
198 | page_title: 'Sauvegarder un nouvel article' | 201 | page_title: 'Sauvegarder un nouvel article' |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'Url' | 208 | url_label: 'Url' |
206 | is_public_label: 'Public' | 209 | is_public_label: 'Public' |
207 | save_label: 'Enregistrer' | 210 | save_label: 'Enregistrer' |
211 | public: | ||
212 | shared_by_wallabag: "Cet article a été partagé par <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'À propos' | 215 | page_title: 'À propos' |
@@ -260,12 +265,14 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | page_title: 'Pour bien débuter' | 267 | page_title: 'Pour bien débuter' |
268 | more: 'Et plus encore…' | ||
263 | intro: | 269 | intro: |
264 | title: 'Bienvenue sur wallabag !' | 270 | title: 'Bienvenue sur wallabag !' |
265 | paragraph_1: "Nous allons vous accompagner pour vous faire faire le tour de la maison et vous présenter quelques fonctionnalités qui pourraient vous intéresser pour vous approprier cet outil." | 271 | paragraph_1: "Nous allons vous accompagner pour vous faire faire le tour de la maison et vous présenter quelques fonctionnalités qui pourraient vous intéresser pour vous approprier cet outil." |
266 | paragraph_2: 'Suivez-nous !' | 272 | paragraph_2: 'Suivez-nous !' |
267 | configure: | 273 | configure: |
268 | title: "Configurez l'application" | 274 | title: "Configurez l'application" |
275 | description: 'Pour voir une application qui vous correspond, allez voir du côté de la configuration de wallabag.' | ||
269 | language: "Changez la langue et le design de l'application" | 276 | language: "Changez la langue et le design de l'application" |
270 | rss: 'Activez les flux RSS' | 277 | rss: 'Activez les flux RSS' |
271 | tagging_rules: 'Écrivez des règles pour classer automatiquement vos articles' | 278 | tagging_rules: 'Écrivez des règles pour classer automatiquement vos articles' |
@@ -279,6 +286,7 @@ quickstart: | |||
279 | import: "Configurer l'import" | 286 | import: "Configurer l'import" |
280 | first_steps: | 287 | first_steps: |
281 | title: 'Premiers pas' | 288 | title: 'Premiers pas' |
289 | description: "Maintenant que wallabag est bien configuré, il est temps d'archiver le web. Vous pouvez cliquer sur le signe + dans le coin en haut à droite." | ||
282 | new_article: 'Ajoutez votre premier article' | 290 | new_article: 'Ajoutez votre premier article' |
283 | unread_articles: 'Et rangez-le !' | 291 | unread_articles: 'Et rangez-le !' |
284 | migrate: | 292 | migrate: |
@@ -287,11 +295,16 @@ quickstart: | |||
287 | pocket: 'Migrer depuis Pocket' | 295 | pocket: 'Migrer depuis Pocket' |
288 | wallabag_v1: 'Migrer depuis wallabag v1' | 296 | wallabag_v1: 'Migrer depuis wallabag v1' |
289 | wallabag_v2: 'Migrer depuis wallabag v2' | 297 | wallabag_v2: 'Migrer depuis wallabag v2' |
298 | readability: 'Migrer depuis Readability' | ||
299 | instapaper: 'Migrer depuis Instapaper' | ||
290 | developer: | 300 | developer: |
291 | title: 'Pour les développeurs' | 301 | title: 'Pour les développeurs' |
302 | description: 'Nous avons aussi pensé aux développeurs : Docker, API, traductions, etc.' | ||
292 | create_application: 'Créer votre application tierce' | 303 | create_application: 'Créer votre application tierce' |
304 | use_docker: 'Utiliser Docker pour installer wallabag' | ||
293 | docs: | 305 | docs: |
294 | title: 'Documentation complète' | 306 | title: 'Documentation complète' |
307 | description: "Il y a tellement de fonctionnalités dans wallabag. N'hésitez pas à lire le manuel pour les connaitre et apprendre comment les utiliser." | ||
295 | annotate: 'Annoter votre article' | 308 | annotate: 'Annoter votre article' |
296 | export: 'Convertissez vos articles en ePub ou en PDF' | 309 | export: 'Convertissez vos articles en ePub ou en PDF' |
297 | search_filters: "Apprenez à utiliser le moteur de recherche et les filtres pour retrouver l'article qui vous intéresse" | 310 | search_filters: "Apprenez à utiliser le moteur de recherche et les filtres pour retrouver l'article qui vous intéresse" |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Tags' | 321 | page_title: 'Tags' |
309 | list: | 322 | list: |
310 | number_on_the_page: "{0} Il n'y a pas de tag.|{1} Il y a un tag.|]1,Inf[ Il y a %count% tags." | 323 | number_on_the_page: "{0} Il n'y a pas de tag.|{1} Il y a un tag.|]1,Inf[ Il y a %count% tags." |
324 | see_untagged_entries: 'Voir les articles sans tag' | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | page_title: 'Importer' | 327 | page_title: 'Importer' |
@@ -335,6 +349,24 @@ import: | |||
335 | wallabag_v2: | 349 | wallabag_v2: |
336 | page_title: 'Importer > Wallabag v2' | 350 | page_title: 'Importer > Wallabag v2' |
337 | description: "Cet outil va importer tous vos articles d'une autre instance de wallabag v2. Allez dans tous vos articles, puis, sur la barre latérale, cliquez sur \"JSON\". Vous allez récupérer un fichier \"All articles.json\"" | 351 | description: "Cet outil va importer tous vos articles d'une autre instance de wallabag v2. Allez dans tous vos articles, puis, sur la barre latérale, cliquez sur \"JSON\". Vous allez récupérer un fichier \"All articles.json\"" |
352 | readability: | ||
353 | page_title: 'Importer > Readability' | ||
354 | description: 'Cet outil va importer toutes vos données de Readability. Sur la page des outils (https://www.readability.com/tools/), cliquez sur "Export your data" dans la section "Data Export". Vous allez recevoir un email avec un lien pour télécharger le json.' | ||
355 | how_to: "Choisissez le fichier de votre export Readability et cliquez sur le bouton ci-dessous pour l'importer." | ||
356 | worker: | ||
357 | enabled: "Les imports sont asynchrones. Une fois l'import commencé un worker externe traitera les messages un par un. Le service activé est :" | ||
358 | firefox: | ||
359 | page_title: 'Import > Firefox' | ||
360 | description: "Cet outil va vous permettre d'importer tous vos marques-pages de Firefox. Ouvrez le panneau des marques-pages (Ctrl+Maj+O), puis dans « Importation et sauvegarde », choisissez « Sauvegarde... ». Vous allez récupérer un fichier .json. </p>" | ||
361 | how_to: "Choisissez le fichier de sauvegarde de vos marques-page et cliquez sur le bouton pour l'importer. Soyez avertis que le processus peut prendre un temps assez long car tous les articles doivent être récupérés en ligne." | ||
362 | chrome: | ||
363 | page_title: 'Import > Chrome' | ||
364 | description: "Cet outil va vous permettre d'importer tous vos marques-pages de Google Chrome/Chromium. Pour Google Chrome, la situation du fichier dépend de votre système d'exploitation : <ul><li>Sur GNU/Linux, allez dans le répertoire <code>~/.config/google-chrome/Default/</code></li><li>Sous Windows, il devrait se trouver à <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>Sur OS X, il devrait se trouver dans le fichier <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Une fois que vous y êtes, copiez le fichier Bookmarks à un endroit où vous le retrouverez.<em><br>Notez que si vous utilisez Chromium à la place de Chrome, vous devez corriger les chemins en conséquence.</em></p>" | ||
365 | how_to: "Choisissez le fichier de sauvegarde de vos marques-page et cliquez sur le bouton pour l'importer. Soyez avertis que le processus peut prendre un temps assez long car tous les articles doivent être récupérés en ligne." | ||
366 | instapaper: | ||
367 | page_title: 'Import > Instapaper' | ||
368 | description: 'Sur la page des paramètres (`https://www.instapaper.com/user<https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera ("instapaper-export.csv").' | ||
369 | how_to: "Choisissez le fichier de votre export Instapaper et cliquez sur le bouton ci-dessous pour l'importer." | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | page_title: 'Développeur' | 372 | page_title: 'Développeur' |
@@ -345,7 +377,7 @@ developer: | |||
345 | list_methods: "Lister toutes les méthodes de l'API" | 377 | list_methods: "Lister toutes les méthodes de l'API" |
346 | clients: | 378 | clients: |
347 | title: 'Clients' | 379 | title: 'Clients' |
348 | create_new: 'Créer une nouveau client' | 380 | create_new: 'Créer un nouveau client' |
349 | existing_clients: | 381 | existing_clients: |
350 | title: 'Les clients existants' | 382 | title: 'Les clients existants' |
351 | field_id: 'ID Client' | 383 | field_id: 'ID Client' |
@@ -354,19 +386,21 @@ developer: | |||
354 | field_grant_types: 'Type de privilège accordé' | 386 | field_grant_types: 'Type de privilège accordé' |
355 | no_client: 'Aucun client pour le moment' | 387 | no_client: 'Aucun client pour le moment' |
356 | remove: | 388 | remove: |
357 | warn_message_1: 'Vous avez la possibilité de supprimer un client. Cette action est IRREVERSIBLE !' | 389 | warn_message_1: 'Vous avez la possibilité de supprimer le client %name%. Cette action est IRREVERSIBLE !' |
358 | warn_message_2: "Si vous supprimez un client, toutes les applications qui l'utilisaient ne fonctionneront plus avec votre compte wallabag." | 390 | warn_message_2: "Si vous supprimez le client %name%, toutes les applications qui l'utilisaient ne fonctionneront plus avec votre compte wallabag." |
359 | action: 'Supprimer ce client' | 391 | action: 'Supprimer le client %name%' |
360 | client: | 392 | client: |
361 | page_title: 'Développeur > Nouveau client' | 393 | page_title: 'Développeur > Nouveau client' |
362 | page_description: "Vous allez créer un nouveau client. Merci de remplir l'url de redirection vers votre application." | 394 | page_description: "Vous allez créer un nouveau client. Merci de remplir l'url de redirection vers votre application." |
363 | form: | 395 | form: |
364 | redirect_uris_label: 'URLs de redirection' | 396 | name_label: "Nom du client" |
397 | redirect_uris_label: 'URLs de redirection (optionnel)' | ||
365 | save_label: 'Créer un nouveau client' | 398 | save_label: 'Créer un nouveau client' |
366 | action_back: 'Retour' | 399 | action_back: 'Retour' |
367 | client_parameter: | 400 | client_parameter: |
368 | page_title: 'Développeur > Les paramètres de votre client' | 401 | page_title: 'Développeur > Les paramètres de votre client' |
369 | page_description: 'Voilà les paramètres de votre client' | 402 | page_description: 'Voilà les paramètres de votre client' |
403 | field_name: 'Nom du client' | ||
370 | field_id: 'ID Client' | 404 | field_id: 'ID Client' |
371 | field_secret: 'Clé secrète' | 405 | field_secret: 'Clé secrète' |
372 | back: 'Retour' | 406 | back: 'Retour' |
@@ -384,6 +418,33 @@ developer: | |||
384 | paragraph_8: "Si vous voulez toutes les méthodes de l'API, jetez un oeil <a href=\"%link%\">à la documentation de l'API</a>." | 418 | paragraph_8: "Si vous voulez toutes les méthodes de l'API, jetez un oeil <a href=\"%link%\">à la documentation de l'API</a>." |
385 | back: 'Retour' | 419 | back: 'Retour' |
386 | 420 | ||
421 | user: | ||
422 | page_title: Gestion des utilisateurs | ||
423 | new_user: Créer un nouvel utilisateur | ||
424 | edit_user: Éditer un utilisateur existant | ||
425 | description: Ici vous pouvez gérer vos utilisateurs (création, mise à jour et suppression) | ||
426 | list: | ||
427 | actions: Actions | ||
428 | edit_action: Éditer | ||
429 | yes: Oui | ||
430 | no: Non | ||
431 | create_new_one: Créer un nouvel utilisateur | ||
432 | form: | ||
433 | username_label: "Nom d'utilisateur" | ||
434 | name_label: 'Nom' | ||
435 | password_label: 'Mot de passe' | ||
436 | repeat_new_password_label: 'Confirmez votre nouveau mot de passe' | ||
437 | plain_password_label: 'Mot de passe en clair' | ||
438 | email_label: 'Adresse e-mail' | ||
439 | enabled_label: 'Activé' | ||
440 | locked_label: 'Bloqué' | ||
441 | last_login_label: 'Dernière connexion' | ||
442 | twofactor_label: Double authentification | ||
443 | save: Sauvegarder | ||
444 | delete: Supprimer | ||
445 | delete_confirm: Êtes-vous sûr? | ||
446 | back_to_list: Revenir à la liste | ||
447 | |||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
389 | notice: | 450 | notice: |
@@ -400,10 +461,10 @@ flashes: | |||
400 | notice: | 461 | notice: |
401 | entry_already_saved: 'Article déjà sauvergardé le %date%' | 462 | entry_already_saved: 'Article déjà sauvergardé le %date%' |
402 | entry_saved: 'Article enregistré' | 463 | entry_saved: 'Article enregistré' |
403 | entry_saved_failed: "L'enregistrement a échoué" | 464 | entry_saved_failed: 'Article enregistré mais impossible de récupérer le contenu' |
404 | entry_updated: 'Article mis à jour' | 465 | entry_updated: 'Article mis à jour' |
405 | entry_reloaded: 'Article rechargé' | 466 | entry_reloaded: 'Article rechargé' |
406 | entry_reload_failed: "Le rechargement de l'article a échoué" | 467 | entry_reloaded_failed: "Article mis à jour mais impossible de récupérer le contenu" |
407 | entry_archived: 'Article marqué comme lu' | 468 | entry_archived: 'Article marqué comme lu' |
408 | entry_unarchived: 'Article marqué comme non lu' | 469 | entry_unarchived: 'Article marqué comme non lu' |
409 | entry_starred: 'Article ajouté dans les favoris' | 470 | entry_starred: 'Article ajouté dans les favoris' |
@@ -416,8 +477,12 @@ flashes: | |||
416 | notice: | 477 | notice: |
417 | failed: "L'import a échoué, veuillez ré-essayer" | 478 | failed: "L'import a échoué, veuillez ré-essayer" |
418 | failed_on_file: "Erreur lors du traitement de l'import. Vérifier votre fichier." | 479 | failed_on_file: "Erreur lors du traitement de l'import. Vérifier votre fichier." |
419 | summary: "Rapport d'import: %imported% importés, %skipped% déjà présent." | 480 | summary: "Rapport d'import: %imported% importés, %skipped% déjà présents." |
481 | summary_with_queue: "Rapport d'import: %queued% en cours de traitement." | ||
482 | error: | ||
483 | redis_enabled_not_installed: Redis est activé pour les imports asynchrones mais <u>impossible de s'y connecter</u>. Vérifier la configuration de Redis. | ||
484 | rabbit_enabled_not_installed: RabbitMQ est activé pour les imports asynchrones mais <u>impossible de s'y connecter</u>. Vérifier la configuration de RabbitMQ. | ||
420 | developer: | 485 | developer: |
421 | notice: | 486 | notice: |
422 | client_created: 'Nouveau client créé' | 487 | client_created: 'Nouveau client %name% créé' |
423 | client_deleted: 'Client supprimé' | 488 | client_deleted: 'Client %name% supprimé' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml index 231ba759..67205c6d 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Cerca' | 31 | search: 'Cerca' |
32 | save_link: 'Salva collegamento' | 32 | save_link: 'Salva collegamento' |
33 | back_to_unread: 'Torna ai contenuti non letti' | 33 | back_to_unread: 'Torna ai contenuti non letti' |
34 | # users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Aggiungi un nuovo contenuto' | 36 | add_new_entry: 'Aggiungi un nuovo contenuto' |
36 | search: 'Cerca' | 37 | search: 'Cerca' |
@@ -45,6 +46,7 @@ footer: | |||
45 | social: 'Social' | 46 | social: 'Social' |
46 | powered_by: 'powered by' | 47 | powered_by: 'powered by' |
47 | about: 'About' | 48 | about: 'About' |
49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Configurazione' | 52 | page_title: 'Configurazione' |
@@ -68,6 +70,7 @@ config: | |||
68 | 200_word: 'Leggo ~200 parole al minuto' | 70 | 200_word: 'Leggo ~200 parole al minuto' |
69 | 300_word: 'Leggo ~300 parole al minuto' | 71 | 300_word: 'Leggo ~300 parole al minuto' |
70 | 400_word: 'Leggo ~400 parole al minuto' | 72 | 400_word: 'Leggo ~400 parole al minuto' |
73 | pocket_consumer_key_label: Consumer key per Pocket per importare i contenuti | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'I feed RSS generati da wallabag ti permettono di leggere i tuoi contenuti salvati con il tuo lettore di RSS preferito. Prima, devi generare un token.' | 75 | description: 'I feed RSS generati da wallabag ti permettono di leggere i tuoi contenuti salvati con il tuo lettore di RSS preferito. Prima, devi generare un token.' |
73 | token_label: 'RSS token' | 76 | token_label: 'RSS token' |
@@ -93,6 +96,7 @@ config: | |||
93 | if_label: 'se' | 96 | if_label: 'se' |
94 | then_tag_as_label: 'allora tagga come' | 97 | then_tag_as_label: 'allora tagga come' |
95 | delete_rule_label: 'elimina' | 98 | delete_rule_label: 'elimina' |
99 | # edit_rule_label: 'edit' | ||
96 | rule_label: 'Regola' | 100 | rule_label: 'Regola' |
97 | tags_label: 'Tag' | 101 | tags_label: 'Tag' |
98 | faq: | 102 | faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | or: "Una regola O un'altra" | 130 | or: "Una regola O un'altra" |
127 | and: "Una regola E un'altra" | 131 | and: "Una regola E un'altra" |
128 | matches: 'Verifica che un <i>oggetto</i> risulti in una <i>ricerca</i> (case-insensitive).<br />Esempio: <code>titolo contiene "football"</code>' | 132 | matches: 'Verifica che un <i>oggetto</i> risulti in una <i>ricerca</i> (case-insensitive).<br />Esempio: <code>titolo contiene "football"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Username' | ||
131 | password_label: 'Password' | ||
132 | repeat_new_password_label: 'Ripeti password' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'E-mail' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | starred: 'Contenuti preferiti' | 137 | starred: 'Contenuti preferiti' |
140 | archived: 'Contenuti archiviati' | 138 | archived: 'Contenuti archiviati' |
141 | filtered: 'Contenuti filtrati' | 139 | filtered: 'Contenuti filtrati' |
140 | # filtered_tags: 'Filtered by tags' | ||
141 | # untagged: 'Untagged entries' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: "{0} Non ci sono contenuti.|{1} C'è un contenuto.|]1,Inf[ Ci sono %count% contenuti." | 143 | number_on_the_page: "{0} Non ci sono contenuti.|{1} C'è un contenuto.|]1,Inf[ Ci sono %count% contenuti." |
144 | reading_time: 'tempo di lettura stimato' | 144 | reading_time: 'tempo di lettura stimato' |
145 | reading_time_minutes: 'tempo di lettura stimato: %readingTime% min' | 145 | reading_time_minutes: 'tempo di lettura stimato: %readingTime% min' |
146 | reading_time_less_one_minute: 'tempo di lettura stimato: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'tempo di lettura stimato: <small class="inferieur"><</small> 1 min' |
147 | # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'originale' | 150 | original_article: 'originale' |
@@ -156,6 +157,7 @@ entry: | |||
156 | status_label: 'Stato' | 157 | status_label: 'Stato' |
157 | archived_label: 'Archiviati' | 158 | archived_label: 'Archiviati' |
158 | starred_label: 'Preferiti' | 159 | starred_label: 'Preferiti' |
160 | # unread_label: 'Unread' | ||
159 | preview_picture_label: "Ha un'immagine di anteprima" | 161 | preview_picture_label: "Ha un'immagine di anteprima" |
160 | preview_picture_help: 'Immagine di anteprima' | 162 | preview_picture_help: 'Immagine di anteprima' |
161 | language_label: 'Lingua' | 163 | language_label: 'Lingua' |
@@ -184,6 +186,8 @@ entry: | |||
184 | add_a_tag: 'Aggiungi un tag' | 186 | add_a_tag: 'Aggiungi un tag' |
185 | share_content: 'Condividi' | 187 | share_content: 'Condividi' |
186 | share_email_label: 'E-mail' | 188 | share_email_label: 'E-mail' |
189 | # public_link: 'public link' | ||
190 | # delete_public_link: 'delete public link' | ||
187 | download: 'Download' | 191 | download: 'Download' |
188 | print: 'Stampa' | 192 | print: 'Stampa' |
189 | problem: | 193 | problem: |
@@ -191,7 +195,7 @@ entry: | |||
191 | description: 'Questo contenuto viene visualizzato male?' | 195 | description: 'Questo contenuto viene visualizzato male?' |
192 | edit_title: 'Modifica titolo' | 196 | edit_title: 'Modifica titolo' |
193 | original_article: 'originale' | 197 | original_article: 'originale' |
194 | annotations_on_the_entry: '{0} Nessuna annotazione|{1} Una annotazione|]1,Inf[ %nbAnnotations% annotazioni' | 198 | annotations_on_the_entry: '{0} Nessuna annotazione|{1} Una annotazione|]1,Inf[ %count% annotazioni' |
195 | created_at: 'Data di creazione' | 199 | created_at: 'Data di creazione' |
196 | new: | 200 | new: |
197 | page_title: 'Salva un nuovo contenuto' | 201 | page_title: 'Salva un nuovo contenuto' |
@@ -204,6 +208,8 @@ entry: | |||
204 | url_label: 'Url' | 208 | url_label: 'Url' |
205 | is_public_label: 'Pubblico' | 209 | is_public_label: 'Pubblico' |
206 | save_label: 'Salva' | 210 | save_label: 'Salva' |
211 | public: | ||
212 | # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | ||
207 | 213 | ||
208 | about: | 214 | about: |
209 | page_title: 'About' | 215 | page_title: 'About' |
@@ -259,12 +265,14 @@ howto: | |||
259 | 265 | ||
260 | quickstart: | 266 | quickstart: |
261 | page_title: 'Introduzione' | 267 | page_title: 'Introduzione' |
268 | # more: 'More…' | ||
262 | intro: | 269 | intro: |
263 | title: 'Benvenuto su wallabag!' | 270 | title: 'Benvenuto su wallabag!' |
264 | paragraph_1: "Un tour in cui ti guideremo per scoprire e che ti mostrerà delle funzionalità che potrebbero interessarti." | 271 | paragraph_1: "Un tour in cui ti guideremo per scoprire e che ti mostrerà delle funzionalità che potrebbero interessarti." |
265 | paragraph_2: 'Seguici!' | 272 | paragraph_2: 'Seguici!' |
266 | configure: | 273 | configure: |
267 | title: "Configura l'applicazione" | 274 | title: "Configura l'applicazione" |
275 | # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | ||
268 | language: 'Cambia lingua e design' | 276 | language: 'Cambia lingua e design' |
269 | rss: 'Abilita i feed RSS' | 277 | rss: 'Abilita i feed RSS' |
270 | tagging_rules: 'Scrivi delle regole per taggare automaticamente i contenuti' | 278 | tagging_rules: 'Scrivi delle regole per taggare automaticamente i contenuti' |
@@ -278,6 +286,7 @@ quickstart: | |||
278 | import: "Configura l'importazione" | 286 | import: "Configura l'importazione" |
279 | first_steps: | 287 | first_steps: |
280 | title: 'Pimi passi' | 288 | title: 'Pimi passi' |
289 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
281 | new_article: 'Salva il tuo primo contenuto' | 290 | new_article: 'Salva il tuo primo contenuto' |
282 | unread_articles: 'E classificalo!' | 291 | unread_articles: 'E classificalo!' |
283 | migrate: | 292 | migrate: |
@@ -286,11 +295,16 @@ quickstart: | |||
286 | pocket: 'Trasferisci da Pocket' | 295 | pocket: 'Trasferisci da Pocket' |
287 | wallabag_v1: 'Trasferisci da wallabag v1' | 296 | wallabag_v1: 'Trasferisci da wallabag v1' |
288 | wallabag_v2: 'Trasferisci da wallabag v2' | 297 | wallabag_v2: 'Trasferisci da wallabag v2' |
298 | readability: 'Trasferisci da Readability' | ||
299 | instapaper: 'Trasferisci da Instapaper' | ||
289 | developer: | 300 | developer: |
290 | title: 'Sviluppatori' | 301 | title: 'Sviluppatori' |
302 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
291 | create_application: 'Crea la tua applicazione' | 303 | create_application: 'Crea la tua applicazione' |
304 | # use_docker: 'Use Docker to install wallabag' | ||
292 | docs: | 305 | docs: |
293 | title: 'Documentazione completa' | 306 | title: 'Documentazione completa' |
307 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
294 | annotate: 'Annota il tuo contenuto' | 308 | annotate: 'Annota il tuo contenuto' |
295 | export: 'Converti i tuoi contenuti in EPUB o PDF' | 309 | export: 'Converti i tuoi contenuti in EPUB o PDF' |
296 | search_filters: 'Impara come puoi recuperare un contenuto tramite la ricerca e i filtri' | 310 | search_filters: 'Impara come puoi recuperare un contenuto tramite la ricerca e i filtri' |
@@ -307,6 +321,7 @@ tag: | |||
307 | page_title: 'Tags' | 321 | page_title: 'Tags' |
308 | list: | 322 | list: |
309 | number_on_the_page: "{0} Non ci sono tag.|{1} C'è un tag.|]1,Inf[ ci sono %count% tag." | 323 | number_on_the_page: "{0} Non ci sono tag.|{1} C'è un tag.|]1,Inf[ ci sono %count% tag." |
324 | # see_untagged_entries: 'See untagged entries' | ||
310 | 325 | ||
311 | import: | 326 | import: |
312 | page_title: 'Importa' | 327 | page_title: 'Importa' |
@@ -334,6 +349,24 @@ import: | |||
334 | wallabag_v2: | 349 | wallabag_v2: |
335 | page_title: 'Importa da > Wallabag v2' | 350 | page_title: 'Importa da > Wallabag v2' |
336 | description: 'Questo importatore copierà tutti i tuoi dati da un wallabag v2. Vai in "Tutti i contenuti", e, nella sidebar di esportazione, clicca su "JSON". Otterrai un file "Tutti i contenuti.json".' | 351 | description: 'Questo importatore copierà tutti i tuoi dati da un wallabag v2. Vai in "Tutti i contenuti", e, nella sidebar di esportazione, clicca su "JSON". Otterrai un file "Tutti i contenuti.json".' |
352 | readability: | ||
353 | page_title: 'Importa da > Readability' | ||
354 | # description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | ||
355 | # how_to: 'Please select your Readability export and click on the below button to upload and import it.' | ||
356 | worker: | ||
357 | # enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | ||
358 | firefox: | ||
359 | page_title: 'Importa da > Firefox' | ||
360 | # description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
361 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
362 | chrome: | ||
363 | page_title: 'Importa da > Chrome' | ||
364 | # description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | ||
365 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
366 | instapaper: | ||
367 | page_title: 'Importa da > Instapaper' | ||
368 | # description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | ||
369 | # how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | ||
337 | 370 | ||
338 | developer: | 371 | developer: |
339 | page_title: 'Sviluppatori' | 372 | page_title: 'Sviluppatori' |
@@ -360,12 +393,14 @@ developer: | |||
360 | page_title: 'Sviluppatori > Nuovo client' | 393 | page_title: 'Sviluppatori > Nuovo client' |
361 | page_description: 'Stai per creare un nuovo client. Compila i campi sottostanti per il redirect URI della tua applicazione.' | 394 | page_description: 'Stai per creare un nuovo client. Compila i campi sottostanti per il redirect URI della tua applicazione.' |
362 | form: | 395 | form: |
396 | # name_label: 'Name of the client' | ||
363 | redirect_uris_label: 'Redirect URI' | 397 | redirect_uris_label: 'Redirect URI' |
364 | save_label: 'Crea un nuovo client' | 398 | save_label: 'Crea un nuovo client' |
365 | action_back: 'Indietro' | 399 | action_back: 'Indietro' |
366 | client_parameter: | 400 | client_parameter: |
367 | page_title: 'Sviluppatori > parametri Client' | 401 | page_title: 'Sviluppatori > parametri Client' |
368 | page_description: 'Questi sono i tuoi parametri del client.' | 402 | page_description: 'Questi sono i tuoi parametri del client.' |
403 | # field_name: 'Client name' | ||
369 | field_id: 'Client ID' | 404 | field_id: 'Client ID' |
370 | field_secret: 'Client secret' | 405 | field_secret: 'Client secret' |
371 | back: 'Indietro' | 406 | back: 'Indietro' |
@@ -383,6 +418,33 @@ developer: | |||
383 | paragraph_8: 'Se vuoi visualizzare tutti gli API endpoints, dai una occhiata alla <a href="%link%">documentazione delle API</a>.' | 418 | paragraph_8: 'Se vuoi visualizzare tutti gli API endpoints, dai una occhiata alla <a href="%link%">documentazione delle API</a>.' |
384 | back: 'Indietro' | 419 | back: 'Indietro' |
385 | 420 | ||
421 | user: | ||
422 | # page_title: Users management | ||
423 | # new_user: Create a new user | ||
424 | # edit_user: Edit an existing user | ||
425 | # description: "Here you can manage all users (create, edit and delete)" | ||
426 | # list: | ||
427 | # actions: Actions | ||
428 | # edit_action: Edit | ||
429 | # yes: Yes | ||
430 | # no: No | ||
431 | # create_new_one: Create a new user | ||
432 | form: | ||
433 | username_label: 'Username' | ||
434 | # name_label: 'Name' | ||
435 | password_label: 'Password' | ||
436 | repeat_new_password_label: 'Ripeti password' | ||
437 | plain_password_label: '????' | ||
438 | email_label: 'E-mail' | ||
439 | # enabled_label: 'Enabled' | ||
440 | # locked_label: 'Locked' | ||
441 | # last_login_label: 'Last login' | ||
442 | # twofactor_label: Two factor authentication | ||
443 | # save: Save | ||
444 | # delete: Delete | ||
445 | # delete_confirm: Are you sure? | ||
446 | # back_to_list: Back to list | ||
447 | |||
386 | flashes: | 448 | flashes: |
387 | config: | 449 | config: |
388 | notice: | 450 | notice: |
@@ -399,10 +461,10 @@ flashes: | |||
399 | notice: | 461 | notice: |
400 | entry_already_saved: 'Contenuto già salvato in data %date%' | 462 | entry_already_saved: 'Contenuto già salvato in data %date%' |
401 | entry_saved: 'Contenuto salvato' | 463 | entry_saved: 'Contenuto salvato' |
402 | # entry_saved_failed: 'Failed to save entry' | 464 | # entry_saved_failed: 'Entry saved but fetching content failed' |
403 | entry_updated: 'Contenuto aggiornato' | 465 | entry_updated: 'Contenuto aggiornato' |
404 | entry_reloaded: 'Contenuto ricaricato' | 466 | entry_reloaded: 'Contenuto ricaricato' |
405 | entry_reload_failed: 'Errore nel ricaricamento del contenuto' | 467 | # entry_reloaded_failed: 'Entry reloaded but fetching content failed' |
406 | entry_archived: 'Contenuto archiviato' | 468 | entry_archived: 'Contenuto archiviato' |
407 | entry_unarchived: 'Contenuto dis-archiviato' | 469 | entry_unarchived: 'Contenuto dis-archiviato' |
408 | entry_starred: 'Contenuto segnato come preferito' | 470 | entry_starred: 'Contenuto segnato come preferito' |
@@ -416,6 +478,10 @@ flashes: | |||
416 | failed: 'Importazione fallita, riprova.' | 478 | failed: 'Importazione fallita, riprova.' |
417 | failed_on_file: 'Errore durante la processazione dei dati da importare. Verifica il tuo file di import.' | 479 | failed_on_file: 'Errore durante la processazione dei dati da importare. Verifica il tuo file di import.' |
418 | summary: 'Sommario di importazione: %imported% importati, %skipped% già salvati.' | 480 | summary: 'Sommario di importazione: %imported% importati, %skipped% già salvati.' |
481 | # summary_with_queue: 'Import summary: %queued% queued.' | ||
482 | error: | ||
483 | # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | ||
484 | # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | ||
419 | developer: | 485 | developer: |
420 | notice: | 486 | notice: |
421 | client_created: 'Nuovo client creato.' | 487 | client_created: 'Nuovo client creato.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml index 6e71b850..25e5f05a 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml | |||
@@ -19,18 +19,19 @@ menu: | |||
19 | unread: 'Pas legits' | 19 | unread: 'Pas legits' |
20 | starred: 'Favorits' | 20 | starred: 'Favorits' |
21 | archive: 'Legits' | 21 | archive: 'Legits' |
22 | all_articles: 'Tots los articles' | 22 | all_articles: 'Totes los articles' |
23 | config: 'Configuracion' | 23 | config: 'Configuracion' |
24 | tags: 'Etiquetas' | 24 | tags: 'Etiquetas' |
25 | internal_settings: 'Configuracion interna' | 25 | internal_settings: 'Configuracion interna' |
26 | import: 'Importar' | 26 | import: 'Importar' |
27 | howto: 'Ajuda' | 27 | howto: 'Ajuda' |
28 | developer: 'Desvolopador' | 28 | developer: 'Desvolopador' |
29 | logout: 'Déconnexion' | 29 | logout: 'Desconnexion' |
30 | about: 'A prepaus' | 30 | about: 'A prepaus' |
31 | search: 'Cercar' | 31 | search: 'Cercar' |
32 | save_link: 'Enregistrar un novèl article' | 32 | save_link: 'Enregistrar un novèl article' |
33 | back_to_unread: 'Tornar als articles pas legits' | 33 | back_to_unread: 'Tornar als articles pas legits' |
34 | # users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Enregistrar un novèl article' | 36 | add_new_entry: 'Enregistrar un novèl article' |
36 | search: 'Cercar' | 37 | search: 'Cercar' |
@@ -41,13 +42,14 @@ menu: | |||
41 | 42 | ||
42 | footer: | 43 | footer: |
43 | wallabag: | 44 | wallabag: |
44 | elsewhere: 'Emportatz wallabag amb vosaultres' | 45 | elsewhere: 'Emportatz wallabag amb vosautres' |
45 | social: 'Social' | 46 | social: 'Social' |
46 | powered_by: 'propulsat per' | 47 | powered_by: 'propulsat per' |
47 | about: 'A prepaus' | 48 | about: 'A prepaus' |
48 | page_title: 'Configuracion' | 49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! |
49 | 50 | ||
50 | config: | 51 | config: |
52 | page_title: 'Configuracion' | ||
51 | tab_menu: | 53 | tab_menu: |
52 | settings: 'Paramètres' | 54 | settings: 'Paramètres' |
53 | rss: 'RSS' | 55 | rss: 'RSS' |
@@ -68,11 +70,12 @@ config: | |||
68 | 200_word: "Legissi a l'entorn de 200 mots per minuta" | 70 | 200_word: "Legissi a l'entorn de 200 mots per minuta" |
69 | 300_word: "Legissi a l'entorn de 300 mots per minuta" | 71 | 300_word: "Legissi a l'entorn de 300 mots per minuta" |
70 | 400_word: "Legissi a l'entorn de 400 mots per minuta" | 72 | 400_word: "Legissi a l'entorn de 400 mots per minuta" |
73 | pocket_consumer_key_label: Clau d'autentificacion Pocket per importar las donadas | ||
71 | form_rss: | 74 | form_rss: |
72 | description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton." | 75 | description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton." |
73 | token_label: 'Geton RSS' | 76 | token_label: 'Geton RSS' |
74 | no_token: 'Aucun jeton généré' | 77 | no_token: 'Pas cap de geton generat' |
75 | token_create: 'Pas cap de geton generat' | 78 | token_create: 'Creatz vòstre geton' |
76 | token_reset: 'Reïnicializatz vòstre geton' | 79 | token_reset: 'Reïnicializatz vòstre geton' |
77 | rss_links: 'URL de vòstres fluxes RSS' | 80 | rss_links: 'URL de vòstres fluxes RSS' |
78 | rss_link: | 81 | rss_link: |
@@ -93,6 +96,7 @@ config: | |||
93 | if_label: 'se' | 96 | if_label: 'se' |
94 | then_tag_as_label: 'alara atribuir las etiquetas' | 97 | then_tag_as_label: 'alara atribuir las etiquetas' |
95 | delete_rule_label: 'suprimir' | 98 | delete_rule_label: 'suprimir' |
99 | # edit_rule_label: 'edit' | ||
96 | rule_label: 'Règla' | 100 | rule_label: 'Règla' |
97 | tags_label: 'Etiquetas' | 101 | tags_label: 'Etiquetas' |
98 | faq: | 102 | faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | or: "Una règla O l'autra" | 130 | or: "Una règla O l'autra" |
127 | and: "Una règla E l'autra" | 131 | and: "Una règla E l'autra" |
128 | matches: 'Teste se un <i>subjècte</i> correspond a una <i>recerca</i> (non sensibla a la cassa).<br />Exemple : <code>title matches \"football\"</code>' | 132 | matches: 'Teste se un <i>subjècte</i> correspond a una <i>recerca</i> (non sensibla a la cassa).<br />Exemple : <code>title matches \"football\"</code>' |
129 | form_new_user: | ||
130 | username_label: "Nom d'utilizaire" | ||
131 | password_label: 'Senhal' | ||
132 | repeat_new_password_label: 'Confirmatz vòstre novèl senhal' | ||
133 | plain_password_label: 'Senhal en clar' | ||
134 | email_label: 'Adreça de corrièl' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | starred: 'Articles favorits' | 137 | starred: 'Articles favorits' |
140 | archived: 'Articles legits' | 138 | archived: 'Articles legits' |
141 | filtered: 'Articles filtrats' | 139 | filtered: 'Articles filtrats' |
140 | filtered_tags: 'Filtats per etiquetas' | ||
141 | untagged: 'Articles sens etiqueta' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles." | 143 | number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles." |
144 | reading_time: 'durada de lectura' | 144 | reading_time: 'durada de lectura' |
145 | reading_time_minutes: 'durada de lectura : %readingTime% min' | 145 | reading_time_minutes: 'durada de lectura : %readingTime% min' |
146 | reading_time_less_one_minute: 'durada de lectura : <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'durada de lectura : <small class="inferieur"><</small> 1 min' |
147 | number_of_tags: '{1}e una autra etiqueta|]1,Inf[e %count% autras etiquetas' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'original' |
@@ -183,8 +184,10 @@ entry: | |||
183 | re_fetch_content: 'Tornar cargar lo contengut' | 184 | re_fetch_content: 'Tornar cargar lo contengut' |
184 | delete: 'Suprimir' | 185 | delete: 'Suprimir' |
185 | add_a_tag: 'Ajustar una etiqueta' | 186 | add_a_tag: 'Ajustar una etiqueta' |
186 | share_content: 'Partatjar' | 187 | share_content: 'Partejar' |
187 | share_email_label: 'Corrièl' | 188 | share_email_label: 'Corrièl' |
189 | public_link: 'ligam public' | ||
190 | delete_public_link: 'suprimir lo ligam public' | ||
188 | download: 'Telecargar' | 191 | download: 'Telecargar' |
189 | print: 'Imprimir' | 192 | print: 'Imprimir' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: "Marca mal la presentacion d'aqueste article ?" | 195 | description: "Marca mal la presentacion d'aqueste article ?" |
193 | edit_title: 'Modificar lo títol' | 196 | edit_title: 'Modificar lo títol' |
194 | original_article: 'original' | 197 | original_article: 'original' |
195 | annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %nbAnnotations% anotacions" | 198 | annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %count% anotacions" |
196 | created_at: 'Data de creacion' | 199 | created_at: 'Data de creacion' |
197 | new: | 200 | new: |
198 | page_title: 'Enregistrar un novèl article' | 201 | page_title: 'Enregistrar un novèl article' |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'Url' | 208 | url_label: 'Url' |
206 | is_public_label: 'Public' | 209 | is_public_label: 'Public' |
207 | save_label: 'Enregistrar' | 210 | save_label: 'Enregistrar' |
211 | public: | ||
212 | # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'A prepaus' | 215 | page_title: 'A prepaus' |
@@ -218,7 +223,7 @@ about: | |||
218 | developped_by: 'Desvolopat per' | 223 | developped_by: 'Desvolopat per' |
219 | website: 'Site web' | 224 | website: 'Site web' |
220 | many_contributors: 'E un fum de contributors ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">sur Github</a>' | 225 | many_contributors: 'E un fum de contributors ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">sur Github</a>' |
221 | project_website: 'Site web del projète' | 226 | project_website: 'Site web del projècte' |
222 | license: 'Licéncia' | 227 | license: 'Licéncia' |
223 | version: 'Version' | 228 | version: 'Version' |
224 | getting_help: | 229 | getting_help: |
@@ -239,7 +244,7 @@ about: | |||
239 | 244 | ||
240 | howto: | 245 | howto: |
241 | page_title: 'Ajuda' | 246 | page_title: 'Ajuda' |
242 | page_description: "I a mai d'un biai d'enregistrar un article :" | 247 | page_description: "I a mai d'un biais d'enregistrar un article :" |
243 | top_menu: | 248 | top_menu: |
244 | browser_addons: 'Extensions de navigator' | 249 | browser_addons: 'Extensions de navigator' |
245 | mobile_apps: 'Aplicacions mobil' | 250 | mobile_apps: 'Aplicacions mobil' |
@@ -260,12 +265,14 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | page_title: 'Per ben començar' | 267 | page_title: 'Per ben començar' |
268 | # more: 'More…' | ||
263 | intro: | 269 | intro: |
264 | title: 'Benvenguda sus wallabag !' | 270 | title: 'Benvenguda sus wallabag !' |
265 | paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas fonccionalitats que vos poirián interessar per vos apropriar aquesta aisina." | 271 | paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas fonccionalitats que vos poirián interessar per vos apropriar aquesta aisina." |
266 | paragraph_2: 'Seguètz-nos ' | 272 | paragraph_2: 'Seguètz-nos ' |
267 | configure: | 273 | configure: |
268 | title: "Configuratz l'aplicacio" | 274 | title: "Configuratz l'aplicacio" |
275 | # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | ||
269 | language: "Cambiatz la lenga e l'estil de l'aplicacion" | 276 | language: "Cambiatz la lenga e l'estil de l'aplicacion" |
270 | rss: 'Activatz los fluxes RSS' | 277 | rss: 'Activatz los fluxes RSS' |
271 | tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles' | 278 | tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles' |
@@ -279,6 +286,7 @@ quickstart: | |||
279 | import: 'Configurar los impòrt' | 286 | import: 'Configurar los impòrt' |
280 | first_steps: | 287 | first_steps: |
281 | title: 'Primièrs passes' | 288 | title: 'Primièrs passes' |
289 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
282 | new_article: 'Ajustatz vòstre primièr article' | 290 | new_article: 'Ajustatz vòstre primièr article' |
283 | unread_articles: 'E racaptatz-lo !' | 291 | unread_articles: 'E racaptatz-lo !' |
284 | migrate: | 292 | migrate: |
@@ -287,11 +295,16 @@ quickstart: | |||
287 | pocket: 'Migrar dempuèi Pocket' | 295 | pocket: 'Migrar dempuèi Pocket' |
288 | wallabag_v1: 'Migrar dempuèi wallabag v1' | 296 | wallabag_v1: 'Migrar dempuèi wallabag v1' |
289 | wallabag_v2: 'Migrar dempuèi wallabag v2' | 297 | wallabag_v2: 'Migrar dempuèi wallabag v2' |
298 | readability: 'Migrar dempuèi Readability' | ||
299 | instapaper: 'Migrar dempuèi Instapaper' | ||
290 | developer: | 300 | developer: |
291 | title: 'Pels desvolopadors' | 301 | title: 'Pels desvolopadors' |
302 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
292 | create_application: 'Crear vòstra aplicacion tèrça' | 303 | create_application: 'Crear vòstra aplicacion tèrça' |
304 | # use_docker: 'Use Docker to install wallabag' | ||
293 | docs: | 305 | docs: |
294 | title: 'Documentacion complèta' | 306 | title: 'Documentacion complèta' |
307 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
295 | annotate: 'Anotatar vòstre article' | 308 | annotate: 'Anotatar vòstre article' |
296 | export: 'Convertissètz vòstres articles en ePub o en PDF' | 309 | export: 'Convertissètz vòstres articles en ePub o en PDF' |
297 | search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa" | 310 | search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa" |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Etiquetas' | 321 | page_title: 'Etiquetas' |
309 | list: | 322 | list: |
310 | number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas." | 323 | number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas." |
324 | see_untagged_entries: "Afichar las entradas sens pas cap d'etiquetas" | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | page_title: 'Importar' | 327 | page_title: 'Importar' |
@@ -320,7 +334,7 @@ import: | |||
320 | file_label: 'Fichièr' | 334 | file_label: 'Fichièr' |
321 | save_label: 'Importar lo fichièr' | 335 | save_label: 'Importar lo fichièr' |
322 | pocket: | 336 | pocket: |
323 | page_title: 'Importer > Pocket' | 337 | page_title: 'Importar > Pocket' |
324 | description: "Aquesta aisina importarà totas vòstras donadas de Pocket. Pocket nos permet pas de recuperar lo contengut dempuèi lor servidor, alara wallabag deu tornar fulhetar cada article per recuperar son contengut." | 338 | description: "Aquesta aisina importarà totas vòstras donadas de Pocket. Pocket nos permet pas de recuperar lo contengut dempuèi lor servidor, alara wallabag deu tornar fulhetar cada article per recuperar son contengut." |
325 | config_missing: | 339 | config_missing: |
326 | description: "L'importacion dempuèi Pocket es pas configurada." | 340 | description: "L'importacion dempuèi Pocket es pas configurada." |
@@ -329,20 +343,38 @@ import: | |||
329 | authorize_message: "Podètz importar vòstras donadas dempuèi vòstre compte Pocket. Vos cal pas que clicar sul boton çai-jos e autorizar wallabag a se connectar a getpocket.com." | 343 | authorize_message: "Podètz importar vòstras donadas dempuèi vòstre compte Pocket. Vos cal pas que clicar sul boton çai-jos e autorizar wallabag a se connectar a getpocket.com." |
330 | connect_to_pocket: 'Se connectar a Pocket e importar las donadas' | 344 | connect_to_pocket: 'Se connectar a Pocket e importar las donadas' |
331 | wallabag_v1: | 345 | wallabag_v1: |
332 | page_title: 'Importer > Wallabag v1' | 346 | page_title: 'Importar > Wallabag v1' |
333 | description: 'Aquesta aisina importarà totas vòstras donadas de wallabag v1. Sus vòstre pagina de configuracion de wallabag v1, clicatz sus \"Export JSON\" dins la seccion \"Exportar vòstras donadas de wallabag\". Traparatz un fichièr \"wallabag-export-1-xxxx-xx-xx.json\".' | 347 | description: 'Aquesta aisina importarà totas vòstras donadas de wallabag v1. Sus vòstre pagina de configuracion de wallabag v1, clicatz sus \"Export JSON\" dins la seccion \"Exportar vòstras donadas de wallabag\". Traparatz un fichièr \"wallabag-export-1-xxxx-xx-xx.json\".' |
334 | how_to: "Causissètz lo fichièr de vòstra exportacion wallabag v1 e clicatz sul boton çai-jos per l'importar." | 348 | how_to: "Causissètz lo fichièr de vòstra exportacion wallabag v1 e clicatz sul boton çai-jos per l'importar." |
335 | wallabag_v2: | 349 | wallabag_v2: |
336 | page_title: 'Importer > Wallabag v2' | 350 | page_title: 'Importar > Wallabag v2' |
337 | description: "Aquesta aisina importarà totas vòstras donadas d'una instància mai de wallabag v2. Anatz dins totes vòstres articles, puèi, sus la barra laterala, clicatz sus \"JSON\". Traparatz un fichièr \"All articles.json\"" | 351 | description: "Aquesta aisina importarà totas vòstras donadas d'una instància mai de wallabag v2. Anatz dins totes vòstres articles, puèi, sus la barra laterala, clicatz sus \"JSON\". Traparatz un fichièr \"All articles.json\"" |
352 | readability: | ||
353 | page_title: 'Importar > Readability' | ||
354 | description: "Aquesta aisina importarà totas vòstres articles de Readability. Sus la pagina de l'aisina (https://www.readability.com/tools/), clicatz sus \"Export your data\" dins la seccion \"Data Export\". Recebretz un corrièl per telecargar un json (qu'acaba pas amb un .json de fach)." | ||
355 | how_to: "Mercés de seleccionar vòstre Readability fichièr e de clicar sul boton dejós per lo telecargar e l'importar." | ||
356 | worker: | ||
357 | enabled: "L'importacion se fa de manièra asincròna. Un còp l'importacion lançada, una aisina externa s'ocuparà dels messatges un per un. Lo servici actual es : " | ||
358 | firefox: | ||
359 | page_title: 'Importar > Firefox' | ||
360 | description: "Aquesta aisina importarà totas vòstres favorits de Firefox. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
361 | how_to: "Mercés de causir lo fichièr de salvagarda e de clicar sul boton dejós per l'importar. Notatz que lo tractament pòt durar un moment ja que totes los articles an d'èsser recuperats." | ||
362 | chrome: | ||
363 | page_title: 'Importar > Chrome' | ||
364 | description: "Aquesta aisina importarà totas vòstres favorits de Chrome. L'emplaçament del fichièr depend de vòstre sistèma operatiu : <ul><li>Sus Linux, anatz al dorsièr <code>~/.config/chromium/Default/</code></li><li>Sus Windows, deu èsser dins <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>sus OS X, deu èsser dins <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Un còp enlà, copiatz lo fichièr de favorits dins un endrech que volètz.<em><br>Notatz que s'avètz Chromium al lòc de Chrome, vos cal cambiar lo camin segon aquesta situacion.</em></p>" | ||
365 | how_to: "Mercés de causir lo fichièr de salvagarda e de clicar sul boton dejós per l'importar. Notatz que lo tractament pòt durar un moment ja que totes los articles an d'èsser recuperats." | ||
366 | instapaper: | ||
367 | page_title: 'Importar > Instapaper' | ||
368 | description: "Aquesta aisina importarà totas vòstres articles d'Instapaper. Sus la pagina de paramètres (https://www.instapaper.com/user), clicatz sus \"Download .CSV file\" dins la seccion \"Export\". Un fichièr CSV serà telecargat (aital \"instapaper-export.csv\")." | ||
369 | how_to: "Mercés de causir vòstre fichièr Instapaper e de clicar sul boton dejós per lo telecargar e l'importar" | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | page_title: 'Desvolopador' | 372 | page_title: 'Desvolopaire' |
341 | welcome_message: "Benvenguda sus l'API de wallabag" | 373 | welcome_message: "Benvenguda sus l'API de wallabag" |
342 | documentation: 'Documentacion' | 374 | documentation: 'Documentacion' |
343 | how_to_first_app: 'Cossí crear vòstra primièra aplicacion' | 375 | how_to_first_app: 'Cossí crear vòstra primièra aplicacion' |
344 | full_documentation: "Veire la documentacion completa de l'API" | 376 | full_documentation: "Veire la documentacion completa de l'API" |
345 | # list_methods: 'List API methods' | 377 | list_methods: "Lista dels metòdes de l'API" |
346 | clients: | 378 | clients: |
347 | title: 'Clients' | 379 | title: 'Clients' |
348 | create_new: 'Crear un novèl client' | 380 | create_new: 'Crear un novèl client' |
@@ -361,20 +393,22 @@ developer: | |||
361 | page_title: 'Desvlopador > Novèl client' | 393 | page_title: 'Desvlopador > Novèl client' |
362 | page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion." | 394 | page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion." |
363 | form: | 395 | form: |
396 | name_label: "Nom del client" | ||
364 | redirect_uris_label: 'URLs de redireccion' | 397 | redirect_uris_label: 'URLs de redireccion' |
365 | save_label: 'Crear un novèl client' | 398 | save_label: 'Crear un novèl client' |
366 | action_back: 'Retorn' | 399 | action_back: 'Retorn' |
367 | client_parameter: | 400 | client_parameter: |
368 | page_title: 'Desvolopador > Los paramètres de vòstre client' | 401 | page_title: 'Desvolopador > Los paramètres de vòstre client' |
369 | page_description: 'Vaquí los paramètres de vòstre client' | 402 | page_description: 'Vaquí los paramètres de vòstre client' |
403 | field_name: 'Nom del client' | ||
370 | field_id: 'ID Client' | 404 | field_id: 'ID Client' |
371 | field_secret: 'Clau secreta' | 405 | field_secret: 'Clau secreta' |
372 | back: 'Retour' | 406 | back: 'Retour' |
373 | read_howto: 'Legir \"cossí crear ma primièra aplicacion\"' | 407 | read_howto: 'Legir "cossí crear ma primièra aplicacion"' |
374 | howto: | 408 | howto: |
375 | page_title: 'Desvolopador > Cossí crear ma primièra aplicacion' | 409 | page_title: 'Desvolopador > Cossí crear ma primièra aplicacion' |
376 | description: | 410 | description: |
377 | paragraph_1: "Las comandas seguentas utilizan la <a href=\"https://github.com/jkbrzt/httpie\">libraria HTTPie</a>. Asseguratz-vos que siasqueòu installadas abans de l'utilizar." | 411 | paragraph_1: "Las comandas seguentas utilizan la <a href=\"https://github.com/jkbrzt/httpie\">bibliotèca HTTPie</a>. Asseguratz-vos que siasqueòu installadas abans de l'utilizar." |
378 | paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar." | 412 | paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar." |
379 | paragraph_3: 'Per crear un geton, vos cal crear <a href=\"%link%\">crear un novèl client</a>.' | 413 | paragraph_3: 'Per crear un geton, vos cal crear <a href=\"%link%\">crear un novèl client</a>.' |
380 | paragraph_4: 'Ara creatz un geton (remplaçar client_id, client_secret, username e password amb las bonas valors) :' | 414 | paragraph_4: 'Ara creatz un geton (remplaçar client_id, client_secret, username e password amb las bonas valors) :' |
@@ -384,6 +418,33 @@ developer: | |||
384 | paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp d’uèlh <a href=\"%link%\">a la documentacion de l'API</a>." | 418 | paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp d’uèlh <a href=\"%link%\">a la documentacion de l'API</a>." |
385 | back: 'Retorn' | 419 | back: 'Retorn' |
386 | 420 | ||
421 | user: | ||
422 | # page_title: Users management | ||
423 | # new_user: Create a new user | ||
424 | # edit_user: Edit an existing user | ||
425 | # description: "Here you can manage all users (create, edit and delete)" | ||
426 | # list: | ||
427 | # actions: Actions | ||
428 | # edit_action: Edit | ||
429 | # yes: Yes | ||
430 | # no: No | ||
431 | # create_new_one: Create a new user | ||
432 | form: | ||
433 | username_label: "Nom d'utilizaire" | ||
434 | # name_label: 'Name' | ||
435 | password_label: 'Senhal' | ||
436 | repeat_new_password_label: 'Confirmatz vòstre novèl senhal' | ||
437 | plain_password_label: 'Senhal en clar' | ||
438 | email_label: 'Adreça de corrièl' | ||
439 | # enabled_label: 'Enabled' | ||
440 | # locked_label: 'Locked' | ||
441 | # last_login_label: 'Last login' | ||
442 | # twofactor_label: Two factor authentication | ||
443 | # save: Save | ||
444 | # delete: Delete | ||
445 | # delete_confirm: Are you sure? | ||
446 | # back_to_list: Back to list | ||
447 | |||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
389 | notice: | 450 | notice: |
@@ -400,10 +461,10 @@ flashes: | |||
400 | notice: | 461 | notice: |
401 | entry_already_saved: 'Article ja salvargardat lo %date%' | 462 | entry_already_saved: 'Article ja salvargardat lo %date%' |
402 | entry_saved: 'Article enregistrat' | 463 | entry_saved: 'Article enregistrat' |
403 | # entry_saved_failed: 'Failed to save entry' | 464 | entry_saved_failed: 'Article salvat mai fracàs de la recuperacion del contengut' |
404 | entry_updated: 'Article mes a jorn' | 465 | entry_updated: 'Article mes a jorn' |
405 | entry_reloaded: 'Article recargat' | 466 | entry_reloaded: 'Article recargat' |
406 | entry_reload_failed: "Fracàs de l'actualizacion de l'article" | 467 | entry_reloaded_failed: "L'article es estat cargat de nòu mai la recuperacion del contengut a fracassat" |
407 | entry_archived: 'Article marcat coma legit' | 468 | entry_archived: 'Article marcat coma legit' |
408 | entry_unarchived: 'Article marcat coma pas legit' | 469 | entry_unarchived: 'Article marcat coma pas legit' |
409 | entry_starred: 'Article apondut dins los favorits' | 470 | entry_starred: 'Article apondut dins los favorits' |
@@ -417,6 +478,10 @@ flashes: | |||
417 | failed: "L'importacion a fracassat, mercés de tornar ensajar" | 478 | failed: "L'importacion a fracassat, mercés de tornar ensajar" |
418 | failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr." | 479 | failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr." |
419 | summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents." | 480 | summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents." |
481 | summary_with_queue: "Rapòrt d'import : %queued% en espèra de tractament." | ||
482 | error: | ||
483 | redis_enabled_not_installed: "Redis es capable d'importar de manièra asincròna mai sembla que <u>podèm pas nos conectar amb el</u>. Mercés de verificar la configuracion de Redis." | ||
484 | rabbit_enabled_not_installed: "RabbitMQ es capable d'importar de manièra asincròna mai sembla que <u>podèm pas nos conectar amb el</u>. Mercés de verificar la configuracion de RabbitMQ." | ||
420 | developer: | 485 | developer: |
421 | notice: | 486 | notice: |
422 | client_created: 'Novèl client creat' | 487 | client_created: 'Novèl client creat' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml index 2db26cf1..392f9c19 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Szukaj' | 31 | search: 'Szukaj' |
32 | save_link: 'Zapisz link' | 32 | save_link: 'Zapisz link' |
33 | back_to_unread: 'Powrót do nieprzeczytanych artykułów' | 33 | back_to_unread: 'Powrót do nieprzeczytanych artykułów' |
34 | users_management: 'Zarządzanie użytkownikami' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Dodaj nowy wpis' | 36 | add_new_entry: 'Dodaj nowy wpis' |
36 | search: 'Szukaj' | 37 | search: 'Szukaj' |
@@ -45,6 +46,7 @@ footer: | |||
45 | social: 'Społeczność' | 46 | social: 'Społeczność' |
46 | powered_by: 'Kontrolowany przez' | 47 | powered_by: 'Kontrolowany przez' |
47 | about: 'O nas' | 48 | about: 'O nas' |
49 | stats: Od %user_creation% przeczytałeś %nb_archives% artykułów. To jest %per_day% dziennie! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Konfiguracja' | 52 | page_title: 'Konfiguracja' |
@@ -68,6 +70,7 @@ config: | |||
68 | 200_word: 'Czytam ~200 słów na minutę' | 70 | 200_word: 'Czytam ~200 słów na minutę' |
69 | 300_word: 'Czytam ~300 słów na minutę' | 71 | 300_word: 'Czytam ~300 słów na minutę' |
70 | 400_word: 'Czytam ~400 słów na minutę' | 72 | 400_word: 'Czytam ~400 słów na minutę' |
73 | pocket_consumer_key_label: 'Klucz klienta Pocket do importu zawartości' | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.' | 75 | description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.' |
73 | token_label: 'Token RSS' | 76 | token_label: 'Token RSS' |
@@ -93,6 +96,7 @@ config: | |||
93 | if_label: 'jeżeli' | 96 | if_label: 'jeżeli' |
94 | then_tag_as_label: 'wtedy otaguj jako' | 97 | then_tag_as_label: 'wtedy otaguj jako' |
95 | delete_rule_label: 'usuń' | 98 | delete_rule_label: 'usuń' |
99 | edit_rule_label: 'edytuj' | ||
96 | rule_label: 'Reguła' | 100 | rule_label: 'Reguła' |
97 | tags_label: 'Tagi' | 101 | tags_label: 'Tagi' |
98 | faq: | 102 | faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | or: 'Jedna reguła LUB inna' | 130 | or: 'Jedna reguła LUB inna' |
127 | and: 'Jedna reguła I inna' | 131 | and: 'Jedna reguła I inna' |
128 | matches: 'Sprawdź czy <i>temat</i> pasuje <i>szukaj</i> (duże lub małe litery).<br />Przykład: <code>tytuł zawiera "piłka nożna"</code>' | 132 | matches: 'Sprawdź czy <i>temat</i> pasuje <i>szukaj</i> (duże lub małe litery).<br />Przykład: <code>tytuł zawiera "piłka nożna"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Nazwa użytkownika' | ||
131 | password_label: 'Hasło' | ||
132 | repeat_new_password_label: 'Powtórz nowe hasło' | ||
133 | plain_password_label: 'Jawne hasło' | ||
134 | email_label: 'Adres email' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | starred: 'Wpisy oznaczone gwiazdką' | 137 | starred: 'Wpisy oznaczone gwiazdką' |
140 | archived: 'Zarchiwizowane wpisy' | 138 | archived: 'Zarchiwizowane wpisy' |
141 | filtered: 'Odfiltrowane wpisy' | 139 | filtered: 'Odfiltrowane wpisy' |
140 | filtered_tags: 'Filtrowane po tagach' | ||
141 | untagged: 'Odtaguj wpisy' | ||
142 | list: | 142 | list: |
143 | number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.' | 143 | number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.' |
144 | reading_time: 'szacunkowy czas czytania' | 144 | reading_time: 'szacunkowy czas czytania' |
145 | reading_time_minutes: 'szacunkowy czas czytania: %readingTime% min' | 145 | reading_time_minutes: 'szacunkowy czas czytania: %readingTime% min' |
146 | reading_time_less_one_minute: 'szacunkowy czas czytania: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'szacunkowy czas czytania: <small class="inferieur"><</small> 1 min' |
147 | number_of_tags: '{1} i inny tag|]1,Inf[i %count% innych tagów' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'oryginał' | 150 | original_article: 'oryginał' |
@@ -185,6 +186,8 @@ entry: | |||
185 | add_a_tag: 'Dodaj tag' | 186 | add_a_tag: 'Dodaj tag' |
186 | share_content: 'Udostępnij' | 187 | share_content: 'Udostępnij' |
187 | share_email_label: 'Adres email' | 188 | share_email_label: 'Adres email' |
189 | public_link: 'Publiczny link' | ||
190 | delete_public_link: 'Usuń publiczny link' | ||
188 | download: 'Pobierz' | 191 | download: 'Pobierz' |
189 | print: 'Drukuj' | 192 | print: 'Drukuj' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: 'Czy ten artykuł wygląda źle?' | 195 | description: 'Czy ten artykuł wygląda źle?' |
193 | edit_title: 'Edytuj tytuł' | 196 | edit_title: 'Edytuj tytuł' |
194 | original_article: 'oryginalny' | 197 | original_article: 'oryginalny' |
195 | annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %nbAnnotations% adnotacji' | 198 | annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %count% adnotacji' |
196 | created_at: 'Czas stworzenia' | 199 | created_at: 'Czas stworzenia' |
197 | new: | 200 | new: |
198 | page_title: 'Zapisz nowy wpis' | 201 | page_title: 'Zapisz nowy wpis' |
@@ -205,13 +208,15 @@ entry: | |||
205 | url_label: 'Adres URL' | 208 | url_label: 'Adres URL' |
206 | is_public_label: 'Publiczny' | 209 | is_public_label: 'Publiczny' |
207 | save_label: 'Zapisz' | 210 | save_label: 'Zapisz' |
211 | public: | ||
212 | shared_by_wallabag: "Ten artykuł został udostępniony przez <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'O nas' | 215 | page_title: 'O nas' |
211 | top_menu: | 216 | top_menu: |
212 | who_behind_wallabag: 'Kto stoi za wallabag' | 217 | who_behind_wallabag: 'Kto stoi za wallabag' |
213 | getting_help: 'Pomoc' | 218 | getting_help: 'Pomoc' |
214 | helping: 'Pomóż wallabag' | 219 | helping: 'Pomóż wallabagowi' |
215 | contributors: 'Osoby, które pomogły przy projekcie' | 220 | contributors: 'Osoby, które pomogły przy projekcie' |
216 | third_party: 'Biblioteki Third-party' | 221 | third_party: 'Biblioteki Third-party' |
217 | who_behind_wallabag: | 222 | who_behind_wallabag: |
@@ -260,12 +265,14 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | page_title: 'Szybki start' | 267 | page_title: 'Szybki start' |
268 | more: 'Więcej…' | ||
263 | intro: | 269 | intro: |
264 | title: 'Witaj w wallabag!' | 270 | title: 'Witaj w wallabag!' |
265 | paragraph_1: "Będziemy ci towarzyszyli w Twojej poznaniu wallabag i pokażemy możliwości, które mogą cię zainteresować." | 271 | paragraph_1: "Będziemy ci towarzyszyli w Twojej poznaniu wallabag i pokażemy możliwości, które mogą cię zainteresować." |
266 | paragraph_2: 'Śledź nas!' | 272 | paragraph_2: 'Śledź nas!' |
267 | configure: | 273 | configure: |
268 | title: 'Konfiguruj aplikację' | 274 | title: 'Konfiguruj aplikację' |
275 | description: 'W celu dopasowania aplikacji do swoich upodobań, zobacz konfigurację aplikacji' | ||
269 | language: 'Zmień język i wygląd' | 276 | language: 'Zmień język i wygląd' |
270 | rss: 'Włącz kanały RSS' | 277 | rss: 'Włącz kanały RSS' |
271 | tagging_rules: 'Napisz reguły pozwalające na automatyczne otagowanie twoich artykułów' | 278 | tagging_rules: 'Napisz reguły pozwalające na automatyczne otagowanie twoich artykułów' |
@@ -273,12 +280,13 @@ quickstart: | |||
273 | title: 'Administracja' | 280 | title: 'Administracja' |
274 | description: 'Jako administrator wallabag, możesz:' | 281 | description: 'Jako administrator wallabag, możesz:' |
275 | new_user: 'Tworzyć nowego użytkownika' | 282 | new_user: 'Tworzyć nowego użytkownika' |
276 | analytics: 'Configure analytics' | 283 | analytics: 'Konfigurować analityki' |
277 | sharing: 'Włączyć pewne parametry dotyczące udostępniania artykułów' | 284 | sharing: 'Włączyć pewne parametry dotyczące udostępniania artykułów' |
278 | export: 'Skonfigurować eksport' | 285 | export: 'Skonfigurować eksport' |
279 | import: 'Skonfigurować import' | 286 | import: 'Skonfigurować import' |
280 | first_steps: | 287 | first_steps: |
281 | title: 'Pierwsze kroki' | 288 | title: 'Pierwsze kroki' |
289 | description: "Teraz wallabag jest poprawnie skonfigurowany, więc czas zarchiwizować Internet. Klinknij w prawym górnym rogu na znak +, aby dodać link" | ||
282 | new_article: 'Zapisz swój pierwszy artukuł' | 290 | new_article: 'Zapisz swój pierwszy artukuł' |
283 | unread_articles: 'I sklasyfikuj go!' | 291 | unread_articles: 'I sklasyfikuj go!' |
284 | migrate: | 292 | migrate: |
@@ -287,11 +295,16 @@ quickstart: | |||
287 | pocket: 'Migruj z Pocket' | 295 | pocket: 'Migruj z Pocket' |
288 | wallabag_v1: 'Migruj z wallabag v1' | 296 | wallabag_v1: 'Migruj z wallabag v1' |
289 | wallabag_v2: 'Migruj z wallabag v2' | 297 | wallabag_v2: 'Migruj z wallabag v2' |
298 | readability: 'Migruj z Readability' | ||
299 | instapaper: 'Migruj z Instapaper' | ||
290 | developer: | 300 | developer: |
291 | title: 'Deweloperzy' | 301 | title: 'Deweloperzy' |
302 | description: 'Myślimy również o deweloperach: Docker, API, tłumaczeniach, etc.' | ||
292 | create_application: 'Stwórz swoją aplikację' | 303 | create_application: 'Stwórz swoją aplikację' |
304 | use_docker: 'Użyj Dockera aby zainstalować wallabag' | ||
293 | docs: | 305 | docs: |
294 | title: 'Pełna Dokumentacja' | 306 | title: 'Pełna Dokumentacja' |
307 | description: "Wallabag powiada wiele funkcji. Nie wahaj się przeczytać instrukcji, aby je poznać i nauczyć się jak ich używać." | ||
295 | annotate: 'Dadaj adnotację do swojego artykułu' | 308 | annotate: 'Dadaj adnotację do swojego artykułu' |
296 | export: 'Konwertuj swoje artykuły do ePUB lub PDF' | 309 | export: 'Konwertuj swoje artykuły do ePUB lub PDF' |
297 | search_filters: 'Zabacz jak możesz znaleźć artykuł dzięku użyciu silnika wyszukiwarki i filtrów' | 310 | search_filters: 'Zabacz jak możesz znaleźć artykuł dzięku użyciu silnika wyszukiwarki i filtrów' |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Tagi' | 321 | page_title: 'Tagi' |
309 | list: | 322 | list: |
310 | number_on_the_page: '{0} Nie ma tagów.|{1} Jest jeden tag.|]1,Inf[ Są %count% tagi.' | 323 | number_on_the_page: '{0} Nie ma tagów.|{1} Jest jeden tag.|]1,Inf[ Są %count% tagi.' |
324 | see_untagged_entries: 'Zobacz nieotagowane wpisy' | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | page_title: 'Import' | 327 | page_title: 'Import' |
@@ -335,6 +349,24 @@ import: | |||
335 | wallabag_v2: | 349 | wallabag_v2: |
336 | page_title: 'Import > Wallabag v2' | 350 | page_title: 'Import > Wallabag v2' |
337 | description: 'Ten importer, zaimportuje wszystkie twoje artykułu z wallabag v2. Idź do wszystkich artykułów, a następnie na panelu exportu kliknij na "JSON". Otrzymasz plik "All articles.json".' | 351 | description: 'Ten importer, zaimportuje wszystkie twoje artykułu z wallabag v2. Idź do wszystkich artykułów, a następnie na panelu exportu kliknij na "JSON". Otrzymasz plik "All articles.json".' |
352 | readability: | ||
353 | page_title: 'Import > Readability' | ||
354 | description: 'Ten importer, zaimportuje wszystkie twoje artykuły z Readability. Na stronie narzędzi (https://www.readability.com/tools/), kliknij na "Export your data" w sekcji "Data Export". Otrzymach email z plikiem JSON (plik nie będzie zawierał rozszerzenia .json).' | ||
355 | how_to: 'Wybierz swój plik eksportu z Readability i kliknij poniższy przycisk, aby go załadować.' | ||
356 | worker: | ||
357 | enabled: "Import jest wykonywany asynchronicznie. Od momentu rozpoczęcia importu, zewnętrzna usługa może zajmować się na raz tylko jednym zadaniem. Bieżącą usługą jest:" | ||
358 | firefox: | ||
359 | page_title: 'Import > Firefox' | ||
360 | description: "Ten importer zaimportuje wszystkie twoje zakładki z Firefoksa. Idź do twoich zakładek (Ctrl+Shift+O), następnie w \"Import i kopie zapasowe\", wybierz \"Utwórz kopię zapasową...\". Uzyskasz plik .json." | ||
361 | how_to: "Wybierz swój plik z zakładkami i naciśnij poniższy przycisk, aby je zaimportować. Może to zająć dłuższą chwilę, zanim wszystkie artykuły zostaną przeniesione." | ||
362 | chrome: | ||
363 | page_title: 'Import > Chrome' | ||
364 | description: "Ten importer zaimportuje wszystkie twoje zakładki z Chrome. Lokalizacja pliku jest zależna od twojego systemy operacyjnego : <ul><li>Pod Linuksem, idź do katalogu <code>~/.config/chromium/Default/</code></li><li>Pod Windowsem, powinien się on znajdować w <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>Pod OS X, powinien się on znajdować w <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Po odnalezieniu pliku, skopiuj go w łatwo dostęne miejsce.<em><br>Jeżeli używasz Chromium zamiast Chrome, będziesz musiał odpowiednio poprawić ścieżkę dostępu.</em></p>" | ||
365 | how_to: "Wybierz swój plik z zakładkami i naciśnij poniższy przycisk, aby je zaimportować. Może to zająć dłuższą chwilę, zanim wszystkie artykuły zostaną przeniesione." | ||
366 | instapaper: | ||
367 | page_title: 'Import > Instapaper' | ||
368 | description: 'Ten importer, zaimportuje wszystkie twoje artykuły z Instapaper. W ustawieniach (https://www.instapaper.com/user), kliknij na "Download .CSV file" w sekcji "Export". Otrzymasz plik CSV.' | ||
369 | how_to: 'Wybierz swój plik eksportu z Instapaper i kliknij poniższy przycisk, aby go załadować.' | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | page_title: 'Deweloper' | 372 | page_title: 'Deweloper' |
@@ -342,38 +374,40 @@ developer: | |||
342 | documentation: 'Dokumentacja' | 374 | documentation: 'Dokumentacja' |
343 | how_to_first_app: 'Jak stworzyć moją pierwszą aplikację' | 375 | how_to_first_app: 'Jak stworzyć moją pierwszą aplikację' |
344 | full_documentation: 'Pokaż pełne API' | 376 | full_documentation: 'Pokaż pełne API' |
345 | # list_methods: 'List API methods' | 377 | list_methods: 'Lista metod API' |
346 | clients: | 378 | clients: |
347 | title: 'Klienci' | 379 | title: 'Klienci' |
348 | create_new: 'Utwórz nowego klienta' | 380 | create_new: 'Utwórz nowego klienta' |
349 | existing_clients: | 381 | existing_clients: |
350 | title: 'Istniejący klienci' | 382 | title: 'Istniejący klienci' |
351 | field_id: 'Client ID' | 383 | field_id: 'ID klienta' |
352 | field_secret: 'Client secret' | 384 | field_secret: 'Client secret' |
353 | field_uris: 'Przekieruj URIs' | 385 | field_uris: 'Przekieruj URIs' |
354 | field_grant_types: 'Przyznaj pozwolenie' | 386 | field_grant_types: 'Przyznaj pozwolenie' |
355 | no_client: 'Nie ma jeszcze klienta.' | 387 | no_client: 'Nie ma jeszcze klienta.' |
356 | remove: | 388 | remove: |
357 | warn_message_1: 'Masz możliwość usunięcia tego klienta. Ta akcja jest NIEODWRACALNA !' | 389 | warn_message_1: 'Masz możliwość usunięcia tego klienta. Ta akcja jest NIEODWRACALNA !' |
358 | warn_message_2: "Jeżeli go usuniesz, aplikacje skonfigurowane z tym klientem nię będa w stanie autoryzować twojego wallabag." | 390 | warn_message_2: "Jeżeli go usuniesz, aplikacje skonfigurowane z tym klientem nię będa w stanie autoryzować twojego wallabag." |
359 | action: 'Usuń tego klienta' | 391 | action: 'Usuń tego klienta' |
360 | client: | 392 | client: |
361 | page_title: 'Deweloper > Nowy klient' | 393 | page_title: 'Deweloper > Nowy klient' |
362 | page_description: 'Tworzysz nowego klienta. Wypełnij poniższe pole w celu przekierowania URI twojej aplikacji.' | 394 | page_description: 'Tworzysz nowego klienta. Wypełnij poniższe pole w celu przekierowania URI twojej aplikacji.' |
363 | form: | 395 | form: |
364 | redirect_uris_label: 'Przekieruj adresy URI' | 396 | name_label: 'Nazwa klienta' |
365 | save_label: 'Stwórz nowego klienta' | 397 | redirect_uris_label: 'Przekieruj adresy URI' |
366 | action_back: 'Cofnij' | 398 | save_label: 'Stwórz nowego klienta' |
399 | action_back: 'Cofnij' | ||
367 | client_parameter: | 400 | client_parameter: |
368 | page_title: 'Deweloper > Parametry klienta' | 401 | page_title: 'Deweloper > Parametry klienta' |
369 | page_description: 'Tutaj znajdują się parametry klienta.' | 402 | page_description: 'Tutaj znajdują się parametry klienta.' |
370 | field_id: 'Client ID' | 403 | field_name: 'Nazwa klienta' |
371 | field_secret: 'Client secret' | 404 | field_id: 'Client ID' |
372 | back: 'Cofnij' | 405 | field_secret: 'Client secret' |
373 | read_howto: 'Przeczytaj jak "Stworzyć moją pierwszą aplikację"' | 406 | back: 'Cofnij' |
407 | read_howto: 'Przeczytaj jak "Stworzyć moją pierwszą aplikację"' | ||
374 | howto: | 408 | howto: |
375 | page_title: 'Deweloper > Jak stworzyć moją pierwszą aplikację' | 409 | page_title: 'Deweloper > Jak stworzyć moją pierwszą aplikację' |
376 | description: | 410 | description: |
377 | paragraph_1: 'Następujące komendy korzystają <a href="https://github.com/jkbrzt/httpie">Biblioteka HTTPie</a>. Upewnij się, czy zainstalowałeś ją w swoim systemie zanim z niej skorzystasz' | 411 | paragraph_1: 'Następujące komendy korzystają <a href="https://github.com/jkbrzt/httpie">Biblioteka HTTPie</a>. Upewnij się, czy zainstalowałeś ją w swoim systemie zanim z niej skorzystasz' |
378 | paragraph_2: 'Potrzebujesz tokena w celu nawiązania komunikacji między swoją aplikacją a API wallabag.' | 412 | paragraph_2: 'Potrzebujesz tokena w celu nawiązania komunikacji między swoją aplikacją a API wallabag.' |
379 | paragraph_3: 'W celu stworzenia tokena musisz <a href="%link%">stwórz nowego klienta</a>.' | 413 | paragraph_3: 'W celu stworzenia tokena musisz <a href="%link%">stwórz nowego klienta</a>.' |
@@ -382,7 +416,34 @@ developer: | |||
382 | paragraph_6: 'access_token jest użyteczny do wywołania API endpoint. Na przykład:' | 416 | paragraph_6: 'access_token jest użyteczny do wywołania API endpoint. Na przykład:' |
383 | paragraph_7: 'To wywołanie zwróci wszystkie twoje wpisy.' | 417 | paragraph_7: 'To wywołanie zwróci wszystkie twoje wpisy.' |
384 | paragraph_8: 'Jeżeli chcesz wyświetlić wszystkie punkty końcowe API, zobacz <a href="%link%">Dokumentacja naszego API</a>.' | 418 | paragraph_8: 'Jeżeli chcesz wyświetlić wszystkie punkty końcowe API, zobacz <a href="%link%">Dokumentacja naszego API</a>.' |
385 | back: 'Cofnij' | 419 | back: 'Cofnij' |
420 | |||
421 | user: | ||
422 | page_title: Zarządzanie użytkownikami | ||
423 | new_user: Stwórz nowego użytkownika | ||
424 | edit_user: Edytuj istniejącego użytkownika | ||
425 | description: "Tutaj możesz zarządzać wszystkimi użytkownikami (tworzyć, edytować i usuwać)" | ||
426 | list: | ||
427 | actions: Akcje | ||
428 | edit_action: Edytuj | ||
429 | yes: Tak | ||
430 | no: Nie | ||
431 | create_new_one: Stwórz nowego użytkownika | ||
432 | form: | ||
433 | username_label: 'Nazwa użytkownika' | ||
434 | name_label: 'Nazwa' | ||
435 | password_label: 'Hasło' | ||
436 | repeat_new_password_label: 'Powtórz nowe hasło' | ||
437 | plain_password_label: 'Jawne hasło' | ||
438 | email_label: 'Adres email' | ||
439 | enabled_label: 'Włączony' | ||
440 | locked_label: 'Zablokowany' | ||
441 | last_login_label: 'Ostatnie logowanie' | ||
442 | twofactor_label: Autoryzacja dwuetapowa | ||
443 | save: Zapisz | ||
444 | delete: Usuń | ||
445 | delete_confirm: Jesteś pewien? | ||
446 | back_to_list: Powrót do listy | ||
386 | 447 | ||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
@@ -400,10 +461,10 @@ flashes: | |||
400 | notice: | 461 | notice: |
401 | entry_already_saved: 'Wpis już został dodany %date%' | 462 | entry_already_saved: 'Wpis już został dodany %date%' |
402 | entry_saved: 'Wpis zapisany' | 463 | entry_saved: 'Wpis zapisany' |
403 | # entry_saved_failed: 'Failed to save entry' | 464 | entry_saved_failed: 'Wpis zapisany, ale wystąpił bład pobierania treści' |
404 | entry_updated: 'Wpis zaktualizowany' | 465 | entry_updated: 'Wpis zaktualizowany' |
405 | entry_reloaded: 'Wpis ponownie załadowany' | 466 | entry_reloaded: 'Wpis ponownie załadowany' |
406 | entry_reload_failed: 'Błąd ponownego załadowania' | 467 | entry_reloaded_failed: 'Wpis ponownie załadowany, ale wystąpił bład pobierania treści' |
407 | entry_archived: 'Wpis dodany do archiwum' | 468 | entry_archived: 'Wpis dodany do archiwum' |
408 | entry_unarchived: 'Wpis usunięty z archiwum' | 469 | entry_unarchived: 'Wpis usunięty z archiwum' |
409 | entry_starred: 'Wpis oznaczony gwiazdką' | 470 | entry_starred: 'Wpis oznaczony gwiazdką' |
@@ -417,6 +478,10 @@ flashes: | |||
417 | failed: 'Nieudany import, prosimy spróbować ponownie.' | 478 | failed: 'Nieudany import, prosimy spróbować ponownie.' |
418 | failed_on_file: 'Błąd podczas ptrzetwarzania pliku. Sprawdż swój importowany plik.' | 479 | failed_on_file: 'Błąd podczas ptrzetwarzania pliku. Sprawdż swój importowany plik.' |
419 | summary: 'Podsumowanie importu: %imported% zaimportowane, %skipped% już zapisane.' | 480 | summary: 'Podsumowanie importu: %imported% zaimportowane, %skipped% już zapisane.' |
481 | summary_with_queue: 'Podsumowanie importu: %queued% zakolejkowane.' | ||
482 | error: | ||
483 | redis_enabled_not_installed: 'Redis jest włączony dla obsługi importu asynchronicznego, ale <u>nie możemy się z nim połączyć</u>. Sprawdź konfigurację Redisa.' | ||
484 | rabbit_enabled_not_installed: 'RabbitMQ jest włączony dla obsługi importu asynchronicznego, ale <u>nie możemy się z nim połączyć</u>. Sprawdź konfigurację RabbitMQ.' | ||
420 | developer: | 485 | developer: |
421 | notice: | 486 | notice: |
422 | client_created: 'Nowy klient utworzony.' | 487 | client_created: 'Nowy klient utworzony.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml index d8f09bc9..152d5020 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Căutare' | 31 | search: 'Căutare' |
32 | # save_link: 'Save a link' | 32 | # save_link: 'Save a link' |
33 | back_to_unread: 'Înapoi la articolele necitite' | 33 | back_to_unread: 'Înapoi la articolele necitite' |
34 | # users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Introdu un nou articol' | 36 | add_new_entry: 'Introdu un nou articol' |
36 | search: 'Căutare' | 37 | search: 'Căutare' |
@@ -45,6 +46,7 @@ footer: | |||
45 | # social: 'Social' | 46 | # social: 'Social' |
46 | # powered_by: 'powered by' | 47 | # powered_by: 'powered by' |
47 | about: 'Despre' | 48 | about: 'Despre' |
49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Configurație' | 52 | page_title: 'Configurație' |
@@ -68,6 +70,7 @@ config: | |||
68 | # 200_word: 'I read ~200 words per minute' | 70 | # 200_word: 'I read ~200 words per minute' |
69 | # 300_word: 'I read ~300 words per minute' | 71 | # 300_word: 'I read ~300 words per minute' |
70 | # 400_word: 'I read ~400 words per minute' | 72 | # 400_word: 'I read ~400 words per minute' |
73 | pocket_consumer_key_label: Cheie consumator pentru importarea contentului din Pocket | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'Feed-urile RSS oferite de wallabag îți permit să-ți citești articolele salvate în reader-ul tău preferat RSS.' | 75 | description: 'Feed-urile RSS oferite de wallabag îți permit să-ți citești articolele salvate în reader-ul tău preferat RSS.' |
73 | token_label: 'RSS-Token' | 76 | token_label: 'RSS-Token' |
@@ -93,6 +96,7 @@ config: | |||
93 | # if_label: 'if' | 96 | # if_label: 'if' |
94 | # then_tag_as_label: 'then tag as' | 97 | # then_tag_as_label: 'then tag as' |
95 | # delete_rule_label: 'delete' | 98 | # delete_rule_label: 'delete' |
99 | # edit_rule_label: 'edit' | ||
96 | # rule_label: 'Rule' | 100 | # rule_label: 'Rule' |
97 | # tags_label: 'Tags' | 101 | # tags_label: 'Tags' |
98 | # faq: | 102 | # faq: |
@@ -126,12 +130,6 @@ config: | |||
126 | # or: 'One rule OR another' | 130 | # or: 'One rule OR another' |
127 | # and: 'One rule AND another' | 131 | # and: 'One rule AND another' |
128 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | 132 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Nume de utilizator' | ||
131 | password_label: 'Parolă' | ||
132 | repeat_new_password_label: 'Repeat new password' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'E-mail' | ||
135 | 133 | ||
136 | entry: | 134 | entry: |
137 | page_titles: | 135 | page_titles: |
@@ -139,11 +137,14 @@ entry: | |||
139 | # starred: 'Starred entries' | 137 | # starred: 'Starred entries' |
140 | # archived: 'Archived entries' | 138 | # archived: 'Archived entries' |
141 | # filtered: 'Filtered entries' | 139 | # filtered: 'Filtered entries' |
140 | # filtered_tags: 'Filtered by tags' | ||
141 | # untagged: 'Untagged entries' | ||
142 | list: | 142 | list: |
143 | # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' | 143 | # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' |
144 | reading_time: 'timp estimat de citire' | 144 | reading_time: 'timp estimat de citire' |
145 | reading_time_minutes: 'timp estimat de citire: %readingTime% min' | 145 | reading_time_minutes: 'timp estimat de citire: %readingTime% min' |
146 | reading_time_less_one_minute: 'timp estimat de citire: <small class="inferieur"><</small> 1 min' | 146 | reading_time_less_one_minute: 'timp estimat de citire: <small class="inferieur"><</small> 1 min' |
147 | # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 148 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 149 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'original' | 150 | original_article: 'original' |
@@ -185,6 +186,8 @@ entry: | |||
185 | add_a_tag: 'Adaugă un tag' | 186 | add_a_tag: 'Adaugă un tag' |
186 | share_content: 'Dă mai departe' | 187 | share_content: 'Dă mai departe' |
187 | share_email_label: 'E-mail' | 188 | share_email_label: 'E-mail' |
189 | # public_link: 'public link' | ||
190 | # delete_public_link: 'delete public link' | ||
188 | download: 'Descarcă' | 191 | download: 'Descarcă' |
189 | # print: 'Print' | 192 | # print: 'Print' |
190 | problem: | 193 | problem: |
@@ -192,7 +195,7 @@ entry: | |||
192 | description: 'Îți pare ciudat articolul?' | 195 | description: 'Îți pare ciudat articolul?' |
193 | edit_title: 'Editează titlul' | 196 | edit_title: 'Editează titlul' |
194 | original_article: 'original' | 197 | original_article: 'original' |
195 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' | 198 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' |
196 | created_at: 'Data creării' | 199 | created_at: 'Data creării' |
197 | new: | 200 | new: |
198 | page_title: 'Salvează un nou articol' | 201 | page_title: 'Salvează un nou articol' |
@@ -205,6 +208,8 @@ entry: | |||
205 | url_label: 'Url' | 208 | url_label: 'Url' |
206 | # is_public_label: 'Public' | 209 | # is_public_label: 'Public' |
207 | save_label: 'Salvează' | 210 | save_label: 'Salvează' |
211 | public: | ||
212 | # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 213 | ||
209 | about: | 214 | about: |
210 | page_title: 'Despre' | 215 | page_title: 'Despre' |
@@ -260,12 +265,14 @@ howto: | |||
260 | 265 | ||
261 | quickstart: | 266 | quickstart: |
262 | # page_title: 'Quickstart' | 267 | # page_title: 'Quickstart' |
268 | # more: 'More…' | ||
263 | # intro: | 269 | # intro: |
264 | # title: 'Welcome to wallabag!' | 270 | # title: 'Welcome to wallabag!' |
265 | # paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you." | 271 | # paragraph_1: "We'll accompany you to visit wallabag and show you some features which can interest you." |
266 | # paragraph_2: 'Follow us!' | 272 | # paragraph_2: 'Follow us!' |
267 | # configure: | 273 | # configure: |
268 | # title: 'Configure the application' | 274 | # title: 'Configure the application' |
275 | # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | ||
269 | # language: 'Change language and design' | 276 | # language: 'Change language and design' |
270 | # rss: 'Enable RSS feeds' | 277 | # rss: 'Enable RSS feeds' |
271 | # tagging_rules: 'Write rules to automatically tag your articles' | 278 | # tagging_rules: 'Write rules to automatically tag your articles' |
@@ -279,6 +286,7 @@ quickstart: | |||
279 | # import: 'Configure import' | 286 | # import: 'Configure import' |
280 | # first_steps: | 287 | # first_steps: |
281 | # title: 'First steps' | 288 | # title: 'First steps' |
289 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
282 | # new_article: 'Save your first article' | 290 | # new_article: 'Save your first article' |
283 | # unread_articles: 'And classify it!' | 291 | # unread_articles: 'And classify it!' |
284 | # migrate: | 292 | # migrate: |
@@ -287,11 +295,16 @@ quickstart: | |||
287 | # pocket: 'Migrate from Pocket' | 295 | # pocket: 'Migrate from Pocket' |
288 | # wallabag_v1: 'Migrate from wallabag v1' | 296 | # wallabag_v1: 'Migrate from wallabag v1' |
289 | # wallabag_v2: 'Migrate from wallabag v2' | 297 | # wallabag_v2: 'Migrate from wallabag v2' |
298 | # readability: 'Migrate from Readability' | ||
299 | # instapaper: 'Migrate from Instapaper' | ||
290 | # developer: | 300 | # developer: |
291 | # title: 'Developers' | 301 | # title: 'Developers' |
302 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
292 | # create_application: 'Create your third application' | 303 | # create_application: 'Create your third application' |
304 | # use_docker: 'Use Docker to install wallabag' | ||
293 | # docs: | 305 | # docs: |
294 | # title: 'Full documentation' | 306 | # title: 'Full documentation' |
307 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
295 | # annotate: 'Annotate your article' | 308 | # annotate: 'Annotate your article' |
296 | # export: 'Convert your articles into ePUB or PDF' | 309 | # export: 'Convert your articles into ePUB or PDF' |
297 | # search_filters: 'See how you can look for an article by using search engine and filters' | 310 | # search_filters: 'See how you can look for an article by using search engine and filters' |
@@ -308,6 +321,7 @@ tag: | |||
308 | page_title: 'Tag-uri' | 321 | page_title: 'Tag-uri' |
309 | list: | 322 | list: |
310 | # number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' | 323 | # number_on_the_page: '{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.' |
324 | # see_untagged_entries: 'See untagged entries' | ||
311 | 325 | ||
312 | import: | 326 | import: |
313 | # page_title: 'Import' | 327 | # page_title: 'Import' |
@@ -335,6 +349,24 @@ import: | |||
335 | # wallabag_v2: | 349 | # wallabag_v2: |
336 | # page_title: 'Import > Wallabag v2' | 350 | # page_title: 'Import > Wallabag v2' |
337 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' | 351 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' |
352 | # readability: | ||
353 | # page_title: 'Import > Readability' | ||
354 | # description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | ||
355 | # how_to: 'Please select your Readability export and click on the below button to upload and import it.' | ||
356 | worker: | ||
357 | # enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | ||
358 | # firefox: | ||
359 | # page_title: 'Import > Firefox' | ||
360 | # description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
361 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
362 | # chrome: | ||
363 | # page_title: 'Import > Chrome' | ||
364 | # description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | ||
365 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
366 | # instapaper: | ||
367 | # page_title: 'Import > Instapaper' | ||
368 | # description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | ||
369 | # how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | ||
338 | 370 | ||
339 | developer: | 371 | developer: |
340 | # page_title: 'Developer' | 372 | # page_title: 'Developer' |
@@ -361,12 +393,14 @@ developer: | |||
361 | # page_title: 'Developer > New client' | 393 | # page_title: 'Developer > New client' |
362 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' | 394 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' |
363 | # form: | 395 | # form: |
396 | # name_label: 'Name of the client' | ||
364 | # redirect_uris_label: 'Redirect URIs' | 397 | # redirect_uris_label: 'Redirect URIs' |
365 | # save_label: 'Create a new client' | 398 | # save_label: 'Create a new client' |
366 | # action_back: 'Back' | 399 | # action_back: 'Back' |
367 | # client_parameter: | 400 | # client_parameter: |
368 | # page_title: 'Developer > Client parameters' | 401 | # page_title: 'Developer > Client parameters' |
369 | # page_description: 'Here are your client parameters.' | 402 | # page_description: 'Here are your client parameters.' |
403 | # field_name: 'Client name' | ||
370 | # field_id: 'Client ID' | 404 | # field_id: 'Client ID' |
371 | # field_secret: 'Client secret' | 405 | # field_secret: 'Client secret' |
372 | # back: 'Back' | 406 | # back: 'Back' |
@@ -384,6 +418,33 @@ developer: | |||
384 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' | 418 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' |
385 | # back: 'Back' | 419 | # back: 'Back' |
386 | 420 | ||
421 | user: | ||
422 | # page_title: Users management | ||
423 | # new_user: Create a new user | ||
424 | # edit_user: Edit an existing user | ||
425 | # description: "Here you can manage all users (create, edit and delete)" | ||
426 | # list: | ||
427 | # actions: Actions | ||
428 | # edit_action: Edit | ||
429 | # yes: Yes | ||
430 | # no: No | ||
431 | # create_new_one: Create a new user | ||
432 | form: | ||
433 | username_label: 'Nume de utilizator' | ||
434 | # name_label: 'Name' | ||
435 | password_label: 'Parolă' | ||
436 | repeat_new_password_label: 'Repeat new password' | ||
437 | plain_password_label: '????' | ||
438 | email_label: 'E-mail' | ||
439 | # enabled_label: 'Enabled' | ||
440 | # locked_label: 'Locked' | ||
441 | # last_login_label: 'Last login' | ||
442 | # twofactor_label: Two factor authentication | ||
443 | # save: Save | ||
444 | # delete: Delete | ||
445 | # delete_confirm: Are you sure? | ||
446 | # back_to_list: Back to list | ||
447 | |||
387 | flashes: | 448 | flashes: |
388 | config: | 449 | config: |
389 | notice: | 450 | notice: |
@@ -400,10 +461,10 @@ flashes: | |||
400 | notice: | 461 | notice: |
401 | # entry_already_saved: 'Entry already saved on %date%' | 462 | # entry_already_saved: 'Entry already saved on %date%' |
402 | # entry_saved: 'Entry saved' | 463 | # entry_saved: 'Entry saved' |
403 | # entry_saved_failed: 'Failed to save entry' | 464 | # entry_saved_failed: 'Entry saved but fetching content failed' |
404 | # entry_updated: 'Entry updated' | 465 | # entry_updated: 'Entry updated' |
405 | # entry_reloaded: 'Entry reloaded' | 466 | # entry_reloaded: 'Entry reloaded' |
406 | # entry_reload_failed: 'Failed to reload entry' | 467 | # entry_reloaded_failed: 'Entry reloaded but fetching content failed' |
407 | entry_archived: 'Articol arhivat' | 468 | entry_archived: 'Articol arhivat' |
408 | entry_unarchived: 'Articol dezarhivat' | 469 | entry_unarchived: 'Articol dezarhivat' |
409 | entry_starred: 'Articol adăugat la favorite' | 470 | entry_starred: 'Articol adăugat la favorite' |
@@ -417,6 +478,10 @@ flashes: | |||
417 | # failed: 'Import failed, please try again.' | 478 | # failed: 'Import failed, please try again.' |
418 | # failed_on_file: 'Error while processing import. Please verify your import file.' | 479 | # failed_on_file: 'Error while processing import. Please verify your import file.' |
419 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' | 480 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' |
481 | # summary_with_queue: 'Import summary: %queued% queued.' | ||
482 | error: | ||
483 | # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | ||
484 | # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | ||
420 | developer: | 485 | developer: |
421 | notice: | 486 | notice: |
422 | # client_created: 'New client created.' | 487 | # client_created: 'New client created.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml index 074d13e2..a2eca59b 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml | |||
@@ -31,6 +31,7 @@ menu: | |||
31 | search: 'Ara' | 31 | search: 'Ara' |
32 | # save_link: 'Save a link' | 32 | # save_link: 'Save a link' |
33 | back_to_unread: 'Okunmayan makalelere geri dön' | 33 | back_to_unread: 'Okunmayan makalelere geri dön' |
34 | # users_management: 'Users management' | ||
34 | top: | 35 | top: |
35 | add_new_entry: 'Yeni bir makale ekle' | 36 | add_new_entry: 'Yeni bir makale ekle' |
36 | search: 'Ara' | 37 | search: 'Ara' |
@@ -45,6 +46,7 @@ footer: | |||
45 | social: 'Sosyal' | 46 | social: 'Sosyal' |
46 | powered_by: 'powered by' | 47 | powered_by: 'powered by' |
47 | about: 'Hakkımızda' | 48 | about: 'Hakkımızda' |
49 | # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! | ||
48 | 50 | ||
49 | config: | 51 | config: |
50 | page_title: 'Yapılandırma' | 52 | page_title: 'Yapılandırma' |
@@ -68,6 +70,7 @@ config: | |||
68 | # 200_word: 'I read ~200 words per minute' | 70 | # 200_word: 'I read ~200 words per minute' |
69 | # 300_word: 'I read ~300 words per minute' | 71 | # 300_word: 'I read ~300 words per minute' |
70 | # 400_word: 'I read ~400 words per minute' | 72 | # 400_word: 'I read ~400 words per minute' |
73 | # pocket_consumer_key_label: Consumer key for Pocket to import contents | ||
71 | form_rss: | 74 | form_rss: |
72 | description: 'wallabag RSS akışı kaydetmiş olduğunuz makalelerini favori RSS okuyucunuzda görüntülemenizi sağlar. Bunu yapabilmek için öncelikle belirteç (token) oluşturmalısınız.' | 75 | description: 'wallabag RSS akışı kaydetmiş olduğunuz makalelerini favori RSS okuyucunuzda görüntülemenizi sağlar. Bunu yapabilmek için öncelikle belirteç (token) oluşturmalısınız.' |
73 | token_label: 'RSS belirteci (token)' | 76 | token_label: 'RSS belirteci (token)' |
@@ -126,12 +129,6 @@ config: | |||
126 | or: 'Bir kural veya birbaşkası' | 129 | or: 'Bir kural veya birbaşkası' |
127 | and: 'Bir kural ve diğeri' | 130 | and: 'Bir kural ve diğeri' |
128 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' | 131 | # matches: 'Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches "football"</code>' |
129 | form_new_user: | ||
130 | username_label: 'Kullanıcı adı' | ||
131 | password_label: 'Şifre' | ||
132 | repeat_new_password_label: 'Yeni şifrenin tekrarı' | ||
133 | plain_password_label: '????' | ||
134 | email_label: 'E-posta' | ||
135 | 132 | ||
136 | entry: | 133 | entry: |
137 | page_titles: | 134 | page_titles: |
@@ -139,11 +136,14 @@ entry: | |||
139 | # starred: 'Starred entries' | 136 | # starred: 'Starred entries' |
140 | # archived: 'Archived entries' | 137 | # archived: 'Archived entries' |
141 | # filtered: 'Filtered entries' | 138 | # filtered: 'Filtered entries' |
139 | # filtered_tags: 'Filtered by tags' | ||
140 | # untagged: 'Untagged entries' | ||
142 | list: | 141 | list: |
143 | number_on_the_page: '{0} Herhangi bir makale yok.|{1} Burada bir adet makale var.|]1,Inf[ Burada %count% adet makale var.' | 142 | number_on_the_page: '{0} Herhangi bir makale yok.|{1} Burada bir adet makale var.|]1,Inf[ Burada %count% adet makale var.' |
144 | reading_time: 'tahmini okuma süresi' | 143 | reading_time: 'tahmini okuma süresi' |
145 | reading_time_minutes: 'tahmini okuma süresi: %readingTime% min' | 144 | reading_time_minutes: 'tahmini okuma süresi: %readingTime% min' |
146 | reading_time_less_one_minute: 'tahmini okuma süresi: <small class="inferieur"><</small> 1 min' | 145 | reading_time_less_one_minute: 'tahmini okuma süresi: <small class="inferieur"><</small> 1 min' |
146 | # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' | ||
147 | reading_time_minutes_short: '%readingTime% min' | 147 | reading_time_minutes_short: '%readingTime% min' |
148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' | 148 | reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min' |
149 | original_article: 'orijinal' | 149 | original_article: 'orijinal' |
@@ -185,6 +185,8 @@ entry: | |||
185 | add_a_tag: 'Bir etiket ekle' | 185 | add_a_tag: 'Bir etiket ekle' |
186 | share_content: 'Paylaş' | 186 | share_content: 'Paylaş' |
187 | share_email_label: 'E-posta' | 187 | share_email_label: 'E-posta' |
188 | # public_link: 'public link' | ||
189 | # delete_public_link: 'delete public link' | ||
188 | download: 'İndir' | 190 | download: 'İndir' |
189 | # print: 'Print' | 191 | # print: 'Print' |
190 | problem: | 192 | problem: |
@@ -192,7 +194,7 @@ entry: | |||
192 | description: 'Bu makalede herhangi bir yanlışlık mı var?' | 194 | description: 'Bu makalede herhangi bir yanlışlık mı var?' |
193 | edit_title: 'Başlığı düzenle' | 195 | edit_title: 'Başlığı düzenle' |
194 | original_article: 'orijinal' | 196 | original_article: 'orijinal' |
195 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations' | 197 | # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' |
196 | created_at: 'Oluşturulma tarihi' | 198 | created_at: 'Oluşturulma tarihi' |
197 | new: | 199 | new: |
198 | page_title: 'Yeni makaleyi kaydet' | 200 | page_title: 'Yeni makaleyi kaydet' |
@@ -205,6 +207,8 @@ entry: | |||
205 | url_label: 'Url' | 207 | url_label: 'Url' |
206 | is_public_label: 'Herkes tarafından erişime açık olsun mu?' | 208 | is_public_label: 'Herkes tarafından erişime açık olsun mu?' |
207 | save_label: 'Kaydet' | 209 | save_label: 'Kaydet' |
210 | public: | ||
211 | # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" | ||
208 | 212 | ||
209 | about: | 213 | about: |
210 | page_title: 'Hakkımızda' | 214 | page_title: 'Hakkımızda' |
@@ -260,12 +264,14 @@ howto: | |||
260 | 264 | ||
261 | quickstart: | 265 | quickstart: |
262 | page_title: 'Hızlı başlangıç' | 266 | page_title: 'Hızlı başlangıç' |
267 | # more: 'More…' | ||
263 | intro: | 268 | intro: |
264 | title: 'wallabag' | 269 | title: 'wallabag' |
265 | paragraph_1: "wallabag kurduğunuz için teşekkür ederiz. Bu sayfada biz size eşlik edecek ve ilginizi çekecek birkaç özellik göstereceğim." | 270 | paragraph_1: "wallabag kurduğunuz için teşekkür ederiz. Bu sayfada biz size eşlik edecek ve ilginizi çekecek birkaç özellik göstereceğim." |
266 | paragraph_2: 'Bizi takip edin!' | 271 | paragraph_2: 'Bizi takip edin!' |
267 | configure: | 272 | configure: |
268 | title: 'Uygulamayı Yapılandırma' | 273 | title: 'Uygulamayı Yapılandırma' |
274 | # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.' | ||
269 | language: 'Dili ve tasarımı değiştirme' | 275 | language: 'Dili ve tasarımı değiştirme' |
270 | rss: 'RSS akışını aktifleştirme' | 276 | rss: 'RSS akışını aktifleştirme' |
271 | # tagging_rules: 'Write rules to automatically tag your articles' | 277 | # tagging_rules: 'Write rules to automatically tag your articles' |
@@ -279,6 +285,7 @@ quickstart: | |||
279 | # import: 'Configure import' | 285 | # import: 'Configure import' |
280 | first_steps: | 286 | first_steps: |
281 | title: 'İlk adım' | 287 | title: 'İlk adım' |
288 | # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link." | ||
282 | new_article: 'İlk makalenizi kaydedin' | 289 | new_article: 'İlk makalenizi kaydedin' |
283 | unread_articles: 'Ve bunu sınıflandırın!' | 290 | unread_articles: 'Ve bunu sınıflandırın!' |
284 | migrate: | 291 | migrate: |
@@ -287,11 +294,16 @@ quickstart: | |||
287 | pocket: "Pocket üzerindeki verilerinizi wallabag'e aktarın" | 294 | pocket: "Pocket üzerindeki verilerinizi wallabag'e aktarın" |
288 | wallabag_v1: "wallabag v1 üzerindeki verilerinizi wallabag'in yeni sürümüne aktarın" | 295 | wallabag_v1: "wallabag v1 üzerindeki verilerinizi wallabag'in yeni sürümüne aktarın" |
289 | wallabag_v2: "wallabag v2 üzerindeki verilerinizi wallabag'in yeni sürümüne aktarın" | 296 | wallabag_v2: "wallabag v2 üzerindeki verilerinizi wallabag'in yeni sürümüne aktarın" |
297 | readability: "Readability üzerindeki verilerinizi wallabag'e aktarın'" | ||
298 | instapaper: "Instapaper üzerindeki verilerinizi wallabag'e aktarın'" | ||
290 | developer: | 299 | developer: |
291 | # title: 'Developers' | 300 | # title: 'Developers' |
301 | # description: 'We also thought to the developers: Docker, API, translations, etc.' | ||
292 | # create_application: 'Create your third application' | 302 | # create_application: 'Create your third application' |
303 | # use_docker: 'Use Docker to install wallabag' | ||
293 | docs: | 304 | docs: |
294 | title: 'Dokümantasyon' | 305 | title: 'Dokümantasyon' |
306 | # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them." | ||
295 | # annotate: 'Annotate your article' | 307 | # annotate: 'Annotate your article' |
296 | export: 'Makalelerinizi ePUB ya da PDF formatına çevirme' | 308 | export: 'Makalelerinizi ePUB ya da PDF formatına çevirme' |
297 | search_filters: 'Makaleleri görüntülemek için arama motorlarını ve filteri kullanma' | 309 | search_filters: 'Makaleleri görüntülemek için arama motorlarını ve filteri kullanma' |
@@ -308,6 +320,7 @@ tag: | |||
308 | page_title: 'Etiketler' | 320 | page_title: 'Etiketler' |
309 | list: | 321 | list: |
310 | number_on_the_page: '{0} Herhangi bir etiket yok.|{1} Burada bir adet etiket var.|]1,Inf[ Burada %count% adet etiket var.' | 322 | number_on_the_page: '{0} Herhangi bir etiket yok.|{1} Burada bir adet etiket var.|]1,Inf[ Burada %count% adet etiket var.' |
323 | # see_untagged_entries: 'See untagged entries' | ||
311 | 324 | ||
312 | import: | 325 | import: |
313 | page_title: 'İçe Aktar' | 326 | page_title: 'İçe Aktar' |
@@ -335,6 +348,24 @@ import: | |||
335 | wallabag_v2: | 348 | wallabag_v2: |
336 | page_title: 'İçe Aktar > Wallabag v2' | 349 | page_title: 'İçe Aktar > Wallabag v2' |
337 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' | 350 | # description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.' |
351 | readability: | ||
352 | page_title: 'İçe Aktar > Readability' | ||
353 | # description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).' | ||
354 | # how_to: 'Please select your Readability export and click on the below button to upload and import it.' | ||
355 | worker: | ||
356 | # enabled: "Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:" | ||
357 | firefox: | ||
358 | page_title: 'İçe Aktar > Firefox' | ||
359 | # description: "This importer will import all your Firefox bookmarks. Just go to your bookmarks (Ctrl+Maj+O), then into \"Import and backup\", choose \"Backup...\". You will obtain a .json file." | ||
360 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
361 | chrome: | ||
362 | page_title: 'İçe Aktar > Chrome' | ||
363 | # description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>" | ||
364 | # how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched." | ||
365 | instapaper: | ||
366 | page_title: 'İçe Aktar > Instapaper' | ||
367 | # description: 'This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").' | ||
368 | # how_to: 'Please select your Instapaper export and click on the below button to upload and import it.' | ||
338 | 369 | ||
339 | developer: | 370 | developer: |
340 | # page_title: 'Developer' | 371 | # page_title: 'Developer' |
@@ -361,12 +392,14 @@ developer: | |||
361 | # page_title: 'Developer > New client' | 392 | # page_title: 'Developer > New client' |
362 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' | 393 | # page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.' |
363 | # form: | 394 | # form: |
395 | # name_label: 'Name of the client' | ||
364 | # redirect_uris_label: 'Redirect URIs' | 396 | # redirect_uris_label: 'Redirect URIs' |
365 | # save_label: 'Create a new client' | 397 | # save_label: 'Create a new client' |
366 | # action_back: 'Back' | 398 | # action_back: 'Back' |
367 | # client_parameter: | 399 | # client_parameter: |
368 | # page_title: 'Developer > Client parameters' | 400 | # page_title: 'Developer > Client parameters' |
369 | # page_description: 'Here are your client parameters.' | 401 | # page_description: 'Here are your client parameters.' |
402 | # field_name: 'Client name' | ||
370 | # field_id: 'Client ID' | 403 | # field_id: 'Client ID' |
371 | # field_secret: 'Client secret' | 404 | # field_secret: 'Client secret' |
372 | # back: 'Back' | 405 | # back: 'Back' |
@@ -384,6 +417,33 @@ developer: | |||
384 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' | 417 | # paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.' |
385 | # back: 'Back' | 418 | # back: 'Back' |
386 | 419 | ||
420 | user: | ||
421 | # page_title: Users management | ||
422 | # new_user: Create a new user | ||
423 | # edit_user: Edit an existing user | ||
424 | # description: "Here you can manage all users (create, edit and delete)" | ||
425 | # list: | ||
426 | # actions: Actions | ||
427 | # edit_action: Edit | ||
428 | # yes: Yes | ||
429 | # no: No | ||
430 | # create_new_one: Create a new user | ||
431 | form: | ||
432 | username_label: 'Kullanıcı adı' | ||
433 | # name_label: 'Name' | ||
434 | password_label: 'Şifre' | ||
435 | repeat_new_password_label: 'Yeni şifrenin tekrarı' | ||
436 | plain_password_label: '????' | ||
437 | email_label: 'E-posta' | ||
438 | # enabled_label: 'Enabled' | ||
439 | # locked_label: 'Locked' | ||
440 | # last_login_label: 'Last login' | ||
441 | # twofactor_label: Two factor authentication | ||
442 | # save: Save | ||
443 | # delete: Delete | ||
444 | # delete_confirm: Are you sure? | ||
445 | # back_to_list: Back to list | ||
446 | |||
387 | flashes: | 447 | flashes: |
388 | config: | 448 | config: |
389 | notice: | 449 | notice: |
@@ -400,10 +460,10 @@ flashes: | |||
400 | notice: | 460 | notice: |
401 | entry_already_saved: 'Entry already saved on %date%' | 461 | entry_already_saved: 'Entry already saved on %date%' |
402 | entry_saved: 'Makale kaydedildi' | 462 | entry_saved: 'Makale kaydedildi' |
403 | # entry_saved_failed: 'Failed to save entry' | 463 | # entry_saved_failed: 'Entry saved but fetching content failed' |
404 | # entry_updated: 'Entry updated' | 464 | # entry_updated: 'Entry updated' |
405 | entry_reloaded: 'Makale içeriği yenilendi' | 465 | entry_reloaded: 'Makale içeriği yenilendi' |
406 | # entry_reload_failed: 'Failed to reload entry' | 466 | # entry_reloaded_failed: 'Entry reloaded but fetching content failed' |
407 | entry_archived: 'Makale arşivlendi' | 467 | entry_archived: 'Makale arşivlendi' |
408 | entry_unarchived: 'Makale arşivden çıkartıldı' | 468 | entry_unarchived: 'Makale arşivden çıkartıldı' |
409 | entry_starred: 'Makale favorilere eklendi' | 469 | entry_starred: 'Makale favorilere eklendi' |
@@ -417,6 +477,10 @@ flashes: | |||
417 | # failed: 'Import failed, please try again.' | 477 | # failed: 'Import failed, please try again.' |
418 | # failed_on_file: 'Error while processing import. Please verify your import file.' | 478 | # failed_on_file: 'Error while processing import. Please verify your import file.' |
419 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' | 479 | # summary: 'Import summary: %imported% imported, %skipped% already saved.' |
480 | # summary_with_queue: 'Import summary: %queued% queued.' | ||
481 | error: | ||
482 | # redis_enabled_not_installed: Redis is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check Redis configuration. | ||
483 | # rabbit_enabled_not_installed: RabbitMQ is enabled for handle asynchronous import but it looks like <u>we can't connect to it</u>. Please check RabbitMQ configuration. | ||
420 | developer: | 484 | developer: |
421 | notice: | 485 | notice: |
422 | # client_created: 'New client created.' | 486 | # client_created: 'New client created.' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.da.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.da.yml index dfe2c64d..313339ed 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/validators.da.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/validators.da.yml | |||
@@ -1,6 +1,6 @@ | |||
1 | validator: | 1 | validator: |
2 | password_must_match: 'De indtastede adgangskoder skal være ens' | 2 | password_must_match: 'De indtastede adgangskoder skal være ens' |
3 | password_too_short: 'Adgangskoden skal være mindst 8 tegn' | 3 | password_too_short: 'Adgangskoden skal være mindst 8 tegn' |
4 | # password_wrong_value: 'Wrong value for your current password' | 4 | # password_wrong_value: 'Wrong value for your current password' |
5 | # item_per_page_too_high: 'This will certainly kill the app' | 5 | # item_per_page_too_high: 'This will certainly kill the app' |
6 | # rss_limit_too_hight: 'This will certainly kill the app' | 6 | # rss_limit_too_hight: 'This will certainly kill the app' |
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.tr.yml index 80ab470a..1b358965 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/validators.tr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/validators.tr.yml | |||
@@ -1,6 +1,6 @@ | |||
1 | validator: | 1 | validator: |
2 | # password_must_match: 'The password fields must match.' | 2 | # password_must_match: 'The password fields must match.' |
3 | # password_too_short: 'Password should by at least 8 chars long' | 3 | # password_too_short: 'Password should by at least 8 chars long' |
4 | # password_wrong_value: 'Wrong value for your current password' | 4 | # password_wrong_value: 'Wrong value for your current password' |
5 | # item_per_page_too_high: 'This will certainly kill the app' | 5 | # item_per_page_too_high: 'This will certainly kill the app' |
6 | # rss_limit_too_hight: 'This will certainly kill the app' | 6 | # rss_limit_too_hight: 'This will certainly kill the app' |
diff --git a/src/Wallabag/CoreBundle/Resources/views/_bookmarklet.html.twig b/src/Wallabag/CoreBundle/Resources/views/_bookmarklet.html.twig deleted file mode 100644 index 966a84db..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/_bookmarklet.html.twig +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | <a id="bookmarklet" ondragend="this.click();" href="javascript:var url=location.href||url;var wllbg=window.open('{{ url('bookmarklet') }}?url=' + encodeURI(url),'_blank');wllbg.close();void(0);">bag it!</a> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/base.html.twig b/src/Wallabag/CoreBundle/Resources/views/base.html.twig index f024b633..a1a9a136 100644 --- a/src/Wallabag/CoreBundle/Resources/views/base.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/base.html.twig | |||
@@ -41,13 +41,9 @@ | |||
41 | {% block css %} | 41 | {% block css %} |
42 | {% endblock %} | 42 | {% endblock %} |
43 | {% block scripts %} | 43 | {% block scripts %} |
44 | <script src="{{ asset('bundles/wallabagcore/themes/_global/js/jquery-2.0.3.min.js') }}"></script> | ||
45 | <script src="{{ asset('bundles/wallabagcore/themes/_global/js/jquery.cookie.js') }}"></script> | ||
46 | <script src="{{ asset('bundles/wallabagcore/themes/_global/js/bookmarklet.js') }}"></script> | ||
47 | <script src="{{ asset('bundles/wallabagcore/themes/_global/js/annotator.min.js') }}"></script> | ||
48 | {% endblock %} | 44 | {% endblock %} |
49 | 45 | ||
50 | <title>wallabag - {% block title %}{% endblock %}</title> | 46 | <title>{% block title %}{% endblock %} – wallabag</title> |
51 | {% endblock %} | 47 | {% endblock %} |
52 | </head> | 48 | </head> |
53 | 49 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig index a8abe8d3..ff7ef73a 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig | |||
@@ -44,6 +44,18 @@ | |||
44 | </div> | 44 | </div> |
45 | </fieldset> | 45 | </fieldset> |
46 | 46 | ||
47 | <fieldset class="w500p inline"> | ||
48 | <div class="row"> | ||
49 | {{ form_label(form.config.pocket_consumer_key) }} | ||
50 | {{ form_errors(form.config.pocket_consumer_key) }} | ||
51 | {{ form_widget(form.config.pocket_consumer_key) }} | ||
52 | <p> | ||
53 | » | ||
54 | <a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a> | ||
55 | </p> | ||
56 | </div> | ||
57 | </fieldset> | ||
58 | |||
47 | {{ form_rest(form.config) }} | 59 | {{ form_rest(form.config) }} |
48 | </form> | 60 | </form> |
49 | 61 | ||
@@ -179,6 +191,7 @@ | |||
179 | « {{ tagging_rule.rule }} » | 191 | « {{ tagging_rule.rule }} » |
180 | {{ 'config.form_rules.then_tag_as_label'|trans }} | 192 | {{ 'config.form_rules.then_tag_as_label'|trans }} |
181 | « {{ tagging_rule.tags|join(', ') }} » | 193 | « {{ tagging_rule.tags|join(', ') }} » |
194 | <a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}" class="tool mode_edit">✎</a> | ||
182 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}" class="tool delete icon-trash icon"></a> | 195 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}" class="tool delete icon-trash icon"></a> |
183 | </li> | 196 | </li> |
184 | {% endfor %} | 197 | {% endfor %} |
@@ -205,7 +218,6 @@ | |||
205 | 218 | ||
206 | {{ form_rest(form.new_tagging_rule) }} | 219 | {{ form_rest(form.new_tagging_rule) }} |
207 | </form> | 220 | </form> |
208 | |||
209 | <div class="row"> | 221 | <div class="row"> |
210 | <div class="input-field col s12"> | 222 | <div class="input-field col s12"> |
211 | <h3>{{ 'config.form_rules.faq.title'|trans }}</h3> | 223 | <h3>{{ 'config.form_rules.faq.title'|trans }}</h3> |
@@ -290,46 +302,4 @@ | |||
290 | </table> | 302 | </table> |
291 | </div> | 303 | </div> |
292 | </div> | 304 | </div> |
293 | |||
294 | {% if is_granted('ROLE_SUPER_ADMIN') %} | ||
295 | <h2>{{ 'config.tab_menu.new_user'|trans }}</h2> | ||
296 | |||
297 | {{ form_start(form.new_user) }} | ||
298 | {{ form_errors(form.new_user) }} | ||
299 | |||
300 | <fieldset class="w500p inline"> | ||
301 | <div class="row"> | ||
302 | {{ form_label(form.new_user.username) }} | ||
303 | {{ form_errors(form.new_user.username) }} | ||
304 | {{ form_widget(form.new_user.username) }} | ||
305 | </div> | ||
306 | </fieldset> | ||
307 | |||
308 | <fieldset class="w500p inline"> | ||
309 | <div class="row"> | ||
310 | {{ form_label(form.new_user.plainPassword.first) }} | ||
311 | {{ form_errors(form.new_user.plainPassword.first) }} | ||
312 | {{ form_widget(form.new_user.plainPassword.first) }} | ||
313 | </div> | ||
314 | </fieldset> | ||
315 | |||
316 | <fieldset class="w500p inline"> | ||
317 | <div class="row"> | ||
318 | {{ form_label(form.new_user.plainPassword.second) }} | ||
319 | {{ form_errors(form.new_user.plainPassword.second) }} | ||
320 | {{ form_widget(form.new_user.plainPassword.second) }} | ||
321 | </div> | ||
322 | </fieldset> | ||
323 | |||
324 | <fieldset class="w500p inline"> | ||
325 | <div class="row"> | ||
326 | {{ form_label(form.new_user.email) }} | ||
327 | {{ form_errors(form.new_user.email) }} | ||
328 | {{ form_widget(form.new_user.email) }} | ||
329 | </div> | ||
330 | </fieldset> | ||
331 | |||
332 | {{ form_rest(form.new_user) }} | ||
333 | {% endif %} | ||
334 | </form> | ||
335 | {% endblock %} | 305 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig deleted file mode 100644 index 001c5cbb..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'developer.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | |||
10 | <div class="row"> | ||
11 | <h3>{{ 'developer.welcome_message'|trans }}</h3> | ||
12 | |||
13 | <h4>{{ 'developer.documentation'|trans }}</h4> | ||
14 | |||
15 | <ul> | ||
16 | <li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li> | ||
17 | <li><a href="http://doc.wallabag.org/en/master/developer/api.html">{{ 'developer.full_documentation'|trans }}</a></li> | ||
18 | <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.list_methods'|trans }}</a></li> | ||
19 | </ul> | ||
20 | |||
21 | <h4>{{ 'developer.clients.title'|trans }}</h4> | ||
22 | <ul> | ||
23 | <li><a href="{{ path('developer_create_client') }}">{{ 'developer.clients.create_new'|trans }}</a></li> | ||
24 | </ul> | ||
25 | |||
26 | <h4>{{ 'developer.existing_clients.title'|trans }}</h4> | ||
27 | {% if clients %} | ||
28 | <ul class="collapsible" data-collapsible="expandable"> | ||
29 | {% for client in clients %} | ||
30 | <li> | ||
31 | <div class="collapsible-header">#{{ client.id }}</div> | ||
32 | <div class="collapsible-body"> | ||
33 | <table class="striped"> | ||
34 | <tr> | ||
35 | <td>{{ 'developer.existing_clients.field_id'|trans }}</td> | ||
36 | <td><strong><code>{{ client.id }}_{{ client.randomId }}</code></strong></td> | ||
37 | </tr> | ||
38 | <tr> | ||
39 | <td>{{ 'developer.existing_clients.field_secret'|trans }}</td> | ||
40 | <td><strong><code>{{ client.secret }}</code></strong></td> | ||
41 | </tr> | ||
42 | <tr> | ||
43 | <td>{{ 'developer.existing_clients.field_uris'|trans }}</td> | ||
44 | <td><strong><code>{{ client.redirectUris|json_encode() }}</code></strong></td> | ||
45 | </tr> | ||
46 | <tr> | ||
47 | <td>{{ 'developer.existing_clients.field_grant_types'|trans }}</td> | ||
48 | <td><strong><code>{{ client.allowedGrantTypes|json_encode() }}</code></strong></td> | ||
49 | </tr> | ||
50 | </table> | ||
51 | <p> | ||
52 | {{ 'developer.remove.warn_message_1'|trans }}<br/> | ||
53 | {{ 'developer.remove.warn_message_2'|trans }}<br/> | ||
54 | <a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{{ 'developer.remove.action'|trans }}</a> | ||
55 | </p> | ||
56 | </div> | ||
57 | </li> | ||
58 | {% endfor %} | ||
59 | </ul> | ||
60 | {% else %} | ||
61 | {{ 'developer.existing_clients.no_client'|trans }} | ||
62 | {% endif %} | ||
63 | </div> | ||
64 | |||
65 | </div> | ||
66 | </div> | ||
67 | </div> | ||
68 | |||
69 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig index 778625ae..3af88b23 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig | |||
@@ -1,6 +1,8 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %}{{ 'entry.page_titles.unread'|trans }}{% endblock %} | 3 | {% block title %} |
4 | {% include "@WallabagCore/themes/common/Entry/_title.html.twig" %} | ||
5 | {% endblock %} | ||
4 | 6 | ||
5 | {% block content %} | 7 | {% block content %} |
6 | {% include "WallabagCoreBundle:Entry:pager.html.twig" with {'entries': entries} %} | 8 | {% include "WallabagCoreBundle:Entry:pager.html.twig" with {'entries': entries} %} |
@@ -27,14 +29,45 @@ | |||
27 | <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li> | 29 | <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li> |
28 | </ul> | 30 | </ul> |
29 | {% if entry.previewPicture is null %} | 31 | {% if entry.previewPicture is null %} |
32 | <ul class="card-entry-tags"> | ||
33 | {% for tag in entry.tags %} | ||
34 | <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li> | ||
35 | {% endfor %} | ||
36 | </ul> | ||
30 | <p>{{ entry.content|striptags|slice(0, 300) }}…</p> | 37 | <p>{{ entry.content|striptags|slice(0, 300) }}…</p> |
31 | {% else %} | 38 | {% else %} |
39 | <ul class="card-entry-labels"> | ||
40 | {% for tag in entry.tags | slice(0, 3) %} | ||
41 | <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li> | ||
42 | {% endfor %} | ||
43 | </ul> | ||
32 | <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /> | 44 | <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /> |
33 | {% endif %} | 45 | {% endif %} |
34 | </div> | 46 | </div> |
35 | {% endfor %} | 47 | {% endfor %} |
36 | 48 | ||
37 | <aside id="filter-form" class=""> | 49 | <!-- Export --> |
50 | <aside id="download-form"> | ||
51 | {% set currentRoute = app.request.attributes.get('_route') %} | ||
52 | {% if currentRoute == 'homepage' %} | ||
53 | {% set currentRoute = 'unread' %} | ||
54 | {% endif %} | ||
55 | <h2>{{ 'entry.list.export_title'|trans }}</h2> | ||
56 | <a href="javascript: void(null);" id="download-form-close" class="close-button--popup close-button">×</a> | ||
57 | <ul> | ||
58 | {% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub' }) }}">EPUB</a></li>{% endif %} | ||
59 | {% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi' }) }}">MOBI</a></li>{% endif %} | ||
60 | {% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'pdf' }) }}">PDF</a></li>{% endif %} | ||
61 | {% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'json' }) }}">JSON</a></li>{% endif %} | ||
62 | {% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'csv' }) }}">CSV</a></li>{% endif %} | ||
63 | {% if craue_setting('export_txt') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'txt' }) }}">TXT</a></li>{% endif %} | ||
64 | {% if craue_setting('export_xml') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'xml' }) }}">XML</a></li>{% endif %} | ||
65 | </ul> | ||
66 | </aside> | ||
67 | |||
68 | <!-- Filter --> | ||
69 | {% if form is not null %} | ||
70 | <div id="filters" class=""> | ||
38 | <form method="get" action="{{ path('all') }}"> | 71 | <form method="get" action="{{ path('all') }}"> |
39 | <h2>{{ 'entry.filters.title'|trans }}</h2> | 72 | <h2>{{ 'entry.filters.title'|trans }}</h2> |
40 | <a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">×</a> | 73 | <a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">×</a> |
@@ -114,7 +147,6 @@ | |||
114 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button> | 147 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button> |
115 | </div> | 148 | </div> |
116 | </form> | 149 | </form> |
117 | </aside> | 150 | </div> |
118 | 151 | {% endif %} | |
119 | {% include "WallabagCoreBundle:Entry:pager.html.twig" with {'entries': entries} %} | ||
120 | {% endblock %} | 152 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig index d7374dc7..3689159b 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig | |||
@@ -5,53 +5,67 @@ | |||
5 | {% block content %} | 5 | {% block content %} |
6 | <div id="article"> | 6 | <div id="article"> |
7 | <header class="mbm"> | 7 | <header class="mbm"> |
8 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> | 8 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" class="nostyle" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> |
9 | </header> | 9 | </header> |
10 | 10 | ||
11 | <div id="article_toolbar"> | 11 | <div id="article_toolbar"> |
12 | <ul class="links"> | 12 | <ul class="links"> |
13 | <li class="topPosF"><a href="#top" title="{{ 'entry.view.left_menu.back_to_top'|trans }}" class="tool top icon icon-arrow-up-thick"><span>{{ 'entry.view.left_menu.set_as_read'|trans }}</span></a></li> | 13 | <li class="topPosF"><a href="#top" title="{{ 'entry.view.left_menu.back_to_top'|trans }}" class="tool top icon icon-arrow-up-thick"><span>{{ 'entry.view.left_menu.set_as_read'|trans }}</span></a></li> |
14 | <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.domainName|removeWww }}</span></a></li> | 14 | <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.domainName|removeWww }}</span></a></li> |
15 | <li><a title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span></a></li> | 15 | <li><a title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span></a></li> |
16 | <li><a title="{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}</span></a></li> | 16 | |
17 | <li><a title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span></a></li> | 17 | {% set markAsReadLabel = 'entry.view.left_menu.set_as_unread' %} |
18 | <li><a id="nav-btn-add-tag" title="{{ 'entry.view.left_menu.add_a_tag'|trans }}"><span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span></a></li> | 18 | {% if entry.isArchived == 0 %} |
19 | <li><a title="{{ 'entry.view.left_menu.delete'|trans }}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.delete'|trans }}</span></a></li> | 19 | {% set markAsReadLabel = 'entry.view.left_menu.set_as_read' %} |
20 | {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="Tweet"><span>Tweet</span></a></li>{% endif %} | 20 | {% endif %} |
21 | {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="Email"><span>Email</span></a></li>{% endif %} | ||
22 | {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %} | ||
23 | {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora"><span>diaspora</span></a></li>{% endif %} | ||
24 | {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot"><span>Carrot</span></a></li>{% endif %} | ||
25 | {% if craue_setting('show_printlink') %}<li><a title="{{ 'entry.view.left_menu.print'|trans }}" class="tool icon icon-print" href="javascript: window.print();"><span>{{ 'entry.view.left_menu.print'|trans }}</span></a></li>{% endif %} | ||
26 | {% if craue_setting('export_epub') %}<li><a href="?epub&method=id&value={{ entry.id }}" title="Generate ePub file">EPUB</a></li>{% endif %} | ||
27 | {% if craue_setting('export_mobi') %}<li><a href="?mobi&method=id&value={{ entry.id }}" title="Generate Mobi file">MOBI</a></li>{% endif %} | ||
28 | {% if craue_setting('export_pdf') %}<li><a href="?pdf&method=id&value={{ entry.id }}" title="Generate PDF file">PDF</a></li>{% endif %} | ||
29 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.label'|trans }}" class="tool bad-display icon icon-delete"><span>{{ 'entry.view.left_menu.problem.label'|trans }}</span></a></li> | ||
30 | </ul> | ||
31 | </div> | ||
32 | <div class="link mdi-action-today"> | ||
33 | {{ 'entry.view.created_at'|trans }}: {{ entry.createdAt|date('Y-m-d') }} | ||
34 | </div> | ||
35 | 21 | ||
36 | <div class="link mdi-action-query-builder"> | 22 | <li><a title="{{ markAsReadLabel|trans }}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{{ markAsReadLabel|trans }}</span></a></li> |
37 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} | 23 | <li><a title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span></a></li> |
38 | {% if readingTime > 0 %} | 24 | <li><a id="nav-btn-add-tag" class="tool icon icon-price-tags" title="{{ 'entry.view.left_menu.add_a_tag'|trans }}"><span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span></a></li> |
39 | {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round})|capitalize }} | 25 | <li><a title="{{ 'entry.view.left_menu.delete'|trans }}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.delete'|trans }}</span></a></li> |
40 | {% else %} | 26 | {% if craue_setting('share_public') %} |
41 | {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} | 27 | <li><a href="{{ path('share', {'id': entry.id }) }}" target="_blank" class="tool icon icon-eye" title="{{ 'entry.view.left_menu.public_link'|trans }}"><span>{{ 'entry.view.left_menu.public_link'|trans }}</span></a></li> |
42 | {% endif %} | 28 | <li><a href="{{ path('delete_share', {'id': entry.id }) }}" class="tool icon icon-no-eye" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}"><span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span></a></li> |
29 | {% endif %} | ||
30 | {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="Tweet"><span>Tweet</span></a></li>{% endif %} | ||
31 | {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="Email"><span>Email</span></a></li>{% endif %} | ||
32 | {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool icon-image icon-image--shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %} | ||
33 | {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora"><span>diaspora</span></a></li>{% endif %} | ||
34 | {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot"><span>Carrot</span></a></li>{% endif %} | ||
35 | {% if craue_setting('show_printlink') %}<li><a title="{{ 'entry.view.left_menu.print'|trans }}" class="tool icon icon-print" href="javascript: window.print();"><span>{{ 'entry.view.left_menu.print'|trans }}</span></a></li>{% endif %} | ||
36 | {% if craue_setting('export_epub') %}<li><a href="?epub&method=id&value={{ entry.id }}" title="Generate ePub file">EPUB</a></li>{% endif %} | ||
37 | {% if craue_setting('export_mobi') %}<li><a href="?mobi&method=id&value={{ entry.id }}" title="Generate Mobi file">MOBI</a></li>{% endif %} | ||
38 | {% if craue_setting('export_pdf') %}<li><a href="?pdf&method=id&value={{ entry.id }}" title="Generate PDF file">PDF</a></li>{% endif %} | ||
39 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.label'|trans }}" class="tool bad-display icon icon-delete"><span>{{ 'entry.view.left_menu.problem.label'|trans }}</span></a></li> | ||
40 | </ul> | ||
43 | </div> | 41 | </div> |
44 | 42 | ||
45 | {% set nbAnnotations = entry.annotations | length %} | 43 | <div id="article-informations"> |
46 | <span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> | 44 | <i class="tool icon icon-calendar" title="{{ 'entry.view.created_at'|trans }}"> |
47 | <aside class="tags"> | 45 | {{ entry.createdAt|date('Y-m-d') }} |
48 | {% for tag in entry.tags %} | 46 | </i> |
49 | <span class="mdi-action-label-outline">{{ tag.label }}</span> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i>✘</i></a> | 47 | |
50 | {% endfor %} | 48 | <i class="tool icon icon-time"> |
51 | <div class="input-field nav-panel-add-tag" style="display: none"> | 49 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} |
52 | {{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }} | 50 | {% if readingTime > 0 %} |
53 | </div> | 51 | {{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }} |
54 | </aside> | 52 | {% else %} |
53 | {{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }} | ||
54 | {% endif %} | ||
55 | </i> | ||
56 | |||
57 | <span class="tool link"><i class="material-icons link">comment</i> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> | ||
58 | <aside class="tags"> | ||
59 | <div class="card-entry-tags"> | ||
60 | {% for tag in entry.tags %} | ||
61 | <span class="label-outline"><i class="material-icons">label_outline</i> <a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}" class="nostyle"><i>✘</i></a></span> | ||
62 | {% endfor %} | ||
63 | </div> | ||
64 | <div class="input-field nav-panel-add-tag" style="display: none"> | ||
65 | {{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }} | ||
66 | </div> | ||
67 | </aside> | ||
68 | </div> | ||
55 | {% if entry.previewPicture is not null %} | 69 | {% if entry.previewPicture is not null %} |
56 | <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div> | 70 | <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div> |
57 | {% endif %} | 71 | {% endif %} |
@@ -59,87 +73,17 @@ | |||
59 | {{ entry.content | raw }} | 73 | {{ entry.content | raw }} |
60 | </article> | 74 | </article> |
61 | </div> | 75 | </div> |
62 | <script src="{{ asset('bundles/wallabagcore/themes/_global/js/restoreScroll.js')}}"></script> | ||
63 | <script type="text/javascript"> | ||
64 | $(document).ready(function() { | ||
65 | 76 | ||
66 | // toggle read property of current article | 77 | <script id="annotationroutes" type="application/json"> |
67 | /* $('#markAsRead').click(function(){ | 78 | { |
68 | $("body").css("cursor", "wait"); | 79 | "prefix": "", |
69 | $.ajax( { url: '{{ path('archive_entry', { 'id': entry.id }) }}' }).done( | 80 | "urls": { |
70 | function( data ) { | 81 | "create": "{{ path('annotations_post_annotation', { 'entry': entry.id }) }}", |
71 | if ( data == '1' ) { | 82 | "update": "{{ path('annotations_put_annotation', { 'annotation': 'idAnnotation' }) }}", |
72 | if ( $('#markAsRead').hasClass("archive-off") ) { | 83 | "destroy": "{{ path('annotations_delete_annotation', { 'annotation': 'idAnnotation' }) }}", |
73 | $('#markAsRead').removeClass("archive-off"); | 84 | "search": "{{ path('annotations_get_annotations', { 'entry': entry.id }) }}" |
74 | $('#markAsRead').addClass("archive"); | 85 | }, |
75 | } | 86 | "entryId": "{{ entry.id }}" |
76 | else { | 87 | } |
77 | $('#markAsRead').removeClass("archive"); | ||
78 | $('#markAsRead').addClass("archive-off"); | ||
79 | } | ||
80 | } | ||
81 | else { | ||
82 | alert('Error! Pls check if you are logged in.'); | ||
83 | } | ||
84 | }); | ||
85 | $("body").css("cursor", "auto"); | ||
86 | });*/ | ||
87 | |||
88 | // toggle starred property of current article | ||
89 | /* $('#setFav').click(function(){ | ||
90 | $("body").css("cursor", "wait"); | ||
91 | $.ajax( { url: '{{ path('star_entry', { 'id': entry.id }) }}' }).done( | ||
92 | function( data ) { | ||
93 | if ( data == '1' ) { | ||
94 | if ( $('#setFav').hasClass("fav-off") ) { | ||
95 | $('#setFav').removeClass("fav-off"); | ||
96 | $('#setFav').addClass("fav"); | ||
97 | } | ||
98 | else { | ||
99 | $('#setFav').removeClass("fav"); | ||
100 | $('#setFav').addClass("fav-off"); | ||
101 | } | ||
102 | } | ||
103 | else { | ||
104 | alert('Error! Pls check if you are logged in.'); | ||
105 | } | ||
106 | }); | ||
107 | $("body").css("cursor", "auto"); | ||
108 | });*/ | ||
109 | |||
110 | $(window).scroll(function(e){ | ||
111 | var scrollTop = $(window).scrollTop(); | ||
112 | var docHeight = $(document).height(); | ||
113 | var scrollPercent = (scrollTop) / (docHeight); | ||
114 | var scrollPercentRounded = Math.round(scrollPercent*100)/100; | ||
115 | savePercent({{ entry.id }}, scrollPercentRounded); | ||
116 | }); | ||
117 | |||
118 | retrievePercent({{ entry.id }}); | ||
119 | |||
120 | $(window).resize(function(){ | ||
121 | retrievePercent({{ entry.id }}); | ||
122 | }); | ||
123 | }); | ||
124 | |||
125 | var app = new annotator.App(); | ||
126 | app.include(annotator.ui.main, { | ||
127 | element: document.querySelector('article') | ||
128 | }); | ||
129 | app.include(annotator.storage.http, { | ||
130 | prefix: '', | ||
131 | urls: { | ||
132 | create: '{{ path('annotations_post_annotation', { 'entry': entry.id }) }}', | ||
133 | update: '{{ path('annotations_put_annotation', { 'annotation': 'idAnnotation' }) }}', | ||
134 | destroy: '{{ path('annotations_delete_annotation', { 'annotation': 'idAnnotation' }) }}', | ||
135 | search: '{{ path('annotations_get_annotations', { 'entry': entry.id }) }}' | ||
136 | } | ||
137 | }); | ||
138 | app | ||
139 | .start() | ||
140 | .then(function () { | ||
141 | app.annotations.load({entry: {{ entry.id }}}); | ||
142 | }); | ||
143 | </script> | 88 | </script> |
144 | |||
145 | {% endblock %} | 89 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/pager.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/pager.html.twig index ac74676a..faaa21a8 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/pager.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/pager.html.twig | |||
@@ -2,7 +2,8 @@ | |||
2 | <div class="results"> | 2 | <div class="results"> |
3 | <div class="nb-results">{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}</div> | 3 | <div class="nb-results">{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}</div> |
4 | <div class="pagination"> | 4 | <div class="pagination"> |
5 | <a href="#" id="filter">{{ 'entry.filters.title'|trans }}</a> | 5 | <i class="btn-clickable download-btn material-icons md-36">file_download</i> |
6 | <i class="btn-clickable filter-btn material-icons md-36">filter_list</i> | ||
6 | {% if entries.getNbPages > 1 %} | 7 | {% if entries.getNbPages > 1 %} |
7 | {{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }} | 8 | {{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }} |
8 | {% endif %} | 9 | {% endif %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Exception/error.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Exception/error.html.twig new file mode 100644 index 00000000..b52634fd --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Exception/error.html.twig | |||
@@ -0,0 +1,24 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'error.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | {% block messages %}{% endblock %} | ||
9 | {% block header %}{% endblock %} | ||
10 | |||
11 | {% block content %} | ||
12 | <main class="valign-wrapper"> | ||
13 | <div class="valign row"> | ||
14 | <div class="card sw"> | ||
15 | <div class="center"><img src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-w.png') }}" alt="wallabag logo" /></div> | ||
16 | <h2>{{ status_code }}: {{ status_text }}</h2> | ||
17 | <p>{{ exception.message }}</p> | ||
18 | </div> | ||
19 | </div> | ||
20 | </main> | ||
21 | {% endblock %} | ||
22 | |||
23 | {% block footer %} | ||
24 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig deleted file mode 100644 index 404d2857..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig +++ /dev/null | |||
@@ -1,170 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'about.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <h2>{{ 'about.top_menu.who_behind_wallabag'|trans }}</h2> | ||
7 | |||
8 | <dl> | ||
9 | <dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt> | ||
10 | <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://www.loeuillet.org">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> | ||
11 | <dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> | ||
12 | <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd> | ||
13 | |||
14 | <dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt> | ||
15 | |||
16 | <dt>{{ 'about.who_behind_wallabag.project_website'|trans }}</dt> | ||
17 | <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd> | ||
18 | |||
19 | <dt>{{ 'about.who_behind_wallabag.license'|trans }}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt> | ||
20 | |||
21 | <dt>{{ 'about.who_behind_wallabag.version'|trans }}: {{ version }}</dt> | ||
22 | </dl> | ||
23 | |||
24 | <h2>{{ 'about.top_menu.getting_help'|trans }}</h2> | ||
25 | |||
26 | <dl> | ||
27 | <dt>{{ 'about.getting_help.documentation'|trans }}</dt> | ||
28 | <dd><a href="http://doc.wallabag.org/en/master/">english</a></dd> | ||
29 | <dd><a href="http://doc.wallabag.org/fr/master/">français</a></dd> | ||
30 | |||
31 | <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt> | ||
32 | <dd>{{ 'about.getting_help.support'|trans|raw }}</dd> | ||
33 | </dl> | ||
34 | |||
35 | <h2>{{ 'about.top_menu.helping'|trans }}</h2> | ||
36 | |||
37 | <p>{{ 'about.helping.description'|trans }}</p> | ||
38 | |||
39 | <dl> | ||
40 | <dt>{{ 'about.helping.description'|trans }}</dt> | ||
41 | <dd>{{ 'about.helping.by_contributing_2'|trans }} <a href="https://github.com/wallabag/wallabag/issues/1254">{{ 'about.helping.by_contributing'|trans }}</a></dd> | ||
42 | <dd><a href="{{ paypal_url }}">{{ 'about.helping.by_paypal'|trans }}</a></dd> | ||
43 | </dl> | ||
44 | |||
45 | <h2>{{ 'about.top_menu.contributors'|trans }}</h2> | ||
46 | <p><a href="https://github.com/wallabag/wallabag/graphs/contributors">{{ 'about.contributors.description'|trans }}</a></p> | ||
47 | |||
48 | <h2>{{ 'about.top_menu.third_party'|trans }}</h2> | ||
49 | <p>{{ 'about.third_party.description'|trans }}</p> | ||
50 | <table class="striped"> | ||
51 | <tr> | ||
52 | <th>{{ 'about.third_party.package'|trans }}</th> | ||
53 | <th>{{ 'about.third_party.license'|trans }}</th> | ||
54 | </tr> | ||
55 | <tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr> | ||
56 | <tr><td>CraueConfigBundle</td><td>MIT</td></tr> | ||
57 | <tr><td>doctrine/annotations</td><td>MIT</td></tr> | ||
58 | <tr><td>doctrine/cache</td><td>MIT</td></tr> | ||
59 | <tr><td>doctrine/collections</td><td>MIT</td></tr> | ||
60 | <tr><td>doctrine/common</td><td>MIT</td></tr> | ||
61 | <tr><td>doctrine/dbal</td><td>MIT</td></tr> | ||
62 | <tr><td>doctrine/doctrine-bundle</td><td>MIT</td></tr> | ||
63 | <tr><td>doctrine/doctrine-cache-bundle</td><td>MIT</td></tr> | ||
64 | <tr><td>doctrine/doctrine-migrations-bundle</td><td>MIT</td></tr> | ||
65 | <tr><td>doctrine/inflector</td><td>MIT</td></tr> | ||
66 | <tr><td>doctrine/instantiator</td><td>MIT</td></tr> | ||
67 | <tr><td>doctrine/lexer</td><td>MIT</td></tr> | ||
68 | <tr><td>doctrine/migrations</td><td>LGPL-2.1</td></tr> | ||
69 | <tr><td>doctrine/orm</td><td>MIT</td></tr> | ||
70 | <tr><td>friendsofsymfony/oauth-server-bundle</td><td>MIT</td></tr> | ||
71 | <tr><td>friendsofsymfony/oauth2-php</td><td>MIT</td></tr> | ||
72 | <tr><td>friendsofsymfony/rest-bundle</td><td>MIT</td></tr> | ||
73 | <tr><td>friendsofsymfony/user-bundle</td><td>MIT</td></tr> | ||
74 | <tr><td>gedmo/doctrine-extensions</td><td>MIT</td></tr> | ||
75 | <tr><td>grandt/binstring</td><td>LGPL-2.1</td></tr> | ||
76 | <tr><td>grandt/phpepub</td><td>LGPL-2.1</td></tr> | ||
77 | <tr><td>grandt/phpresizegif</td><td>LGPL-2.1</td></tr> | ||
78 | <tr><td>grandt/phpzipmerge</td><td>LGPL-2.1</td></tr> | ||
79 | <tr><td>grandt/relativepath</td><td>LGPL-2.1</td></tr> | ||
80 | <tr><td>guzzlehttp/guzzle</td><td>MIT</td></tr> | ||
81 | <tr><td>guzzlehttp/ringphp</td><td>MIT</td></tr> | ||
82 | <tr><td>guzzlehttp/streams</td><td>MIT</td></tr> | ||
83 | <tr><td>hoa/compiler</td><td>BSD-3-Clause</td></tr> | ||
84 | <tr><td>hoa/consistency</td><td>BSD-3-Clause</td></tr> | ||
85 | <tr><td>hoa/event</td><td>BSD-3-Clause</td></tr> | ||
86 | <tr><td>hoa/exception</td><td>BSD-3-Clause</td></tr> | ||
87 | <tr><td>hoa/file</td><td>BSD-3-Clause</td></tr> | ||
88 | <tr><td>hoa/iterator</td><td>BSD-3-Clause</td></tr> | ||
89 | <tr><td>hoa/math</td><td>BSD-3-Clause</td></tr> | ||
90 | <tr><td>hoa/protocol</td><td>BSD-3-Clause</td></tr> | ||
91 | <tr><td>hoa/regex</td><td>BSD-3-Clause</td></tr> | ||
92 | <tr><td>hoa/ruler</td><td>BSD-3-Clausev | ||
93 | <tr><td>hoa/stream</td><td>BSD-3-Clause</td></tr> | ||
94 | <tr><td>hoa/ustring</td><td>BSD-3-Clause</td></tr> | ||
95 | <tr><td>hoa/visitor</td><td>BSD-3-Clause</td></tr> | ||
96 | <tr><td>hoa/zformat</td><td>BSD-3-Clause</td></tr> | ||
97 | <tr><td>htmlawed/htmlawed</td><td>GPL-2.0+ or LGPL-3.0</td></tr> | ||
98 | <tr><td>incenteev/composer-parameter-handler</td><td>MIT</td></tr> | ||
99 | <tr><td>j0k3r/graby</td><td>AGPL-3.0</td></tr> | ||
100 | <tr><td>j0k3r/graby-site-config</td><td>AGPL-3.0</td></tr> | ||
101 | <tr><td>j0k3r/php-readability</td><td>Apache-2.0</td></tr> | ||
102 | <tr><td>j0k3r/safecurl</td><td>MIT</td></tr> | ||
103 | <tr><td>jdorn/sql-formatter</td><td>MIT</td></tr> | ||
104 | <tr><td>jms/metadata</td><td>Apache</td></tr> | ||
105 | <tr><td>jms/parser-lib</td><td>Apache2</td></tr> | ||
106 | <tr><td>jms/serializer</td><td>Apache2</td></tr> | ||
107 | <tr><td>jms/serializer-bundle</td><td>Apache2</td></tr> | ||
108 | <tr><td>kphoen/rulerz</td><td>MIT</td></tr> | ||
109 | <tr><td>kphoen/rulerz-bundle</td><td>MIT</td></tr> | ||
110 | <tr><td>kriswallsmith/assetic</td><td>MIT</td></tr> | ||
111 | <tr><td>lexik/form-filter-bundle</td><td>MIT</td></tr> | ||
112 | <tr><td>liip/theme-bundle</td><td>MIT</td></tr> | ||
113 | <tr><td>mgargano/simplehtmldom</td><td>MIT</td></tr> | ||
114 | <tr><td>michelf/php-markdown</td><td>BSD-3-Clause</td></tr> | ||
115 | <tr><td>monolog/monolog</td><td>MIT</td></tr> | ||
116 | <tr><td>neitanod/forceutf8</td><td>BSD-3-Clause</td></tr> | ||
117 | <tr><td>nelmio/api-doc-bundle</td><td>MIT</td></tr> | ||
118 | <tr><td>nelmio/cors-bundle</td><td>MIT</td></tr> | ||
119 | <tr><td>ocramius/proxy-manager</td><td>MIT</td></tr> | ||
120 | <tr><td>pagerfanta/pagerfanta</td><td>MIT</td></tr> | ||
121 | <tr><td>paragonie/random_compat</td><td>MIT</td></tr> | ||
122 | <tr><td>phpcollection/phpcollection</td><td>Apache2</td></tr> | ||
123 | <tr><td>phpoption/phpoption</td><td>Apache2</td></tr> | ||
124 | <tr><td>phpzip/phpzip</td><td>LGPL-2.1</td></tr> | ||
125 | <tr><td>psr/log</td><td>MIT</td></tr> | ||
126 | <tr><td>react/promise</td><td>MIT</td></tr> | ||
127 | <tr><td>scheb/two-factor-bundle</td><td>MIT</td></tr> | ||
128 | <tr><td>sensio/distribution-bundle</td><td>MIT</td></tr> | ||
129 | <tr><td>sensio/framework-extra-bundle</td><td>MIT</td></tr> | ||
130 | <tr><td>sensiolabs/security-checker</td><td>MIT</td></tr> | ||
131 | <tr><td>simplepie/simplepie</td><td>BSD-3-Clause</td></tr> | ||
132 | <tr><td>smalot/pdfparser</td><td>GPL-3.0</td></tr> | ||
133 | <tr><td>sonata-project/google-authenticator</td><td>MIT</td></tr> | ||
134 | <tr><td>stof/doctrine-extensions-bundle</td><td>MIT</td></tr> | ||
135 | <tr><td>swiftmailer/swiftmailer</td><td>MIT</td></tr> | ||
136 | <tr><td>symfony/assetic-bundle</td><td>MIT</td></tr> | ||
137 | <tr><td>symfony/monolog-bundle</td><td>MIT</td></tr> | ||
138 | <tr><td>All of Symfony</td><td>MIT-licenced</td></tr> | ||
139 | <tr><td>tecnickcom/tcpdf</td><td>LGPLv3</td></tr> | ||
140 | <tr><td>twig/extensions</td><td>MIT</td></tr> | ||
141 | <tr><td>twig/twig</td><td>BSD-3-Clause</td></tr> | ||
142 | <tr><td>wallabag/php-mobi</td><td>Apache-2.0</td></tr> | ||
143 | <tr><td>willdurand/hateoas</td><td>MIT</td></tr> | ||
144 | <tr><td>willdurand/hateoas-bundle</td><td>MIT</td></tr> | ||
145 | <tr><td>willdurand/jsonp-callback-validator</td><td>MIT</td></tr> | ||
146 | <tr><td>willdurand/negotiation</td><td>MIT</td></tr> | ||
147 | <tr><td>zendframework/zend-code</td><td>BSD-3-Clause</td></tr> | ||
148 | <tr><td>zendframework/zend-eventmanager</td><td>BSD-3-Clause</td></tr> | ||
149 | <tr><td>doctrine/data-fixtures</td><td>MIT</td></tr> | ||
150 | <tr><td>doctrine/doctrine-fixtures-bundle</td><td>MIT</td></tr> | ||
151 | <tr><td>phpdocumentor/reflection-docblock</td><td>MIT</td></tr> | ||
152 | <tr><td>phpspec/prophecy</td><td>MIT</td></tr> | ||
153 | <tr><td>phpunit/php-code-coverage</td><td>BSD-3-Clause</td></tr> | ||
154 | <tr><td>phpunit/php-file-iterator</td><td>BSD-3-Clause</td></tr> | ||
155 | <tr><td>phpunit/php-text-template</td><td>BSD-3-Clause</td></tr> | ||
156 | <tr><td>phpunit/php-timer</td><td>BSD-3-Clause</td></tr> | ||
157 | <tr><td>phpunit/php-token-stream</td><td>BSD-3-Clause</td></tr> | ||
158 | <tr><td>phpunit/phpunit</td><td>BSD-3-Clause</td></tr> | ||
159 | <tr><td>phpunit/phpunit-mock-objects</td><td>BSD-3-Clause</td></tr> | ||
160 | <tr><td>sebastian/comparator</td><td>BSD-3-Clause</td></tr> | ||
161 | <tr><td>sebastian/diff</td><td>BSD-3-Clause</td></tr> | ||
162 | <tr><td>sebastian/environment</td><td>BSD-3-Clause</td></tr> | ||
163 | <tr><td>sebastian/exporter</td><td>BSD-3-Clause</td></tr> | ||
164 | <tr><td>sebastian/global-state</td><td>BSD-3-Clause</td></tr> | ||
165 | <tr><td>sebastian/recursion-context</td><td>BSD-3-Clause</td></tr> | ||
166 | <tr><td>sebastian/version</td><td>BSD-3-Clause</td></tr> | ||
167 | <tr><td>sensio/generator-bundle</td><td>MIT</td></tr> | ||
168 | <tr><td>symfony/phpunit-bridge</td><td>MIT</td></tr> | ||
169 | </table> | ||
170 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig deleted file mode 100644 index b529a0ac..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'howto.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <h2>{{ 'howto.page_title'|trans }}</h2> | ||
7 | |||
8 | <p>{{ 'howto.page_description'|trans }}</p> | ||
9 | <ul> | ||
10 | <li><a href="{{ path('new') }}">{{ 'howto.form.description'|trans }}</a></li> | ||
11 | </ul> | ||
12 | <h3>{{ 'howto.top_menu.browser_addons'|trans }}</h3> | ||
13 | <ul> | ||
14 | <li><a href="{{ addonsUrl.firefox }}" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li> | ||
15 | <li><a href="{{ addonsUrl.chrome }}" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li> | ||
16 | </ul> | ||
17 | <h3>{{ 'howto.top_menu.mobile_apps'|trans }}</h3> | ||
18 | <ul> | ||
19 | <li>Android: <a href="{{ addonsUrl.f_droid }}" target="_blank">{{ 'howto.mobile_apps.android.via_f_droid'|trans }}</a> / <a href="{{ addonsUrl.google_play }}" target="_blank">{{ 'howto.mobile_apps.android.via_google_play'|trans }}</a></li> | ||
20 | <li>iOS: <a href="{{ addonsUrl.ios }}" target="_blank">{{ 'howto.mobile_apps.ios'|trans }}</a></li> | ||
21 | <li>Windows Phone: <a href="{{ addonsUrl.windows }}" target="_blank">{{ 'howto.mobile_apps.windows'|trans }}</a></li> | ||
22 | </ul> | ||
23 | <h3>{{ 'howto.top_menu.bookmarklet'|trans }}</h3> | ||
24 | <p> | ||
25 | {{ 'howto.bookmarklet.description'|trans }} | ||
26 | {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %} | ||
27 | |||
28 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig deleted file mode 100644 index b3d3d5a0..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/quickstart.html.twig +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | |||
7 | <h3>{{ 'quickstart.intro.title'|trans }}</h3> | ||
8 | <p>{{ 'quickstart.intro.paragraph_1'|trans }}</p> | ||
9 | <p>{{ 'quickstart.intro.paragraph_2'|trans }}</p> | ||
10 | |||
11 | <h4>{{ 'quickstart.configure.title'|trans }}</h4> | ||
12 | <ul> | ||
13 | <li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li> | ||
14 | <li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.rss'|trans }}</a></li> | ||
15 | <li><a href="{{ path('config') }}#set5">{{ 'quickstart.configure.tagging_rules'|trans }}</a></li> | ||
16 | </ul> | ||
17 | |||
18 | {% if is_granted('ROLE_SUPER_ADMIN') %} | ||
19 | <h4>{{ 'quickstart.admin.title'|trans }}</h4> | ||
20 | <p>{{ 'quickstart.admin.description'|trans }}</p> | ||
21 | <ul> | ||
22 | <li><a href="{{ path('config') }}#set6">{{ 'quickstart.admin.new_user'|trans }}</a></li> | ||
23 | <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{{ 'quickstart.admin.analytics'|trans }}</a></li> | ||
24 | <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{{ 'quickstart.admin.sharing'|trans }}</a></li> | ||
25 | <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{{ 'quickstart.admin.export'|trans }}</a></li> | ||
26 | <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{{ 'quickstart.admin.import'|trans }}</a></li> | ||
27 | </ul> | ||
28 | {% endif %} | ||
29 | |||
30 | <h4>{{ 'quickstart.first_steps.title'|trans }}</h4> | ||
31 | <ul> | ||
32 | <li><a href="{{ path('new') }}">{{ 'quickstart.first_steps.new_article'|trans }}</a></li> | ||
33 | <li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li> | ||
34 | </ul> | ||
35 | |||
36 | <h4>{{ 'quickstart.migrate.title'|trans }}</h4> | ||
37 | <p>{{ 'quickstart.migrate.description'|trans }}</p> | ||
38 | <ul> | ||
39 | <li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li> | ||
40 | <li><a href="{{ path('import_wallabag_v1') }}">{{ 'quickstart.migrate.wallabag_v1'|trans }}</a></li> | ||
41 | <li><a href="{{ path('import_wallabag_v2') }}">{{ 'quickstart.migrate.wallabag_v2'|trans }}</a></li> | ||
42 | </ul> | ||
43 | |||
44 | <h4>{{ 'quickstart.developer.title'|trans }}</h4> | ||
45 | <ul> | ||
46 | <li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li> | ||
47 | </ul> | ||
48 | |||
49 | <h4>{{ 'quickstart.docs.title'|trans }}</h4> | ||
50 | <ul> | ||
51 | <li><a href="http://doc.wallabag.org/en/master/user/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li> | ||
52 | <li><a href="http://doc.wallabag.org/en/master/user/download_articles.html">{{ 'quickstart.docs.export'|trans }}</a></li> | ||
53 | <li><a href="http://doc.wallabag.org/en/master/user/filters.html">{{ 'quickstart.docs.search_filters'|trans }}</a></li> | ||
54 | <li><a href="http://doc.wallabag.org/en/master/user/errors_during_fetching.html">{{ 'quickstart.docs.fetching_errors'|trans }}</a></li> | ||
55 | <li><a href="http://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li> | ||
56 | </ul> | ||
57 | |||
58 | <h4>{{ 'quickstart.support.title'|trans }}</h4> | ||
59 | <p>{{ 'quickstart.support.description'|trans }}</p> | ||
60 | <ul> | ||
61 | <li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li> | ||
62 | <li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li> | ||
63 | <li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li> | ||
64 | </ul> | ||
65 | |||
66 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig index 524a1d23..1e2c6b42 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig | |||
@@ -9,7 +9,11 @@ | |||
9 | 9 | ||
10 | <ul> | 10 | <ul> |
11 | {% for tag in tags %} | 11 | {% for tag in tags %} |
12 | <li id="tag-{{ tag.id|e }}">{{tag.label}} ({{ tag.getEntriesByUserId(app.user.id) | length }})</li> | 12 | <li id="tag-{{ tag.id|e }}"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.nbEntries | length }})</a></li> |
13 | {% endfor %} | 13 | {% endfor %} |
14 | </ul> | 14 | </ul> |
15 | |||
16 | <div> | ||
17 | <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a> | ||
18 | </div> | ||
15 | {% endblock %} | 19 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig index 2c15ad95..a046f7cf 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig | |||
@@ -2,29 +2,19 @@ | |||
2 | 2 | ||
3 | {% block css %} | 3 | {% block css %} |
4 | {{ parent() }} | 4 | {{ parent() }} |
5 | 5 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/baggy/css/style.min.css') }}" media="screen,projection,print"/> | |
6 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/baggy/css/ratatouille.css') }}" media="all"> | ||
7 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/baggy/css/font.css') }}" media="all"> | ||
8 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/baggy/css/main.css') }}" media="all"> | ||
9 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/baggy/css/messages.css') }}" media="all"> | ||
10 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/baggy/css/print.css') }}" media="print"> | ||
11 | {% endblock %} | 6 | {% endblock %} |
12 | 7 | ||
13 | {% block scripts %} | 8 | {% block scripts %} |
14 | {{ parent() }} | 9 | {{ parent() }} |
15 | 10 | <script src="{{ asset('bundles/wallabagcore/themes/baggy/js/baggy.min.js') }}"></script> | |
16 | <script src="{{ asset('bundles/wallabagcore/themes/baggy/js/init.js') }}"></script> | ||
17 | <script src="{{ asset('bundles/wallabagcore/themes/baggy/js/closeMessage.js') }}"></script> | ||
18 | <script src="{{ asset('bundles/wallabagcore/themes/baggy/js/autoClose.js') }}"></script> | ||
19 | <script src="{{ asset('bundles/wallabagcore/themes/baggy/js/saveLink.js') }}"></script> | ||
20 | <script src="{{ asset('bundles/wallabagcore/themes/baggy/js/popupForm.js') }}"></script> | ||
21 | {% endblock %} | 11 | {% endblock %} |
22 | 12 | ||
23 | {% block header %} | 13 | {% block header %} |
24 | <header class="w600p center mbm"> | 14 | <header class="w600p center mbm"> |
25 | <h1 class="logo"> | 15 | <h1 class="logo"> |
26 | {% block logo %} | 16 | {% block logo %} |
27 | <img width="100" height="100" src="{{ asset('bundles/wallabagcore/themes/baggy/img/logo-w.png') }}" alt="wallabag logo" /> | 17 | <img width="100" height="100" src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-w.png') }}" alt="wallabag logo" /> |
28 | {% endblock %} | 18 | {% endblock %} |
29 | </h1> | 19 | </h1> |
30 | </header> | 20 | </header> |
@@ -33,12 +23,12 @@ | |||
33 | {% block menu %} | 23 | {% block menu %} |
34 | <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button> | 24 | <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button> |
35 | <ul id="links" class="links"> | 25 | <ul id="links" class="links"> |
36 | <li><a href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a></li> | 26 | <li class="menu unread"><a href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a></li> |
37 | <li><a href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a></li> | 27 | <li class="menu starred"><a href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a></li> |
38 | <li><a href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a></li> | 28 | <li class="menu archive"><a href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a></li> |
39 | <li><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li> | 29 | <li class="menu all"><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li> |
40 | <li><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li> | 30 | <li class="menu tag"><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li> |
41 | <li><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li> | 31 | <li class="menu new"><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li> |
42 | <!--<li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a> | 32 | <!--<li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a> |
43 | <div id="search-form" class="messages info popup-form"> | 33 | <div id="search-form" class="messages info popup-form"> |
44 | <form method="get" action="index.php"> | 34 | <form method="get" action="index.php"> |
@@ -50,15 +40,16 @@ | |||
50 | </form> | 40 | </form> |
51 | </div> | 41 | </div> |
52 | </li>--> | 42 | </li>--> |
53 | <li><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li> | 43 | <li class="menu config"><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li> |
54 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 44 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
55 | <li><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li> | 45 | <li class="menu users"><a href="{{ path('user_index') }}">{{ 'menu.left.users_management'|trans }}</a></li> |
46 | <li class="menu internal"><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li> | ||
56 | {% endif %} | 47 | {% endif %} |
57 | <li><a href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a></li> | 48 | <li class="menu import"><a href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a></li> |
58 | <li><a href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a></li> | 49 | <li class="menu howto"><a href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a></li> |
59 | <li><a href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a></li> | 50 | <li class="menu developer"><a href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a></li> |
60 | <li><a href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a></li> | 51 | <li class="menu about"><a href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a></li> |
61 | <li><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a></li> | 52 | <li class="menu logout"><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a></li> |
62 | </ul> | 53 | </ul> |
63 | {% endblock %} | 54 | {% endblock %} |
64 | 55 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/client.html.twig index 78a9dc04..8a5da71a 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/client.html.twig | |||
@@ -13,6 +13,12 @@ | |||
13 | {{ form_errors(form) }} | 13 | {{ form_errors(form) }} |
14 | 14 | ||
15 | <div class="input-field col s12"> | 15 | <div class="input-field col s12"> |
16 | {{ form_label(form.name) }} | ||
17 | {{ form_errors(form.name) }} | ||
18 | {{ form_widget(form.name) }} | ||
19 | </div> | ||
20 | |||
21 | <div class="input-field col s12"> | ||
16 | {{ form_label(form.redirect_uris) }} | 22 | {{ form_label(form.redirect_uris) }} |
17 | {{ form_errors(form.redirect_uris) }} | 23 | {{ form_errors(form.redirect_uris) }} |
18 | {{ form_widget(form.redirect_uris) }} | 24 | {{ form_widget(form.redirect_uris) }} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client_parameters.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/client_parameters.html.twig index b615fa3b..b498cceb 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/client_parameters.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/client_parameters.html.twig | |||
@@ -9,6 +9,7 @@ | |||
9 | <div class="row"> | 9 | <div class="row"> |
10 | <p>{{ 'developer.client_parameter.page_description'|trans }}</p> | 10 | <p>{{ 'developer.client_parameter.page_description'|trans }}</p> |
11 | <ul> | 11 | <ul> |
12 | <li>{{ 'developer.client_parameter.field_name'|trans }}: <strong><pre>{{ client_name }}</pre></strong></li> | ||
12 | <li>{{ 'developer.client_parameter.field_id'|trans }}: <strong><pre>{{ client_id }}</pre></strong></li> | 13 | <li>{{ 'developer.client_parameter.field_id'|trans }}: <strong><pre>{{ client_id }}</pre></strong></li> |
13 | <li>{{ 'developer.client_parameter.field_secret'|trans }}: <strong><pre>{{ client_secret }}</pre></strong></li> | 14 | <li>{{ 'developer.client_parameter.field_secret'|trans }}: <strong><pre>{{ client_secret }}</pre></strong></li> |
14 | </ul> | 15 | </ul> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/howto_app.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/howto_app.html.twig index acbc2c88..acbc2c88 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/howto_app.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/howto_app.html.twig | |||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/index.html.twig index 001c5cbb..3430c0d4 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Developer/index.html.twig | |||
@@ -28,7 +28,7 @@ | |||
28 | <ul class="collapsible" data-collapsible="expandable"> | 28 | <ul class="collapsible" data-collapsible="expandable"> |
29 | {% for client in clients %} | 29 | {% for client in clients %} |
30 | <li> | 30 | <li> |
31 | <div class="collapsible-header">#{{ client.id }}</div> | 31 | <div class="collapsible-header">{{ client.name }} - #{{ client.id }}</div> |
32 | <div class="collapsible-body"> | 32 | <div class="collapsible-body"> |
33 | <table class="striped"> | 33 | <table class="striped"> |
34 | <tr> | 34 | <tr> |
@@ -49,9 +49,9 @@ | |||
49 | </tr> | 49 | </tr> |
50 | </table> | 50 | </table> |
51 | <p> | 51 | <p> |
52 | {{ 'developer.remove.warn_message_1'|trans }}<br/> | 52 | {{ 'developer.remove.warn_message_1'|trans({'%name%': client.name }) }}<br/> |
53 | {{ 'developer.remove.warn_message_2'|trans }}<br/> | 53 | {{ 'developer.remove.warn_message_2'|trans({'%name%': client.name }) }}<br/> |
54 | <a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{{ 'developer.remove.action'|trans }}</a> | 54 | <a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{{ 'developer.remove.action'|trans({'%name%': client.name }) }}</a> |
55 | </p> | 55 | </p> |
56 | </div> | 56 | </div> |
57 | </li> | 57 | </li> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/_title.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/_title.html.twig new file mode 100644 index 00000000..d1c2f203 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/_title.html.twig | |||
@@ -0,0 +1,15 @@ | |||
1 | {% set currentRoute = app.request.attributes.get('_route') %} | ||
2 | |||
3 | {% if currentRoute == 'starred' %} | ||
4 | {{ 'entry.page_titles.starred'|trans }} | ||
5 | {% elseif currentRoute == 'archive' %} | ||
6 | {{ 'entry.page_titles.archived'|trans }} | ||
7 | {% elseif currentRoute == 'all' %} | ||
8 | {{ 'entry.page_titles.filtered'|trans }} | ||
9 | {% elseif currentRoute == 'tag_entries' %} | ||
10 | {{ 'entry.page_titles.filtered_tags'|trans }} | ||
11 | {% elseif currentRoute == 'untagged' %} | ||
12 | {{ 'entry.page_titles.untagged'|trans }} | ||
13 | {% else %} | ||
14 | {{ 'entry.page_titles.unread'|trans }} | ||
15 | {% endif %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/entries.xml.twig index 6cabcf44..288bb54f 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/entries.xml.twig | |||
@@ -16,15 +16,7 @@ | |||
16 | <guid>{{ entry.url }}</guid> | 16 | <guid>{{ entry.url }}</guid> |
17 | <pubDate>{{ entry.createdAt|date('D, d M Y H:i:s') }}</pubDate> | 17 | <pubDate>{{ entry.createdAt|date('D, d M Y H:i:s') }}</pubDate> |
18 | <description> | 18 | <description> |
19 | <![CDATA[ | 19 | <![CDATA[{%- if entry.readingTime > 0 -%}{{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }}{%- else -%}{{ 'entry.list.reading_time_less_one_minute'|trans|raw }}{%- endif %}{{ entry.content|raw -}}]]> |
20 | {%- if entry.readingTime > 0 -%} | ||
21 | {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }} | ||
22 | {%- else -%} | ||
23 | {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} | ||
24 | {%- endif %} | ||
25 | |||
26 | {{ entry.content|raw -}} | ||
27 | ]]> | ||
28 | </description> | 20 | </description> |
29 | </item> | 21 | </item> |
30 | 22 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig new file mode 100644 index 00000000..804adb36 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig | |||
@@ -0,0 +1,54 @@ | |||
1 | <html> | ||
2 | <head> | ||
3 | <title>{{ entry.title | raw }}</title> | ||
4 | <style> | ||
5 | body { | ||
6 | margin: 10px; | ||
7 | font-family: 'Roboto',Verdana,Geneva,sans-serif; | ||
8 | font-size: 16px; | ||
9 | color: #000; | ||
10 | } | ||
11 | header { | ||
12 | text-align: center; | ||
13 | } | ||
14 | |||
15 | header h1 { | ||
16 | font-size: 1.3em; | ||
17 | } | ||
18 | |||
19 | a, | ||
20 | a:hover, | ||
21 | a:visited { | ||
22 | color: #000; | ||
23 | } | ||
24 | |||
25 | article { | ||
26 | margin: 0 auto; | ||
27 | width: 600px; | ||
28 | } | ||
29 | </style> | ||
30 | <meta property="og:title" content="{{ entry.title | raw }}" /> | ||
31 | <meta property="og:type" content="article" /> | ||
32 | <meta property="og:url" content="{{ app.request.uri }}" /> | ||
33 | {% set picturePath = app.request.schemeAndHttpHost ~ asset('bundles/wallabagcore/themes/_global/img/logo-other_themes.png') %} | ||
34 | {% if entry.previewPicture is not null %} | ||
35 | {% set picturePath = entry.previewPicture %} | ||
36 | {% endif %} | ||
37 | <meta property="og:image" content="{{ picturePath }}" /> | ||
38 | <meta name="twitter:card" content="summary" /> | ||
39 | <meta name="twitter:image" content="{{ picturePath }}" /> | ||
40 | <meta name="twitter:site" content="@wallabagapp" /> | ||
41 | <meta name="twitter:title" content="{{ entry.title | raw }}" /> | ||
42 | <meta name="twitter:description" content="{{ entry.title | raw }}" /> | ||
43 | </head> | ||
44 | <body> | ||
45 | <header> | ||
46 | <h1>{{ entry.title | raw }}</h1> | ||
47 | <div><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">{{ entry.domainName|removeWww }}</a></div> | ||
48 | <div>{{ "entry.public.shared_by_wallabag"|trans({'%wallabag_instance%': url('homepage')})|raw }}</div> | ||
49 | </header> | ||
50 | <article> | ||
51 | {{ entry.content | raw }} | ||
52 | </article> | ||
53 | </body> | ||
54 | </html> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Mail/forgotPassword.txt.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Mail/forgotPassword.txt.twig new file mode 100644 index 00000000..631bcb88 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Mail/forgotPassword.txt.twig | |||
@@ -0,0 +1,6 @@ | |||
1 | Hello {{username}}! | ||
2 | |||
3 | To reset your password - please visit {{confirmationUrl}} | ||
4 | |||
5 | Regards, | ||
6 | Wallabag bot | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/_bookmarklet.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/_bookmarklet.html.twig new file mode 100644 index 00000000..3385cd53 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/_bookmarklet.html.twig | |||
@@ -0,0 +1 @@ | |||
<a id="bookmarklet" ondragend="this.click();" href="javascript:(function(){var url=location.href||url;var wllbg=window.open('{{ url('bookmarklet') }}?url=' + encodeURI(url),'_blank');})();">bag it!</a> | |||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/about.html.twig index d0b94279..db193e81 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/about.html.twig | |||
@@ -11,11 +11,11 @@ | |||
11 | <div class="row"> | 11 | <div class="row"> |
12 | <div class="div_tabs col s12"> | 12 | <div class="div_tabs col s12"> |
13 | <ul class="tabs"> | 13 | <ul class="tabs"> |
14 | <li class="tab col s3"><a class="active" href="#set1">{{ 'about.top_menu.who_behind_wallabag'|trans }}</a></li> | 14 | <li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'about.top_menu.who_behind_wallabag'|trans }}</a></li> |
15 | <li class="tab col s3"><a href="#set2">{{ 'about.top_menu.getting_help'|trans }}</a></li> | 15 | <li class="tab col s12 m6 l3"><a href="#set2">{{ 'about.top_menu.getting_help'|trans }}</a></li> |
16 | <li class="tab col s3"><a href="#set3">{{ 'about.top_menu.helping'|trans }}</a></li> | 16 | <li class="tab col s12 m6 l3"><a href="#set3">{{ 'about.top_menu.helping'|trans }}</a></li> |
17 | <li class="tab col s3"><a href="#set4">{{ 'about.top_menu.contributors'|trans }}</a></li> | 17 | <li class="tab col s12 m6 l3"><a href="#set4">{{ 'about.top_menu.contributors'|trans }}</a></li> |
18 | <li class="tab col s3"><a href="#set5">{{ 'about.top_menu.third_party'|trans }}</a></li> | 18 | <li class="tab col s12 m6 l3"><a href="#set5">{{ 'about.top_menu.third_party'|trans }}</a></li> |
19 | </ul> | 19 | </ul> |
20 | </div> | 20 | </div> |
21 | 21 | ||
@@ -36,6 +36,7 @@ | |||
36 | <dt>{{ 'about.getting_help.documentation'|trans }}</dt> | 36 | <dt>{{ 'about.getting_help.documentation'|trans }}</dt> |
37 | <dd><a href="http://doc.wallabag.org/en/master/">english</a></dd> | 37 | <dd><a href="http://doc.wallabag.org/en/master/">english</a></dd> |
38 | <dd><a href="http://doc.wallabag.org/fr/master/">français</a></dd> | 38 | <dd><a href="http://doc.wallabag.org/fr/master/">français</a></dd> |
39 | <dd><a href="http://doc.wallabag.org/de/master/">deutsch</a></dd> | ||
39 | 40 | ||
40 | <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt> | 41 | <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt> |
41 | <dd>{{ 'about.getting_help.support'|trans|raw }}</dd> | 42 | <dd>{{ 'about.getting_help.support'|trans|raw }}</dd> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/howto.html.twig index 6a177d6b..67a10190 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/howto.html.twig | |||
@@ -35,7 +35,7 @@ | |||
35 | <div class="col s12"> | 35 | <div class="col s12"> |
36 | <h5>{{ 'howto.top_menu.bookmarklet'|trans }}</h5> | 36 | <h5>{{ 'howto.top_menu.bookmarklet'|trans }}</h5> |
37 | {{ 'howto.bookmarklet.description'|trans }} | 37 | {{ 'howto.bookmarklet.description'|trans }} |
38 | {% include 'WallabagCoreBundle::_bookmarklet.html.twig' %} | 38 | {% include '@WallabagCore/themes/common/Static/_bookmarklet.html.twig' %} |
39 | </div> | 39 | </div> |
40 | 40 | ||
41 | </div> | 41 | </div> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/quickstart.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/quickstart.html.twig new file mode 100644 index 00000000..c8a303a6 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Static/quickstart.html.twig | |||
@@ -0,0 +1,119 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | |||
7 | <div class="row quickstart"> | ||
8 | <div class="col s12"> | ||
9 | <div class="card-panel settings"> | ||
10 | |||
11 | <div class="row"> | ||
12 | <h3>{{ 'quickstart.intro.title'|trans }}</h3> | ||
13 | |||
14 | <ul class="row data"> | ||
15 | <li class="col l4 m6 s12"> | ||
16 | <div class="card teal darken-1"> | ||
17 | <div class="card-content white-text"> | ||
18 | <span class="card-title">{{ 'quickstart.configure.title'|trans }}</span> | ||
19 | <p>{{ 'quickstart.configure.description'|trans }}</p> | ||
20 | </div> | ||
21 | <div class="card-action"> | ||
22 | <ul> | ||
23 | <li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li> | ||
24 | <li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.rss'|trans }}</a></li> | ||
25 | <li><a href="{{ path('config') }}#set5">{{ 'quickstart.more'|trans }}</a></li> | ||
26 | </ul> | ||
27 | </div> | ||
28 | </div> | ||
29 | </li> | ||
30 | |||
31 | <li class="col l4 m6 s12"> | ||
32 | <div class="card green darken-1"> | ||
33 | <div class="card-content white-text"> | ||
34 | <span class="card-title">{{ 'quickstart.first_steps.title'|trans }}</span> | ||
35 | <p>{{ 'quickstart.first_steps.description'|trans }}</p> | ||
36 | </div> | ||
37 | <div class="card-action"> | ||
38 | <ul> | ||
39 | <li><a href="{{ path('new') }}">{{ 'quickstart.first_steps.new_article'|trans }}</a></li> | ||
40 | <li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li> | ||
41 | </ul> | ||
42 | </div> | ||
43 | </div> | ||
44 | </li> | ||
45 | |||
46 | <li class="col l4 m6 s12"> | ||
47 | <div class="card light-green darken-1"> | ||
48 | <div class="card-content white-text"> | ||
49 | <span class="card-title">{{ 'quickstart.migrate.title'|trans }}</span> | ||
50 | <p>{{ 'quickstart.migrate.description'|trans }}</p> | ||
51 | </div> | ||
52 | <div class="card-action"> | ||
53 | <ul> | ||
54 | <li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li> | ||
55 | <li><a href="{{ path('import_readability') }}">{{ 'quickstart.migrate.readability'|trans }}</a></li> | ||
56 | <li><a href="{{ path('import_instapaper') }}">{{ 'quickstart.migrate.instapaper'|trans }}</a></li> | ||
57 | <li><a href="{{ path('import') }}">{{ 'quickstart.more'|trans }}</a></li> | ||
58 | </ul> | ||
59 | </div> | ||
60 | </div> | ||
61 | </li> | ||
62 | |||
63 | <li class="col l4 m6 s12"> | ||
64 | <div class="card blue darken-1"> | ||
65 | <div class="card-content white-text"> | ||
66 | <span class="card-title">{{ 'quickstart.developer.title'|trans }}</span> | ||
67 | <p>{{ 'quickstart.developer.description'|trans }}</p> | ||
68 | </div> | ||
69 | <div class="card-action"> | ||
70 | <ul> | ||
71 | <li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li> | ||
72 | <li><a href="http://doc.wallabag.org/en/master/developer/docker.html">{{ 'quickstart.developer.use_docker'|trans }}</a></li> | ||
73 | <li><a href="http://doc.wallabag.org/en/master/index.html#dev-docs">{{ 'quickstart.more'|trans }}</a></li> | ||
74 | </ul> | ||
75 | </div> | ||
76 | </div> | ||
77 | </li> | ||
78 | |||
79 | <li class="col l4 m6 s12"> | ||
80 | <div class="card light-blue darken-1"> | ||
81 | <div class="card-content white-text"> | ||
82 | <span class="card-title">{{ 'quickstart.docs.title'|trans }}</span> | ||
83 | <p>{{ 'quickstart.docs.description'|trans }}</p> | ||
84 | </div> | ||
85 | <div class="card-action"> | ||
86 | <ul> | ||
87 | <li><a href="http://doc.wallabag.org/en/master/user/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li> | ||
88 | <li><a href="http://doc.wallabag.org/en/master/user/download_articles.html">{{ 'quickstart.docs.export'|trans }}</a></li> | ||
89 | <li><a href="http://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li> | ||
90 | </ul> | ||
91 | </div> | ||
92 | </div> | ||
93 | </li> | ||
94 | |||
95 | <li class="col l4 m6 s12"> | ||
96 | <div class="card cyan darken-1"> | ||
97 | <div class="card-content white-text"> | ||
98 | <span class="card-title">{{ 'quickstart.support.title'|trans }}</span> | ||
99 | <p>{{ 'quickstart.support.description'|trans }}</p> | ||
100 | </div> | ||
101 | <div class="card-action"> | ||
102 | <ul> | ||
103 | <li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li> | ||
104 | <li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li> | ||
105 | <li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li> | ||
106 | </ul> | ||
107 | </div> | ||
108 | </div> | ||
109 | </li> | ||
110 | |||
111 | </ul> | ||
112 | |||
113 | </div> | ||
114 | |||
115 | </div> | ||
116 | </div> | ||
117 | </div> | ||
118 | |||
119 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig index afd5b499..19faddc0 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig | |||
@@ -11,14 +11,11 @@ | |||
11 | <div class="row"> | 11 | <div class="row"> |
12 | <div class="div_tabs col s12"> | 12 | <div class="div_tabs col s12"> |
13 | <ul class="tabs"> | 13 | <ul class="tabs"> |
14 | <li class="tab col s3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li> | 14 | <li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li> |
15 | <li class="tab col s3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li> | 15 | <li class="tab col s12 m6 l3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li> |
16 | <li class="tab col s3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li> | 16 | <li class="tab col s12 m6 l3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li> |
17 | <li class="tab col s3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li> | 17 | <li class="tab col s12 m6 l3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li> |
18 | <li class="tab col s3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li> | 18 | <li class="tab col s12 m6 l3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li> |
19 | {% if is_granted('ROLE_SUPER_ADMIN') %} | ||
20 | <li class="tab col s3"><a href="#set6">{{ 'config.tab_menu.new_user'|trans }}</a></li> | ||
21 | {% endif %} | ||
22 | </ul> | 19 | </ul> |
23 | </div> | 20 | </div> |
24 | 21 | ||
@@ -62,6 +59,18 @@ | |||
62 | </div> | 59 | </div> |
63 | </div> | 60 | </div> |
64 | 61 | ||
62 | <div class="row"> | ||
63 | <div class="input-field col s12"> | ||
64 | {{ form_label(form.config.pocket_consumer_key) }} | ||
65 | {{ form_errors(form.config.pocket_consumer_key) }} | ||
66 | {{ form_widget(form.config.pocket_consumer_key) }} | ||
67 | <p> | ||
68 | » | ||
69 | <a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a> | ||
70 | </p> | ||
71 | </div> | ||
72 | </div> | ||
73 | |||
65 | {{ form_widget(form.config.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | 74 | {{ form_widget(form.config.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} |
66 | {{ form_rest(form.config) }} | 75 | {{ form_rest(form.config) }} |
67 | </form> | 76 | </form> |
@@ -145,11 +154,9 @@ | |||
145 | <div class="row"> | 154 | <div class="row"> |
146 | <div class="input-field col s12"> | 155 | <div class="input-field col s12"> |
147 | {{ 'config.form_user.two_factor_description'|trans }} | 156 | {{ 'config.form_user.two_factor_description'|trans }} |
148 | </div> | ||
149 | </div> | ||
150 | 157 | ||
151 | <div class="row"> | 158 | <br /> |
152 | <div class="input-field col s12"> | 159 | |
153 | {{ form_widget(form.user.twoFactorAuthentication) }} | 160 | {{ form_widget(form.user.twoFactorAuthentication) }} |
154 | {{ form_label(form.user.twoFactorAuthentication) }} | 161 | {{ form_label(form.user.twoFactorAuthentication) }} |
155 | {{ form_errors(form.user.twoFactorAuthentication) }} | 162 | {{ form_errors(form.user.twoFactorAuthentication) }} |
@@ -196,6 +203,7 @@ | |||
196 | </div> | 203 | </div> |
197 | 204 | ||
198 | <div id="set5" class="col s12"> | 205 | <div id="set5" class="col s12"> |
206 | {% if app.user.config.taggingRules is not empty %} | ||
199 | <div class="row"> | 207 | <div class="row"> |
200 | <div class="input-field col s12"> | 208 | <div class="input-field col s12"> |
201 | <ul> | 209 | <ul> |
@@ -205,14 +213,18 @@ | |||
205 | « {{ tagging_rule.rule }} » | 213 | « {{ tagging_rule.rule }} » |
206 | {{ 'config.form_rules.then_tag_as_label'|trans }} | 214 | {{ 'config.form_rules.then_tag_as_label'|trans }} |
207 | « {{ tagging_rule.tags|join(', ') }} » | 215 | « {{ tagging_rule.tags|join(', ') }} » |
216 | <a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}"> | ||
217 | <i class="tool grey-text mode_edit material-icons">mode_edit</i> | ||
218 | </a> | ||
208 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}"> | 219 | <a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}"> |
209 | <i class="tool grey-text delete mdi-action-delete"></i> | 220 | <i class="tool grey-text delete material-icons">delete</i> |
210 | </a> | 221 | </a> |
211 | </li> | 222 | </li> |
212 | {% endfor %} | 223 | {% endfor %} |
213 | </ul> | 224 | </ul> |
214 | </div> | 225 | </div> |
215 | </div> | 226 | </div> |
227 | {% endif %} | ||
216 | 228 | ||
217 | {{ form_start(form.new_tagging_rule) }} | 229 | {{ form_start(form.new_tagging_rule) }} |
218 | {{ form_errors(form.new_tagging_rule) }} | 230 | {{ form_errors(form.new_tagging_rule) }} |
@@ -322,49 +334,6 @@ | |||
322 | </div> | 334 | </div> |
323 | </div> | 335 | </div> |
324 | </div> | 336 | </div> |
325 | |||
326 | {% if is_granted('ROLE_SUPER_ADMIN') %} | ||
327 | <div id="set6" class="col s12"> | ||
328 | {{ form_start(form.new_user) }} | ||
329 | {{ form_errors(form.new_user) }} | ||
330 | |||
331 | <div class="row"> | ||
332 | <div class="input-field col s12"> | ||
333 | {{ form_label(form.new_user.username) }} | ||
334 | {{ form_errors(form.new_user.username) }} | ||
335 | {{ form_widget(form.new_user.username) }} | ||
336 | </div> | ||
337 | </div> | ||
338 | |||
339 | <div class="row"> | ||
340 | <div class="input-field col s12"> | ||
341 | {{ form_label(form.new_user.plainPassword.first) }} | ||
342 | {{ form_errors(form.new_user.plainPassword.first) }} | ||
343 | {{ form_widget(form.new_user.plainPassword.first) }} | ||
344 | </div> | ||
345 | </div> | ||
346 | |||
347 | <div class="row"> | ||
348 | <div class="input-field col s12"> | ||
349 | {{ form_label(form.new_user.plainPassword.second) }} | ||
350 | {{ form_errors(form.new_user.plainPassword.second) }} | ||
351 | {{ form_widget(form.new_user.plainPassword.second) }} | ||
352 | </div> | ||
353 | </div> | ||
354 | |||
355 | <div class="row"> | ||
356 | <div class="input-field col s12"> | ||
357 | {{ form_label(form.new_user.email) }} | ||
358 | {{ form_errors(form.new_user.email) }} | ||
359 | {{ form_widget(form.new_user.email) }} | ||
360 | </div> | ||
361 | </div> | ||
362 | |||
363 | {{ form_widget(form.new_user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | ||
364 | {{ form_rest(form.new_user) }} | ||
365 | </form> | ||
366 | </div> | ||
367 | {% endif %} | ||
368 | </div> | 337 | </div> |
369 | 338 | ||
370 | </div> | 339 | </div> |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client.html.twig deleted file mode 100644 index 78a9dc04..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client.html.twig +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'developer.client.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | |||
10 | <div class="row"> | ||
11 | <p>{{ 'developer.client.page_description'|trans }}</p> | ||
12 | {{ form_start(form) }} | ||
13 | {{ form_errors(form) }} | ||
14 | |||
15 | <div class="input-field col s12"> | ||
16 | {{ form_label(form.redirect_uris) }} | ||
17 | {{ form_errors(form.redirect_uris) }} | ||
18 | {{ form_widget(form.redirect_uris) }} | ||
19 | </div> | ||
20 | |||
21 | <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client.action_back'|trans }}</a> | ||
22 | {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | ||
23 | |||
24 | {{ form_rest(form) }} | ||
25 | </div> | ||
26 | |||
27 | </div> | ||
28 | </div> | ||
29 | </div> | ||
30 | |||
31 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client_parameters.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client_parameters.html.twig deleted file mode 100644 index b615fa3b..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/client_parameters.html.twig +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'developer.client_parameter.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | <div class="row"> | ||
10 | <p>{{ 'developer.client_parameter.page_description'|trans }}</p> | ||
11 | <ul> | ||
12 | <li>{{ 'developer.client_parameter.field_id'|trans }}: <strong><pre>{{ client_id }}</pre></strong></li> | ||
13 | <li>{{ 'developer.client_parameter.field_secret'|trans }}: <strong><pre>{{ client_secret }}</pre></strong></li> | ||
14 | </ul> | ||
15 | |||
16 | <a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client_parameter.back'|trans }}</a> | ||
17 | <a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{{ 'developer.client_parameter.read_howto'|trans }}</a> | ||
18 | </div> | ||
19 | </div> | ||
20 | </div> | ||
21 | </div> | ||
22 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/howto_app.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/howto_app.html.twig deleted file mode 100644 index acbc2c88..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/howto_app.html.twig +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'developer.howto.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block css %} | ||
6 | {{ parent() }} | ||
7 | <link rel="stylesheet" href="{{ asset('https://cdnjs.cloudflare.com/ajax/libs/prism/1.4.1/themes/prism-dark.min.css') }}"> | ||
8 | {% endblock %} | ||
9 | |||
10 | {% block content %} | ||
11 | <div class="row"> | ||
12 | <div class="col s12"> | ||
13 | <div class="card-panel settings"> | ||
14 | |||
15 | <div class="row"> | ||
16 | <p>{{ 'developer.howto.description.paragraph_1'|trans|raw }}</p> | ||
17 | <p>{{ 'developer.howto.description.paragraph_2'|trans }}</p> | ||
18 | <p>{{ 'developer.howto.description.paragraph_3'|trans({'%link%': path('developer_create_client')})|raw }}</p> | ||
19 | <p>{{ 'developer.howto.description.paragraph_4'|trans }}</p> | ||
20 | <p> | ||
21 | <pre><code class="language-bash">http POST http://v2.wallabag.org/oauth/v2/token \ | ||
22 | grant_type=password \ | ||
23 | client_id=12_5um6nz50ceg4088c0840wwc0kgg44g00kk84og044ggkscso0k \ | ||
24 | client_secret=3qd12zpeaxes8cwg8c0404g888co4wo8kc4gcw0occww8cgw4k \ | ||
25 | username=yourUsername \ | ||
26 | password=yourPassw0rd</code></pre> | ||
27 | </p> | ||
28 | <p>{{ 'developer.howto.description.paragraph_5'|trans }}</p> | ||
29 | <p> | ||
30 | <pre><code class="language-bash">HTTP/1.1 200 OK | ||
31 | Cache-Control: no-store, private | ||
32 | Connection: close | ||
33 | Content-Type: application/json | ||
34 | Date: Tue, 06 Oct 2015 18:24:03 GMT | ||
35 | Host: localhost:8000 | ||
36 | Pragma: no-cache | ||
37 | X-Debug-Token: be00a1 | ||
38 | X-Debug-Token-Link: /profiler/be00a1 | ||
39 | X-Powered-By: PHP/5.5.9-1ubuntu4.13 | ||
40 | { | ||
41 | "access_token": "ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw", | ||
42 | "expires_in": 3600, | ||
43 | "refresh_token": "ODBjODU1NWUwNmUzZTBkNDQ5YWVlZTVlMjQ2Y2I0OWM2NTM1ZGM2M2Y3MDhjMTViM2U2MzYxYzRkMDk5ODRlZg", | ||
44 | "scope": null, | ||
45 | "token_type": "bearer" | ||
46 | }</code></pre> | ||
47 | </p> | ||
48 | <p>{{ 'developer.howto.description.paragraph_6'|trans }}</p> | ||
49 | <p> | ||
50 | <pre><code class="language-bash">http GET http://v2.wallabag.org/api/entries.json \ | ||
51 | "Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre> | ||
52 | </p> | ||
53 | <p>{{ 'developer.howto.description.paragraph_7'|trans }}</p> | ||
54 | <p>{{ 'developer.howto.description.paragraph_8'|trans({'%link%': path('nelmio_api_doc_index')})|raw }}</p> | ||
55 | <p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.howto.back'|trans }}</a></p> | ||
56 | </div> | ||
57 | |||
58 | </div> | ||
59 | </div> | ||
60 | </div> | ||
61 | <script src="{{ asset('https://cdnjs.cloudflare.com/ajax/libs/prism/1.4.1/prism.min.js') }}"></script> | ||
62 | <script src="{{ asset('https://cdnjs.cloudflare.com/ajax/libs/prism/1.4.1/components/prism-bash.min.js') }}"></script> | ||
63 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig index f6941ca5..919f94ec 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig | |||
@@ -1,18 +1,7 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | 1 | {% extends "WallabagCoreBundle::layout.html.twig" %} |
2 | 2 | ||
3 | {% block title %} | 3 | {% block title %} |
4 | {% set currentRoute = app.request.attributes.get('_route') %} | 4 | {% include "@WallabagCore/themes/common/Entry/_title.html.twig" %} |
5 | |||
6 | {% if currentRoute == 'starred' %} | ||
7 | {{ 'entry.page_titles.starred'|trans }} | ||
8 | {% elseif currentRoute == 'archive' %} | ||
9 | {{ 'entry.page_titles.archived'|trans }} | ||
10 | {% elseif currentRoute == 'all' %} | ||
11 | {{ 'entry.page_titles.filtered'|trans }} | ||
12 | {% else %} | ||
13 | {{ 'entry.page_titles.unread'|trans }} | ||
14 | {% endif %} | ||
15 | |||
16 | {% endblock %} | 5 | {% endblock %} |
17 | 6 | ||
18 | {% block content %} | 7 | {% block content %} |
@@ -26,13 +15,18 @@ | |||
26 | <div class="card-body"> | 15 | <div class="card-body"> |
27 | {% if not entry.previewPicture is null %} | 16 | {% if not entry.previewPicture is null %} |
28 | <div class="card-image waves-effect waves-block waves-light"> | 17 | <div class="card-image waves-effect waves-block waves-light"> |
18 | <ul class="card-entry-labels"> | ||
19 | {% for tag in entry.tags | slice(0, 3) %} | ||
20 | <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li> | ||
21 | {% endfor %} | ||
22 | </ul> | ||
29 | <div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div> | 23 | <div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div> |
30 | </div> | 24 | </div> |
31 | {% endif %} | 25 | {% endif %} |
32 | 26 | ||
33 | <div class="card-content"> | 27 | <div class="card-content"> |
34 | {% if not entry.previewPicture is null %} | 28 | {% if not entry.previewPicture is null %} |
35 | <i class="card-title grey-text text-darken-4 activator mdi-navigation-more-horiz right"></i> | 29 | <i class="card-title grey-text text-darken-4 activator material-icons right">more_vert</i> |
36 | {% endif %} | 30 | {% endif %} |
37 | 31 | ||
38 | <span class="card-title dot-ellipsis dot-resize-update"><a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title|raw }}">{{ entry.title|striptags|raw }}</a></span> | 32 | <span class="card-title dot-ellipsis dot-resize-update"><a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title|raw }}">{{ entry.title|striptags|raw }}</a></span> |
@@ -50,13 +44,18 @@ | |||
50 | 44 | ||
51 | {% if entry.previewPicture is null %} | 45 | {% if entry.previewPicture is null %} |
52 | <p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p> | 46 | <p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p> |
47 | <ul class="card-entry-labels-hidden"> | ||
48 | {% for tag in entry.tags | slice(0, 2) %} | ||
49 | <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li> | ||
50 | {% endfor %} | ||
51 | </ul> | ||
53 | {% endif %} | 52 | {% endif %} |
54 | </div> | 53 | </div> |
55 | </div> | 54 | </div> |
56 | 55 | ||
57 | {% if not entry.previewPicture is null %} | 56 | {% if not entry.previewPicture is null %} |
58 | <div class="card-reveal"> | 57 | <div class="card-reveal"> |
59 | <i class="card-title grey-text text-darken-4 mdi-card-close right"></i> | 58 | <i class="card-title grey-text text-darken-4 material-icons right">clear</i> |
60 | <span class="card-title"><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></span> | 59 | <span class="card-title"><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></span> |
61 | 60 | ||
62 | <div class="estimatedTime grey-text"> | 61 | <div class="estimatedTime grey-text"> |
@@ -66,19 +65,25 @@ | |||
66 | </div> | 65 | </div> |
67 | 66 | ||
68 | <p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p> | 67 | <p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p> |
68 | |||
69 | <ul class="card-entry-labels-hidden"> | ||
70 | {% for tag in entry.tags %} | ||
71 | <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li> | ||
72 | {% endfor %} | ||
73 | </ul> | ||
69 | </div> | 74 | </div> |
70 | {% endif %} | 75 | {% endif %} |
71 | 76 | ||
72 | <div class="card-action"> | 77 | <div class="card-action"> |
73 | <span class="bold"> | 78 | <span class="bold"> |
74 | <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a> | 79 | <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a> |
75 | </bold> | 80 | </span> |
76 | 81 | ||
77 | <ul class="tools links right"> | 82 | <ul class="tools right"> |
78 | <li> | 83 | <li> |
79 | <a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text {% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"></a> | 84 | <a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}redo{% endif %}</i></a> |
80 | <a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text {% if entry.isStarred == 0 %}mdi-toggle-star-outline{% else %}mdi-toggle-star{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"></a> | 85 | <a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a> |
81 | <a title="{{ 'entry.list.delete'|trans }}" class="tool grey-text delete mdi-action-delete " href="{{ path('delete_entry', { 'id': entry.id }) }}"></a> | 86 | <a title="{{ 'entry.list.delete'|trans }}" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}"><i class="material-icons">delete</i></a> |
82 | </li> | 87 | </li> |
83 | </ul> | 88 | </ul> |
84 | </div> | 89 | </div> |
@@ -106,6 +111,7 @@ | |||
106 | </div> | 111 | </div> |
107 | 112 | ||
108 | <!-- Filters --> | 113 | <!-- Filters --> |
114 | {% if form is not null %} | ||
109 | <div id="filters" class="side-nav fixed right-aligned"> | 115 | <div id="filters" class="side-nav fixed right-aligned"> |
110 | <form action="{{ path('all') }}"> | 116 | <form action="{{ path('all') }}"> |
111 | 117 | ||
@@ -189,5 +195,6 @@ | |||
189 | 195 | ||
190 | </form> | 196 | </form> |
191 | </div> | 197 | </div> |
192 | {% include "WallabagCoreBundle:Entry:pager.html.twig" with {'entries': entries} %} | 198 | {% endif %} |
199 | |||
193 | {% endblock %} | 200 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig deleted file mode 100644 index 6cabcf44..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.xml.twig +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"> | ||
3 | <channel> | ||
4 | <title>wallabag — {{type}} feed</title> | ||
5 | <link>{{ url('unread') }}</link> | ||
6 | <pubDate>{{ "now"|date('D, d M Y H:i:s') }}</pubDate> | ||
7 | <generator>wallabag</generator> | ||
8 | <description>wallabag {{type}} elements</description> | ||
9 | |||
10 | {% for entry in entries %} | ||
11 | |||
12 | <item> | ||
13 | <title><![CDATA[{{ entry.title }}]]></title> | ||
14 | <source url="{{ url('view', { 'id': entry.id }) }}">wallabag</source> | ||
15 | <link>{{ entry.url }}</link> | ||
16 | <guid>{{ entry.url }}</guid> | ||
17 | <pubDate>{{ entry.createdAt|date('D, d M Y H:i:s') }}</pubDate> | ||
18 | <description> | ||
19 | <![CDATA[ | ||
20 | {%- if entry.readingTime > 0 -%} | ||
21 | {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }} | ||
22 | {%- else -%} | ||
23 | {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} | ||
24 | {%- endif %} | ||
25 | |||
26 | {{ entry.content|raw -}} | ||
27 | ]]> | ||
28 | </description> | ||
29 | </item> | ||
30 | |||
31 | {% endfor %} | ||
32 | |||
33 | </channel> | ||
34 | </rss> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig index 2ee615aa..5188eb01 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig | |||
@@ -13,24 +13,24 @@ | |||
13 | <ul> | 13 | <ul> |
14 | <li> | 14 | <li> |
15 | <a class="waves-effect" href="{{ path('homepage') }}"> | 15 | <a class="waves-effect" href="{{ path('homepage') }}"> |
16 | <i class="mdi-action-exit-to-app"></i> | 16 | <i class="material-icons">exit_to_app</i> |
17 | </a> | 17 | </a> |
18 | </li> | 18 | </li> |
19 | </ul> | 19 | </ul> |
20 | <ul class="right"> | 20 | <ul class="right"> |
21 | <li> | 21 | <li> |
22 | <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> | 22 | <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> |
23 | <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i> | 23 | <i class="material-icons small">{% if entry.isArchived == 0 %}done{% else %}redo{% endif %}</i> |
24 | </a> | 24 | </a> |
25 | </li> | 25 | </li> |
26 | <li> | 26 | <li> |
27 | <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> | 27 | <a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> |
28 | <i class="{% if entry.isStarred == 0 %}mdi-toggle-star-outline{% else %}mdi-toggle-star{% endif %} small"></i> | 28 | <i class="material-icons small">{% if entry.isStarred == 0 %}star_outline{% else %}star{% endif %}</i> |
29 | </a> | 29 | </a> |
30 | </li> | 30 | </li> |
31 | <li> | 31 | <li> |
32 | <a href="#" data-activates="slide-out" class="button-collapse right"> | 32 | <a href="#" data-activates="slide-out" class="button-collapse right"> |
33 | <i class="mdi-navigation-menu"></i> | 33 | <i class="material-icons">menu</i> |
34 | </a> | 34 | </a> |
35 | </li> | 35 | </li> |
36 | </ul> | 36 | </ul> |
@@ -39,7 +39,7 @@ | |||
39 | <ul id="slide-out" class="collapsible side-nav fixed reader-mode" data-collapsible="accordion"> | 39 | <ul id="slide-out" class="collapsible side-nav fixed reader-mode" data-collapsible="accordion"> |
40 | <li class="bold border-bottom hide-on-med-and-down"> | 40 | <li class="bold border-bottom hide-on-med-and-down"> |
41 | <a class="waves-effect collapsible-header" href="{{ path('homepage') }}"> | 41 | <a class="waves-effect collapsible-header" href="{{ path('homepage') }}"> |
42 | <i class="mdi-action-exit-to-app small"></i> | 42 | <i class="material-icons small">exit_to_app</i> |
43 | <span>{{ 'entry.view.left_menu.back_to_homepage'|trans }}</span> | 43 | <span>{{ 'entry.view.left_menu.back_to_homepage'|trans }}</span> |
44 | </a> | 44 | </a> |
45 | <div class="collapsible-body"></div> | 45 | <div class="collapsible-body"></div> |
@@ -47,7 +47,7 @@ | |||
47 | 47 | ||
48 | <li class="bold border-bottom hide-on-med-and-down"> | 48 | <li class="bold border-bottom hide-on-med-and-down"> |
49 | <a class="waves-effect collapsible-header" href="{{ entry.url|e }}"> | 49 | <a class="waves-effect collapsible-header" href="{{ entry.url|e }}"> |
50 | <i class="mdi-content-link small"></i> | 50 | <i class="material-icons small">link</i> |
51 | <span>{{ 'entry.view.left_menu.view_original_article'|trans }}</span> | 51 | <span>{{ 'entry.view.left_menu.view_original_article'|trans }}</span> |
52 | </a> | 52 | </a> |
53 | <div class="collapsible-body"></div> | 53 | <div class="collapsible-body"></div> |
@@ -55,30 +55,35 @@ | |||
55 | 55 | ||
56 | <li class="bold hide-on-med-and-down"> | 56 | <li class="bold hide-on-med-and-down"> |
57 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload"> | 57 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload"> |
58 | <i class="mdi-action-autorenew small"></i> | 58 | <i class="material-icons small">autorenew</i> |
59 | <span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span> | 59 | <span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span> |
60 | </a> | 60 | </a> |
61 | <div class="collapsible-body"></div> | 61 | <div class="collapsible-body"></div> |
62 | </li> | 62 | </li> |
63 | 63 | ||
64 | {% set markAsReadLabel = 'entry.view.left_menu.set_as_unread' %} | ||
65 | {% if entry.isArchived == 0 %} | ||
66 | {% set markAsReadLabel = 'entry.view.left_menu.set_as_read' %} | ||
67 | {% endif %} | ||
68 | |||
64 | <li class="bold hide-on-med-and-down"> | 69 | <li class="bold hide-on-med-and-down"> |
65 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> | 70 | <a class="waves-effect collapsible-header" title="{{ markAsReadLabel|trans }}" href="{{ path('archive_entry', { 'id': entry.id }) }}" id="markAsRead"> |
66 | <i class="{% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %} small"></i> | 71 | <i class="material-icons small">{% if entry.isArchived == 0 %}done{% else %}redo{% endif %}</i> |
67 | <span>{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}</span> | 72 | <span>{{ markAsReadLabel|trans }}</span> |
68 | </a> | 73 | </a> |
69 | <div class="collapsible-body"></div> | 74 | <div class="collapsible-body"></div> |
70 | </li> | 75 | </li> |
71 | 76 | ||
72 | <li class="bold hide-on-med-and-down"> | 77 | <li class="bold hide-on-med-and-down"> |
73 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> | 78 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav"> |
74 | <i class="{% if entry.isStarred == 0 %}mdi-toggle-star-outline{% else %}mdi-toggle-star{% endif %} small"></i> | 79 | <i class="material-icons spall">{% if entry.isStarred == 0 %}star_outline{% else %}star{% endif %}</i> |
75 | <span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span> | 80 | <span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span> |
76 | </a> | 81 | </a> |
77 | <div class="collapsible-body"></div> | 82 | <div class="collapsible-body"></div> |
78 | </li> | 83 | </li> |
79 | <li class="bold border-bottom hide-on-med-and-down"> | 84 | <li class="bold border-bottom hide-on-med-and-down"> |
80 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> | 85 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> |
81 | <i class="mdi-action-delete small"></i> | 86 | <i class="material-icons small">delete</i> |
82 | <span>{{ 'entry.view.left_menu.delete'|trans }}</span> | 87 | <span>{{ 'entry.view.left_menu.delete'|trans }}</span> |
83 | </a> | 88 | </a> |
84 | <div class="collapsible-body"></div> | 89 | <div class="collapsible-body"></div> |
@@ -86,7 +91,7 @@ | |||
86 | 91 | ||
87 | <li class="bold border-bottom hide-on-med-and-down"> | 92 | <li class="bold border-bottom hide-on-med-and-down"> |
88 | <a class="waves-effect collapsible-header" id="nav-btn-add-tag"> | 93 | <a class="waves-effect collapsible-header" id="nav-btn-add-tag"> |
89 | <i class="mdi-action-label-outline small"></i> | 94 | <i class="material-icons small">label_outline</i> |
90 | <span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span> | 95 | <span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span> |
91 | </a> | 96 | </a> |
92 | <div class="collapsible-body"></div> | 97 | <div class="collapsible-body"></div> |
@@ -94,42 +99,57 @@ | |||
94 | 99 | ||
95 | <li class="bold"> | 100 | <li class="bold"> |
96 | <a class="waves-effect collapsible-header"> | 101 | <a class="waves-effect collapsible-header"> |
97 | <i class="mdi-social-share small"></i> | 102 | <i class="material-icons small">share</i> |
98 | <span>{{ 'entry.view.left_menu.share_content'|trans }}</span> | 103 | <span>{{ 'entry.view.left_menu.share_content'|trans }}</span> |
99 | </a> | 104 | </a> |
100 | <div class="collapsible-body"> | 105 | <div class="collapsible-body"> |
101 | <ul> | 106 | <ul> |
107 | {% if craue_setting('share_public') %} | ||
108 | <li> | ||
109 | <a href="{{ path('share', {'id': entry.id }) }}" target="_blank" title="{{ 'entry.view.left_menu.public_link'|trans }}" class="tool icon-eye"> | ||
110 | <span>{{ 'entry.view.left_menu.public_link'|trans }}</span> | ||
111 | </a> | ||
112 | </li> | ||
113 | <li> | ||
114 | <a href="{{ path('delete_share', {'id': entry.id }) }}" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}" class="tool icon-no-eye"> | ||
115 | <span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span> | ||
116 | </a> | ||
117 | </li> | ||
118 | {% endif %} | ||
102 | {% if craue_setting('share_twitter') %} | 119 | {% if craue_setting('share_twitter') %} |
103 | <li> | 120 | <li> |
104 | <a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="twitter"> | 121 | <a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool icon-twitter" title="twitter"> |
105 | <span>twitter</span> | 122 | <span>twitter</span> |
106 | </a> | 123 | </a> |
107 | </li> | 124 | </li> |
108 | {% endif %} | 125 | {% endif %} |
109 | {% if craue_setting('share_shaarli') %} | 126 | {% if craue_setting('share_shaarli') %} |
110 | <li> | 127 | <li> |
111 | <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="shaarli"> | 128 | <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank"> |
129 | <i class="tool icon-image icon-image--shaarli" title="shaarli"></i> | ||
112 | <span>shaarli</span> | 130 | <span>shaarli</span> |
113 | </a> | 131 | </a> |
114 | </li> | 132 | </li> |
115 | {% endif %} | 133 | {% endif %} |
116 | {% if craue_setting('share_diaspora') %} | 134 | {% if craue_setting('share_diaspora') %} |
117 | <li> | 135 | <li> |
118 | <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora}"> | 136 | <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank"> |
137 | <i class="tool icon-image icon-image--diaspora" title="diaspora"></i> | ||
119 | <span>diaspora*</span> | 138 | <span>diaspora*</span> |
120 | </a> | 139 | </a> |
121 | </li> | 140 | </li> |
122 | {% endif %} | 141 | {% endif %} |
123 | {% if craue_setting('carrot') %} | 142 | {% if craue_setting('carrot') %} |
124 | <li> | 143 | <li> |
125 | <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot"> | 144 | <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" title="carrot"> |
145 | <i class="tool icon-image icon-image--carrot"></i> | ||
126 | <span>Carrot</span> | 146 | <span>Carrot</span> |
127 | </a> | 147 | </a> |
128 | </li> | 148 | </li> |
129 | {% endif %} | 149 | {% endif %} |
130 | {% if craue_setting('share_mail') %} | 150 | {% if craue_setting('share_mail') %} |
131 | <li> | 151 | <li> |
132 | <a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{{ 'entry.view.left_menu.share_email_label'|trans }}"> | 152 | <a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}" class="tool email icon icon-mail"> |
133 | <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span> | 153 | <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span> |
134 | </a> | 154 | </a> |
135 | </li> | 155 | </li> |
@@ -141,17 +161,16 @@ | |||
141 | {% if craue_setting('show_printlink') %} | 161 | {% if craue_setting('show_printlink') %} |
142 | <li class="bold border-bottom hide-on-med-and-down"> | 162 | <li class="bold border-bottom hide-on-med-and-down"> |
143 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.print'|trans }}" href="javascript: window.print();"> | 163 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.print'|trans }}" href="javascript: window.print();"> |
144 | <i class="mdi-action-print small"></i> | 164 | <i class="material-icons small">print</i> |
145 | <span>{{ 'entry.view.left_menu.print'|trans }}</span> | 165 | <span>{{ 'entry.view.left_menu.print'|trans }}</span> |
146 | </a> | 166 | </a> |
147 | <div class="collapsible-body"></div> | 167 | <div class="collapsible-body"></div> |
148 | </li> | 168 | </li> |
149 | {% endif %} | 169 | {% endif %} |
150 | 170 | ||
151 | |||
152 | <li class="bold"> | 171 | <li class="bold"> |
153 | <a class="waves-effect collapsible-header"> | 172 | <a class="waves-effect collapsible-header"> |
154 | <i class="mdi-file-file-download small"></i> | 173 | <i class="material-icons small">file_download</i> |
155 | <span>{{ 'entry.view.left_menu.download'|trans }}</span> | 174 | <span>{{ 'entry.view.left_menu.download'|trans }}</span> |
156 | </a> | 175 | </a> |
157 | <div class="collapsible-body"> | 176 | <div class="collapsible-body"> |
@@ -169,7 +188,7 @@ | |||
169 | 188 | ||
170 | <li class="bold hide-on-large-only"> | 189 | <li class="bold hide-on-large-only"> |
171 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> | 190 | <a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', { 'id': entry.id }) }}"> |
172 | <i class="mdi-action-delete small"></i> | 191 | <i class="material-icons small">delete</i> |
173 | <span>{{ 'entry.view.left_menu.delete'|trans }}</span> | 192 | <span>{{ 'entry.view.left_menu.delete'|trans }}</span> |
174 | </a> | 193 | </a> |
175 | <div class="collapsible-body"></div> | 194 | <div class="collapsible-body"></div> |
@@ -177,7 +196,7 @@ | |||
177 | 196 | ||
178 | <li class="bold"> | 197 | <li class="bold"> |
179 | <a class="waves-effect collapsible-header" href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.description'|trans }}"> | 198 | <a class="waves-effect collapsible-header" href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.description'|trans }}"> |
180 | <i class="mdi-alert-error small"></i> | 199 | <i class="material-icons small">error</i> |
181 | <span>{{ 'entry.view.left_menu.problem.label'|trans }}</span> | 200 | <span>{{ 'entry.view.left_menu.problem.label'|trans }}</span> |
182 | </a> | 201 | </a> |
183 | <div class="collapsible-body"></div> | 202 | <div class="collapsible-body"></div> |
@@ -193,21 +212,24 @@ | |||
193 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> | 212 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> |
194 | </header> | 213 | </header> |
195 | <aside> | 214 | <aside> |
196 | <span class="link mdi-action-today" title="{{ 'entry.view.created_at'|trans }}"> {{ entry.createdAt|date('Y-m-d') }}</span> | ||
197 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} | 215 | {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} |
198 | <span class="link mdi-action-query-builder"> | 216 | <i class="material-icons">timer</i> |
217 | <span class="link"> | ||
199 | {% if readingTime > 0 %} | 218 | {% if readingTime > 0 %} |
200 | {{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }} | 219 | {{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }} |
201 | {% else %} | 220 | {% else %} |
202 | {{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }} | 221 | {{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }} |
203 | {% endif %} | 222 | {% endif %} |
204 | </span> | 223 | </span> |
205 | <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link mdi-content-link"> <span>{{ entry.domainName|removeWww }}</span></a> | 224 | <i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i><span class="link">{{ entry.createdAt|date('Y-m-d') }}</span> |
206 | <span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> | 225 | <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool"> |
226 | <i class="material-icons link">link</i> <span class="link">{{ entry.domainName|removeWww }}</span> | ||
227 | </a> | ||
228 | <span class="tool"><i class="material-icons link">comment</i></span> <span class="link">{{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> | ||
207 | <div id="list"> | 229 | <div id="list"> |
208 | {% for tag in entry.tags %} | 230 | {% for tag in entry.tags %} |
209 | <div class="chip"> | 231 | <div class="chip"> |
210 | {{ tag.label }} <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="mdi-action-delete"></i></a> | 232 | <a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="material-icons">delete</i></a> |
211 | </div> | 233 | </div> |
212 | {% endfor %} | 234 | {% endfor %} |
213 | </div> | 235 | </div> |
@@ -226,27 +248,17 @@ | |||
226 | </article> | 248 | </article> |
227 | </div> | 249 | </div> |
228 | 250 | ||
229 | <script type="text/javascript"> | 251 | <script id="annotationroutes" type="application/json"> |
230 | 252 | { | |
231 | var app = new annotator.App(); | 253 | "prefix": "", |
232 | app.include(annotator.ui.main, { | 254 | "urls": { |
233 | element: document.querySelector('article') | 255 | "create": "{{ path('annotations_post_annotation', { 'entry': entry.id }) }}", |
234 | }); | 256 | "update": "{{ path('annotations_put_annotation', { 'annotation': 'idAnnotation' }) }}", |
235 | app.include(annotator.storage.http, { | 257 | "destroy": "{{ path('annotations_delete_annotation', { 'annotation': 'idAnnotation' }) }}", |
236 | prefix: '', | 258 | "search": "{{ path('annotations_get_annotations', { 'entry': entry.id }) }}" |
237 | urls: { | 259 | }, |
238 | create: '{{ path('annotations_post_annotation', { 'entry': entry.id }) }}', | 260 | "entryId": "{{ entry.id }}" |
239 | update: '{{ path('annotations_put_annotation', { 'annotation': 'idAnnotation' }) }}', | 261 | }</script> |
240 | destroy: '{{ path('annotations_delete_annotation', { 'annotation': 'idAnnotation' }) }}', | ||
241 | search: '{{ path('annotations_get_annotations', { 'entry': entry.id }) }}' | ||
242 | } | ||
243 | }); | ||
244 | app | ||
245 | .start() | ||
246 | .then(function () { | ||
247 | app.annotations.load({entry: {{ entry.id }}}); | ||
248 | }); | ||
249 | </script> | ||
250 | 262 | ||
251 | {% endblock %} | 263 | {% endblock %} |
252 | 264 | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Exception/error.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Exception/error.html.twig new file mode 100644 index 00000000..6be78edb --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Exception/error.html.twig | |||
@@ -0,0 +1,30 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'error.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | {% block messages %}{% endblock %} | ||
9 | |||
10 | {% block content %} | ||
11 | <main class="valign-wrapper"> | ||
12 | <div class="valign row"> | ||
13 | <div class="card sw"> | ||
14 | <div class="center"><img src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-other_themes.png') }}" alt="wallabag logo" /></div> | ||
15 | <div class="card-content"> | ||
16 | <div class="row"> | ||
17 | <h5>{{ status_code }}: {{ status_text }}</h5> | ||
18 | <p>{{ exception.message }}</p> | ||
19 | {# {% for trace in exception.trace %} | ||
20 | <p>{{ trace.class }} - {{ trace.type }} - {{ trace.file }} - {{ trace.line }}</p> | ||
21 | {% endfor %} #} | ||
22 | </div> | ||
23 | </div> | ||
24 | </div> | ||
25 | </div> | ||
26 | </main> | ||
27 | {% endblock %} | ||
28 | |||
29 | {% block footer %} | ||
30 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig deleted file mode 100644 index 59dd037b..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Static/quickstart.html.twig +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | |||
7 | <div class="row"> | ||
8 | <div class="col s12"> | ||
9 | <div class="card-panel settings"> | ||
10 | |||
11 | <div class="row"> | ||
12 | <h3>{{ 'quickstart.intro.title'|trans }}</h3> | ||
13 | <p>{{ 'quickstart.intro.paragraph_1'|trans }}</p> | ||
14 | <p>{{ 'quickstart.intro.paragraph_2'|trans }}</p> | ||
15 | |||
16 | <h4>{{ 'quickstart.configure.title'|trans }}</h4> | ||
17 | <ul> | ||
18 | <li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li> | ||
19 | <li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.rss'|trans }}</a></li> | ||
20 | <li><a href="{{ path('config') }}#set5">{{ 'quickstart.configure.tagging_rules'|trans }}</a></li> | ||
21 | </ul> | ||
22 | |||
23 | {% if is_granted('ROLE_SUPER_ADMIN') %} | ||
24 | <h4>{{ 'quickstart.admin.title'|trans }}</h4> | ||
25 | <p>{{ 'quickstart.admin.description'|trans }}</p> | ||
26 | <ul> | ||
27 | <li><a href="{{ path('config') }}#set6">{{ 'quickstart.admin.new_user'|trans }}</a></li> | ||
28 | <li><a href="{{ path('craue_config_settings_modify') }}#set-analytics">{{ 'quickstart.admin.analytics'|trans }}</a></li> | ||
29 | <li><a href="{{ path('craue_config_settings_modify') }}#set-entry">{{ 'quickstart.admin.sharing'|trans }}</a></li> | ||
30 | <li><a href="{{ path('craue_config_settings_modify') }}#set-export">{{ 'quickstart.admin.export'|trans }}</a></li> | ||
31 | <li><a href="{{ path('craue_config_settings_modify') }}#set-import">{{ 'quickstart.admin.import'|trans }}</a></li> | ||
32 | </ul> | ||
33 | {% endif %} | ||
34 | |||
35 | <h4>{{ 'quickstart.first_steps.title'|trans }}</h4> | ||
36 | <ul> | ||
37 | <li><a href="{{ path('new') }}">{{ 'quickstart.first_steps.new_article'|trans }}</a></li> | ||
38 | <li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li> | ||
39 | </ul> | ||
40 | |||
41 | <h4>{{ 'quickstart.migrate.title'|trans }}</h4> | ||
42 | <p>{{ 'quickstart.migrate.description'|trans }}</p> | ||
43 | <ul> | ||
44 | <li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li> | ||
45 | <li><a href="{{ path('import_wallabag_v1') }}">{{ 'quickstart.migrate.wallabag_v1'|trans }}</a></li> | ||
46 | <li><a href="{{ path('import_wallabag_v2') }}">{{ 'quickstart.migrate.wallabag_v2'|trans }}</a></li> | ||
47 | </ul> | ||
48 | |||
49 | <h4>{{ 'quickstart.developer.title'|trans }}</h4> | ||
50 | <ul> | ||
51 | <li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li> | ||
52 | </ul> | ||
53 | |||
54 | <h4>{{ 'quickstart.docs.title'|trans }}</h4> | ||
55 | <ul> | ||
56 | <li><a href="http://doc.wallabag.org/en/master/user/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li> | ||
57 | <li><a href="http://doc.wallabag.org/en/master/user/download_articles.html">{{ 'quickstart.docs.export'|trans }}</a></li> | ||
58 | <li><a href="http://doc.wallabag.org/en/master/user/filters.html">{{ 'quickstart.docs.search_filters'|trans }}</a></li> | ||
59 | <li><a href="http://doc.wallabag.org/en/master/user/errors_during_fetching.html">{{ 'quickstart.docs.fetching_errors'|trans }}</a></li> | ||
60 | <li><a href="http://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li> | ||
61 | </ul> | ||
62 | |||
63 | <h4>{{ 'quickstart.support.title'|trans }}</h4> | ||
64 | <p>{{ 'quickstart.support.description'|trans }}</p> | ||
65 | <ul> | ||
66 | <li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li> | ||
67 | <li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li> | ||
68 | <li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li> | ||
69 | </ul> | ||
70 | </div> | ||
71 | |||
72 | </div> | ||
73 | </div> | ||
74 | </div> | ||
75 | |||
76 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig index d958c4b8..96f4f990 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Tag/tags.html.twig | |||
@@ -6,10 +6,20 @@ | |||
6 | <div class="results clearfix"> | 6 | <div class="results clearfix"> |
7 | <div class="nb-results left">{{ 'tag.list.number_on_the_page'|transchoice(tags|length) }}</div> | 7 | <div class="nb-results left">{{ 'tag.list.number_on_the_page'|transchoice(tags|length) }}</div> |
8 | </div> | 8 | </div> |
9 | |||
9 | <br /> | 10 | <br /> |
10 | <ul class="row data"> | 11 | |
11 | {% for tag in tags %} | 12 | <div class="row"> |
12 | <li id="tag-{{ tag.id|e }}" class="col l4 m6 s12">{{tag.label}} ({{ tag.getEntriesByUserId(app.user.id) | length }})</li> | 13 | <ul class="card-tag-labels"> |
13 | {% endfor %} | 14 | {% for tag in tags %} |
14 | </ul> | 15 | <li title="{{tag.label}} ({{ tag.nbEntries }})" id="tag-{{ tag.id }}" class="col l2 m2 s2"> |
16 | <a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.nbEntries }})</a> | ||
17 | </li> | ||
18 | {% endfor %} | ||
19 | </ul> | ||
20 | </div> | ||
21 | |||
22 | <div> | ||
23 | <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a> | ||
24 | </div> | ||
15 | {% endblock %} | 25 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/footer.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/footer.html.twig deleted file mode 100644 index 7cb19966..00000000 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/footer.html.twig +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | <footer class="page-footer cyan darken-2"> | ||
2 | <div class="container"> | ||
3 | <div class="row"> | ||
4 | <div class="col l6 s12"> | ||
5 | <h5 class="white-text">{{ 'footer.wallabag.elsewhere'|trans }}</h5> | ||
6 | <p class="grey-text text-lighten-4"> | ||
7 | <a target="_blank" class="grey-text text-lighten-3" href="{{ addonsUrl.google_play }}" title="Android"> | ||
8 | <span class="icon-android"></span> | ||
9 | </a> | ||
10 | <a target="_blank" class="grey-text text-lighten-3" href="{{ addonsUrl.ios }}" title="iOS"> | ||
11 | <span class="icon-apple"></span> | ||
12 | </a> | ||
13 | <a target="_blank" class="grey-text text-lighten-3" href="{{ addonsUrl.firefox }}" title="Firefox"> | ||
14 | <span class="icon-firefox"></span> | ||
15 | </a> | ||
16 | <a target="_blank" class="grey-text text-lighten-3" href="{{ addonsUrl.chrome }}" title="Chrome"> | ||
17 | <span class="icon-chrome"></span> | ||
18 | </a> | ||
19 | </p> | ||
20 | </div> | ||
21 | <div class="col l4 offset-l2 s12"> | ||
22 | <h5 class="white-text">{{ 'footer.wallabag.social'|trans }}</h5> | ||
23 | <a target="_blank" class="grey-text text-lighten-3" href="{{ socialsUrl.twitter }}" title="Twitter"> | ||
24 | <span class="icon-twitter"></span> | ||
25 | </a> | ||
26 | <a target="_blank" class="grey-text text-lighten-3" href="{{ socialsUrl.google_plus }}" title="Google+"> | ||
27 | <span class="icon-google-plus2"></span> | ||
28 | </a> | ||
29 | <a target="_blank" class="grey-text text-lighten-3" href="{{ socialsUrl.facebook }}" title="Facebook"> | ||
30 | <span class="icon-facebook2"></span> | ||
31 | </a> | ||
32 | </div> | ||
33 | </div> | ||
34 | </div> | ||
35 | <div class="footer-copyright"> | ||
36 | <div class="container"> | ||
37 | <p>{{ 'footer.wallabag.powered_by'|trans }} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a></p> | ||
38 | <a class="grey-text text-lighten-4 right" href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a> | ||
39 | </div> | ||
40 | </div> | ||
41 | </footer> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig index 0573e8e5..de0049d3 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig | |||
@@ -2,18 +2,12 @@ | |||
2 | 2 | ||
3 | {% block css %} | 3 | {% block css %} |
4 | {{ parent() }} | 4 | {{ parent() }} |
5 | 5 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/material/css/style.min.css') }}" media="screen,projection,print"/> | |
6 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/material/css/materialize.min.css') }}" media="screen,projection"/> | ||
7 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/material/css/main.css') }}" media="all"> | ||
8 | <link rel="stylesheet" href="{{ asset('bundles/wallabagcore/themes/material/css/print.css') }}" media="print"> | ||
9 | {% endblock %} | 6 | {% endblock %} |
10 | 7 | ||
11 | {% block scripts %} | 8 | {% block scripts %} |
12 | {{ parent() }} | 9 | {{ parent() }} |
13 | 10 | <script src="{{ asset('bundles/wallabagcore/themes/material/js/material.min.js') }}"></script> | |
14 | <script src="{{ asset('bundles/wallabagcore/themes/material/js/jquery.tinydot.min.js') }}"></script> | ||
15 | <script src="{{ asset('bundles/wallabagcore/themes/material/js/materialize.min.js') }}"></script> | ||
16 | <script src="{{ asset('bundles/wallabagcore/themes/material/js/init.js') }}"></script> | ||
17 | {% endblock %} | 11 | {% endblock %} |
18 | 12 | ||
19 | {% block header %} | 13 | {% block header %} |
@@ -25,6 +19,8 @@ | |||
25 | Materialize.toast('{{ flashMessage|trans }}', 4000); | 19 | Materialize.toast('{{ flashMessage|trans }}', 4000); |
26 | </script> | 20 | </script> |
27 | {% endfor %} | 21 | {% endfor %} |
22 | |||
23 | {{ render(controller("WallabagImportBundle:Import:checkQueue")) }} | ||
28 | {% endblock %} | 24 | {% endblock %} |
29 | 25 | ||
30 | {% block menu %} | 26 | {% block menu %} |
@@ -33,7 +29,7 @@ | |||
33 | {% block logo %} | 29 | {% block logo %} |
34 | <li class="logo border-bottom"> | 30 | <li class="logo border-bottom"> |
35 | <a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}"> | 31 | <a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}"> |
36 | <img src="{{ asset('bundles/wallabagcore/themes/material/img/logo-square.png') }}" alt="wallabag logo" /> | 32 | <img src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-square.png') }}" alt="wallabag logo" /> |
37 | </a> | 33 | </a> |
38 | </li> | 34 | </li> |
39 | {% endblock %} | 35 | {% endblock %} |
@@ -41,24 +37,28 @@ | |||
41 | {% set currentRoute = app.request.attributes.get('_route') %} | 37 | {% set currentRoute = app.request.attributes.get('_route') %} |
42 | 38 | ||
43 | <li class="bold {% if currentRoute == 'unread' or currentRoute == 'homepage' %}active{% endif %}"> | 39 | <li class="bold {% if currentRoute == 'unread' or currentRoute == 'homepage' %}active{% endif %}"> |
44 | <a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a> | 40 | <a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }} <span class="numberItems grey-text">{{ count_entries('unread') }}</span></a> |
45 | </li> | 41 | </li> |
46 | <li class="bold {% if currentRoute == 'starred' %}active{% endif %}"> | 42 | <li class="bold {% if currentRoute == 'starred' %}active{% endif %}"> |
47 | <a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a> | 43 | <a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }} <span class="numberItems grey-text">{{ count_entries('starred') }}</span></a> |
48 | </li> | 44 | </li> |
49 | <li class="bold {% if currentRoute == 'archive' %}active{% endif %}"> | 45 | <li class="bold {% if currentRoute == 'archive' %}active{% endif %}"> |
50 | <a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a> | 46 | <a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }} <span class="numberItems grey-text">{{ count_entries('archive') }}</span></a> |
51 | </li> | 47 | </li> |
52 | <li class="bold border-bottom {% if currentRoute == 'all' %}active{% endif %}"> | 48 | <li class="bold {% if currentRoute == 'all' %}active{% endif %}"> |
53 | <a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a> | 49 | <a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }} <span class="numberItems grey-text">{{ count_entries('all') }}</span></a> |
54 | </li> | 50 | </li> |
55 | <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}"> | 51 | <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}"> |
56 | <a class="waves-effect" href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a> | 52 | <a class="waves-effect" href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }} <span class="numberItems grey-text">{{ count_tags() }}</span></a> |
57 | </li> | 53 | </li> |
58 | <li class="bold {% if currentRoute == 'config' %}active{% endif %}"> | 54 | <li class="bold {% if currentRoute == 'config' %}active{% endif %}"> |
59 | <a class="waves-effect" href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a> | 55 | <a class="waves-effect" href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a> |
60 | </li> | 56 | </li> |
61 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 57 | {% if is_granted('ROLE_SUPER_ADMIN') %} |
58 | <li class="bold {% if currentRoute starts with 'user_' %}active{% endif %}"> | ||
59 | <a class="waves-effect" href="{{ path('user_index') }}">{{ 'menu.left.users_management'|trans }}</a> | ||
60 | </li> | ||
61 | |||
62 | <li class="bold border-bottom {% if currentRoute == 'craue_config_settings_modify' %}active{% endif %}"> | 62 | <li class="bold border-bottom {% if currentRoute == 'craue_config_settings_modify' %}active{% endif %}"> |
63 | <a class="waves-effect" href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a> | 63 | <a class="waves-effect" href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a> |
64 | </li> | 64 | </li> |
@@ -73,11 +73,11 @@ | |||
73 | <a class="waves-effect" href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a> | 73 | <a class="waves-effect" href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a> |
74 | </li> | 74 | </li> |
75 | <li class="bold"> | 75 | <li class="bold"> |
76 | <a class="waves-effect" class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a> | 76 | <a class="waves-effect icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a> |
77 | </li> | 77 | </li> |
78 | </ul> | 78 | </ul> |
79 | <div class="nav-wrapper nav-panels"> | 79 | <div class="nav-wrapper nav-panels"> |
80 | <a href="#" data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="mdi-navigation-menu"></i></a> | 80 | <a href="#" data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="material-icons">menu</i></a> |
81 | <div class="left action"> | 81 | <div class="left action"> |
82 | {% block title %} | 82 | {% block title %} |
83 | {% endblock %} | 83 | {% endblock %} |
@@ -86,22 +86,22 @@ | |||
86 | <ul> | 86 | <ul> |
87 | <li class="bold"> | 87 | <li class="bold"> |
88 | <a title="{{ 'menu.top.add_new_entry'|trans }}" class="waves-effect" href="{{ path('new') }}" id="nav-btn-add"> | 88 | <a title="{{ 'menu.top.add_new_entry'|trans }}" class="waves-effect" href="{{ path('new') }}" id="nav-btn-add"> |
89 | <i class="mdi-content-add"></i> | 89 | <i class="material-icons">add</i> |
90 | </a> | 90 | </a> |
91 | </li> | 91 | </li> |
92 | <!--<li> | 92 | <!--<li> |
93 | <a title="{{ 'menu.top.search'|trans }}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search"> | 93 | <a title="{{ 'menu.top.search'|trans }}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search"> |
94 | <i class="mdi-action-search"></i> | 94 | <i class="material-icons">search</i> |
95 | </a> | 95 | </a> |
96 | </li>--> | 96 | </li>--> |
97 | <li id="button_filters"> | 97 | <li id="button_filters"> |
98 | <a title="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right"> | 98 | <a title="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right"> |
99 | <i class="mdi-content-filter-list"></i> | 99 | <i class="material-icons">filter_list</i> |
100 | </a> | 100 | </a> |
101 | </li> | 101 | </li> |
102 | <li id="button_export"> | 102 | <li id="button_export"> |
103 | <a title="{{ 'menu.top.export'|trans }}" class="nav-panel-menu button-collapse-right" href="#" data-activates="export" class="nav-panel-menu button-collapse-right"> | 103 | <a title="{{ 'menu.top.export'|trans }}" class="nav-panel-menu button-collapse-right" href="#" data-activates="export"> |
104 | <i class="mdi-file-file-download"></i> | 104 | <i class="material-icons">file_download</i> |
105 | </a> | 105 | </a> |
106 | </li> | 106 | </li> |
107 | </ul> | 107 | </ul> |
@@ -109,19 +109,37 @@ | |||
109 | <form method="get" action="index.php"> | 109 | <form method="get" action="index.php"> |
110 | <div class="input-field nav-panel-search" style="display: none"> | 110 | <div class="input-field nav-panel-search" style="display: none"> |
111 | <input name="search" id="searchfield" type="search" required placeholder="{{ 'menu.search_form.input_label'|trans }}"> | 111 | <input name="search" id="searchfield" type="search" required placeholder="{{ 'menu.search_form.input_label'|trans }}"> |
112 | <label for="search"><i class="mdi-action-search"></i></label> | 112 | <label for="search"><i class="material-icons search">search</i></label> |
113 | <i class="mdi-navigation-close"></i> | 113 | <i class="material-icons close">clear</i> |
114 | </div> | 114 | </div> |
115 | </form> | 115 | </form> |
116 | <div class="input-field nav-panel-add" style="display: none"> | 116 | <div class="input-field nav-panel-add" style="display: none"> |
117 | {{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }} | 117 | {{ render(controller("WallabagCoreBundle:Entry:addEntryForm")) }} |
118 | <label for="add" class="active"><i class="mdi-content-add"></i></label> | 118 | <label for="add" class="active"><i class="material-icons add">add</i></label> |
119 | <i class="mdi-navigation-close"></i> | 119 | <i class="material-icons close">clear</i> |
120 | </div> | 120 | </div> |
121 | </div> | 121 | </div> |
122 | </nav> | 122 | </nav> |
123 | {% endblock %} | 123 | {% endblock %} |
124 | 124 | ||
125 | {% block footer %} | 125 | {% block footer %} |
126 | {{ render(controller("WallabagCoreBundle:Footer:index")) }} | 126 | <footer class="page-footer cyan darken-2"> |
127 | <div class="footer-copyright"> | ||
128 | <div class="container"> | ||
129 | <div class="row"> | ||
130 | <div class="col s8"> | ||
131 | <p> | ||
132 | {{ display_stats() }} | ||
133 | </p> | ||
134 | </div> | ||
135 | <div class="col s4"> | ||
136 | <p> | ||
137 | {{ 'footer.wallabag.powered_by'|trans }} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a> – | ||
138 | <a class="grey-text text-lighten-4" href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans|lower }}</a> | ||
139 | </p> | ||
140 | </div> | ||
141 | </div> | ||
142 | </div> | ||
143 | </div> | ||
144 | </footer> | ||
127 | {% endblock %} | 145 | {% endblock %} |
diff --git a/src/Wallabag/CoreBundle/Twig/WallabagExtension.php b/src/Wallabag/CoreBundle/Twig/WallabagExtension.php index 1a308070..783cde3e 100644 --- a/src/Wallabag/CoreBundle/Twig/WallabagExtension.php +++ b/src/Wallabag/CoreBundle/Twig/WallabagExtension.php | |||
@@ -2,8 +2,28 @@ | |||
2 | 2 | ||
3 | namespace Wallabag\CoreBundle\Twig; | 3 | namespace Wallabag\CoreBundle\Twig; |
4 | 4 | ||
5 | class WallabagExtension extends \Twig_Extension | 5 | use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; |
6 | use Wallabag\CoreBundle\Repository\EntryRepository; | ||
7 | use Wallabag\CoreBundle\Repository\TagRepository; | ||
8 | use Symfony\Component\Translation\TranslatorInterface; | ||
9 | |||
10 | class WallabagExtension extends \Twig_Extension implements \Twig_Extension_GlobalsInterface | ||
6 | { | 11 | { |
12 | private $tokenStorage; | ||
13 | private $entryRepository; | ||
14 | private $tagRepository; | ||
15 | private $lifeTime; | ||
16 | private $translator; | ||
17 | |||
18 | public function __construct(EntryRepository $entryRepository, TagRepository $tagRepository, TokenStorageInterface $tokenStorage, $lifeTime, TranslatorInterface $translator) | ||
19 | { | ||
20 | $this->entryRepository = $entryRepository; | ||
21 | $this->tagRepository = $tagRepository; | ||
22 | $this->tokenStorage = $tokenStorage; | ||
23 | $this->lifeTime = $lifeTime; | ||
24 | $this->translator = $translator; | ||
25 | } | ||
26 | |||
7 | public function getFilters() | 27 | public function getFilters() |
8 | { | 28 | { |
9 | return [ | 29 | return [ |
@@ -11,11 +31,120 @@ class WallabagExtension extends \Twig_Extension | |||
11 | ]; | 31 | ]; |
12 | } | 32 | } |
13 | 33 | ||
34 | public function getFunctions() | ||
35 | { | ||
36 | return array( | ||
37 | new \Twig_SimpleFunction('count_entries', [$this, 'countEntries']), | ||
38 | new \Twig_SimpleFunction('count_tags', [$this, 'countTags']), | ||
39 | new \Twig_SimpleFunction('display_stats', [$this, 'displayStats']), | ||
40 | ); | ||
41 | } | ||
42 | |||
14 | public function removeWww($url) | 43 | public function removeWww($url) |
15 | { | 44 | { |
16 | return preg_replace('/^www\./i', '', $url); | 45 | return preg_replace('/^www\./i', '', $url); |
17 | } | 46 | } |
18 | 47 | ||
48 | /** | ||
49 | * Return number of entries depending of the type (unread, archive, starred or all). | ||
50 | * | ||
51 | * @param string $type Type of entries to count | ||
52 | * | ||
53 | * @return int | ||
54 | */ | ||
55 | public function countEntries($type) | ||
56 | { | ||
57 | $user = $this->tokenStorage->getToken() ? $this->tokenStorage->getToken()->getUser() : null; | ||
58 | |||
59 | if (null === $user || !is_object($user)) { | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | switch ($type) { | ||
64 | case 'starred': | ||
65 | $qb = $this->entryRepository->getBuilderForStarredByUser($user->getId()); | ||
66 | break; | ||
67 | |||
68 | case 'archive': | ||
69 | $qb = $this->entryRepository->getBuilderForArchiveByUser($user->getId()); | ||
70 | break; | ||
71 | |||
72 | case 'unread': | ||
73 | $qb = $this->entryRepository->getBuilderForUnreadByUser($user->getId()); | ||
74 | break; | ||
75 | |||
76 | case 'all': | ||
77 | $qb = $this->entryRepository->getBuilderForAllByUser($user->getId()); | ||
78 | break; | ||
79 | |||
80 | default: | ||
81 | throw new \InvalidArgumentException(sprintf('Type "%s" is not implemented.', $type)); | ||
82 | } | ||
83 | |||
84 | // THANKS to PostgreSQL we CAN'T make a DEAD SIMPLE count(e.id) | ||
85 | // ERROR: column "e0_.id" must appear in the GROUP BY clause or be used in an aggregate function | ||
86 | $query = $qb | ||
87 | ->select('e.id') | ||
88 | ->groupBy('e.id') | ||
89 | ->getQuery(); | ||
90 | |||
91 | $query->useQueryCache(true); | ||
92 | $query->useResultCache(true); | ||
93 | $query->setResultCacheLifetime($this->lifeTime); | ||
94 | |||
95 | return count($query->getArrayResult()); | ||
96 | } | ||
97 | |||
98 | /** | ||
99 | * Return number of tags. | ||
100 | * | ||
101 | * @return int | ||
102 | */ | ||
103 | public function countTags() | ||
104 | { | ||
105 | $user = $this->tokenStorage->getToken() ? $this->tokenStorage->getToken()->getUser() : null; | ||
106 | |||
107 | if (null === $user || !is_object($user)) { | ||
108 | return 0; | ||
109 | } | ||
110 | |||
111 | return $this->tagRepository->countAllTags($user->getId()); | ||
112 | } | ||
113 | |||
114 | /** | ||
115 | * Display a single line about reading stats. | ||
116 | * | ||
117 | * @return string | ||
118 | */ | ||
119 | public function displayStats() | ||
120 | { | ||
121 | $user = $this->tokenStorage->getToken() ? $this->tokenStorage->getToken()->getUser() : null; | ||
122 | |||
123 | if (null === $user || !is_object($user)) { | ||
124 | return 0; | ||
125 | } | ||
126 | |||
127 | $query = $this->entryRepository->getBuilderForArchiveByUser($user->getId()) | ||
128 | ->select('e.id') | ||
129 | ->groupBy('e.id') | ||
130 | ->getQuery(); | ||
131 | |||
132 | $query->useQueryCache(true); | ||
133 | $query->useResultCache(true); | ||
134 | $query->setResultCacheLifetime($this->lifeTime); | ||
135 | |||
136 | $nbArchives = count($query->getArrayResult()); | ||
137 | |||
138 | $interval = $user->getCreatedAt()->diff(new \DateTime('now')); | ||
139 | $nbDays = (int) $interval->format('%a') ?: 1; | ||
140 | |||
141 | return $this->translator->trans('footer.stats', [ | ||
142 | '%user_creation%' => $user->getCreatedAt()->format('F jS, Y'), | ||
143 | '%nb_archives%' => $nbArchives, | ||
144 | '%per_day%' => round($nbArchives / $nbDays, 2), | ||
145 | ]); | ||
146 | } | ||
147 | |||
19 | public function getName() | 148 | public function getName() |
20 | { | 149 | { |
21 | return 'wallabag_extension'; | 150 | return 'wallabag_extension'; |
diff --git a/src/Wallabag/ImportBundle/Command/ImportCommand.php b/src/Wallabag/ImportBundle/Command/ImportCommand.php index dfbfc2f7..1df38295 100644 --- a/src/Wallabag/ImportBundle/Command/ImportCommand.php +++ b/src/Wallabag/ImportBundle/Command/ImportCommand.php | |||
@@ -13,10 +13,12 @@ class ImportCommand extends ContainerAwareCommand | |||
13 | protected function configure() | 13 | protected function configure() |
14 | { | 14 | { |
15 | $this | 15 | $this |
16 | ->setName('wallabag:import-v1') | 16 | ->setName('wallabag:import') |
17 | ->setDescription('Import entries from a JSON export from a wallabag v1 instance') | 17 | ->setDescription('Import entries from a JSON export from a wallabag v1 instance') |
18 | ->addArgument('userId', InputArgument::REQUIRED, 'User ID to populate') | 18 | ->addArgument('userId', InputArgument::REQUIRED, 'User ID to populate') |
19 | ->addArgument('filepath', InputArgument::REQUIRED, 'Path to the JSON file') | 19 | ->addArgument('filepath', InputArgument::REQUIRED, 'Path to the JSON file') |
20 | ->addOption('importer', null, InputArgument::OPTIONAL, 'The importer to use: wallabag v1, v2, firefox or chrome', 'v1') | ||
21 | ->addOption('markAsRead', null, InputArgument::OPTIONAL, 'Mark all entries as read', false) | ||
20 | ; | 22 | ; |
21 | } | 23 | } |
22 | 24 | ||
@@ -24,6 +26,10 @@ class ImportCommand extends ContainerAwareCommand | |||
24 | { | 26 | { |
25 | $output->writeln('Start : '.(new \DateTime())->format('d-m-Y G:i:s').' ---'); | 27 | $output->writeln('Start : '.(new \DateTime())->format('d-m-Y G:i:s').' ---'); |
26 | 28 | ||
29 | if (!file_exists($input->getArgument('filepath'))) { | ||
30 | throw new Exception(sprintf('File "%s" not found', $input->getArgument('filepath'))); | ||
31 | } | ||
32 | |||
27 | $em = $this->getContainer()->get('doctrine')->getManager(); | 33 | $em = $this->getContainer()->get('doctrine')->getManager(); |
28 | // Turning off doctrine default logs queries for saving memory | 34 | // Turning off doctrine default logs queries for saving memory |
29 | $em->getConnection()->getConfiguration()->setSQLLogger(null); | 35 | $em->getConnection()->getConfiguration()->setSQLLogger(null); |
@@ -34,9 +40,26 @@ class ImportCommand extends ContainerAwareCommand | |||
34 | throw new Exception(sprintf('User with id "%s" not found', $input->getArgument('userId'))); | 40 | throw new Exception(sprintf('User with id "%s" not found', $input->getArgument('userId'))); |
35 | } | 41 | } |
36 | 42 | ||
37 | $wallabag = $this->getContainer()->get('wallabag_import.wallabag_v1.import'); | 43 | switch ($input->getOption('importer')) { |
44 | case 'v2': | ||
45 | $wallabag = $this->getContainer()->get('wallabag_import.wallabag_v2.import'); | ||
46 | break; | ||
47 | case 'firefox': | ||
48 | $wallabag = $this->getContainer()->get('wallabag_import.firefox.import'); | ||
49 | break; | ||
50 | case 'chrome': | ||
51 | $wallabag = $this->getContainer()->get('wallabag_import.chrome.import'); | ||
52 | break; | ||
53 | case 'v1': | ||
54 | default: | ||
55 | $wallabag = $this->getContainer()->get('wallabag_import.wallabag_v1.import'); | ||
56 | break; | ||
57 | } | ||
58 | |||
59 | $wallabag->setMarkAsRead($input->getOption('markAsRead')); | ||
60 | $wallabag->setUser($user); | ||
61 | |||
38 | $res = $wallabag | 62 | $res = $wallabag |
39 | ->setUser($user) | ||
40 | ->setFilepath($input->getArgument('filepath')) | 63 | ->setFilepath($input->getArgument('filepath')) |
41 | ->import(); | 64 | ->import(); |
42 | 65 | ||
diff --git a/src/Wallabag/ImportBundle/Command/RedisWorkerCommand.php b/src/Wallabag/ImportBundle/Command/RedisWorkerCommand.php new file mode 100644 index 00000000..c2c11f11 --- /dev/null +++ b/src/Wallabag/ImportBundle/Command/RedisWorkerCommand.php | |||
@@ -0,0 +1,44 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Command; | ||
4 | |||
5 | use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; | ||
6 | use Symfony\Component\Config\Definition\Exception\Exception; | ||
7 | use Symfony\Component\Console\Input\InputArgument; | ||
8 | use Symfony\Component\Console\Input\InputOption; | ||
9 | use Symfony\Component\Console\Input\InputInterface; | ||
10 | use Symfony\Component\Console\Output\OutputInterface; | ||
11 | use Simpleue\Worker\QueueWorker; | ||
12 | |||
13 | class RedisWorkerCommand extends ContainerAwareCommand | ||
14 | { | ||
15 | protected function configure() | ||
16 | { | ||
17 | $this | ||
18 | ->setName('wallabag:import:redis-worker') | ||
19 | ->setDescription('Launch Redis worker') | ||
20 | ->addArgument('serviceName', InputArgument::REQUIRED, 'Service to use: wallabag_v1, wallabag_v2, pocket, readability, firefox, chrome or instapaper') | ||
21 | ->addOption('maxIterations', '', InputOption::VALUE_OPTIONAL, 'Number of iterations before stoping', false) | ||
22 | ; | ||
23 | } | ||
24 | |||
25 | protected function execute(InputInterface $input, OutputInterface $output) | ||
26 | { | ||
27 | $output->writeln('Worker started at: '.(new \DateTime())->format('d-m-Y G:i:s')); | ||
28 | $output->writeln('Waiting for message ...'); | ||
29 | |||
30 | $serviceName = $input->getArgument('serviceName'); | ||
31 | |||
32 | if (!$this->getContainer()->has('wallabag_import.queue.redis.'.$serviceName) || !$this->getContainer()->has('wallabag_import.consumer.redis.'.$serviceName)) { | ||
33 | throw new Exception(sprintf('No queue or consumer found for service name: "%s"', $input->getArgument('serviceName'))); | ||
34 | } | ||
35 | |||
36 | $worker = new QueueWorker( | ||
37 | $this->getContainer()->get('wallabag_import.queue.redis.'.$serviceName), | ||
38 | $this->getContainer()->get('wallabag_import.consumer.redis.'.$serviceName), | ||
39 | $input->getOption('maxIterations') | ||
40 | ); | ||
41 | |||
42 | $worker->start(); | ||
43 | } | ||
44 | } | ||
diff --git a/src/Wallabag/ImportBundle/Consumer/AMQPEntryConsumer.php b/src/Wallabag/ImportBundle/Consumer/AMQPEntryConsumer.php new file mode 100644 index 00000000..5aaa8c03 --- /dev/null +++ b/src/Wallabag/ImportBundle/Consumer/AMQPEntryConsumer.php | |||
@@ -0,0 +1,17 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Consumer; | ||
4 | |||
5 | use OldSound\RabbitMqBundle\RabbitMq\ConsumerInterface; | ||
6 | use PhpAmqpLib\Message\AMQPMessage; | ||
7 | |||
8 | class AMQPEntryConsumer extends AbstractConsumer implements ConsumerInterface | ||
9 | { | ||
10 | /** | ||
11 | * {@inheritdoc} | ||
12 | */ | ||
13 | public function execute(AMQPMessage $msg) | ||
14 | { | ||
15 | return $this->handleMessage($msg->body); | ||
16 | } | ||
17 | } | ||
diff --git a/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php b/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php new file mode 100644 index 00000000..2b85ad76 --- /dev/null +++ b/src/Wallabag/ImportBundle/Consumer/AbstractConsumer.php | |||
@@ -0,0 +1,74 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Consumer; | ||
4 | |||
5 | use Doctrine\ORM\EntityManager; | ||
6 | use Wallabag\ImportBundle\Import\AbstractImport; | ||
7 | use Wallabag\UserBundle\Repository\UserRepository; | ||
8 | use Wallabag\CoreBundle\Entity\Entry; | ||
9 | use Wallabag\CoreBundle\Entity\Tag; | ||
10 | use Psr\Log\LoggerInterface; | ||
11 | use Psr\Log\NullLogger; | ||
12 | |||
13 | abstract class AbstractConsumer | ||
14 | { | ||
15 | protected $em; | ||
16 | protected $userRepository; | ||
17 | protected $import; | ||
18 | protected $logger; | ||
19 | |||
20 | public function __construct(EntityManager $em, UserRepository $userRepository, AbstractImport $import, LoggerInterface $logger = null) | ||
21 | { | ||
22 | $this->em = $em; | ||
23 | $this->userRepository = $userRepository; | ||
24 | $this->import = $import; | ||
25 | $this->logger = $logger ?: new NullLogger(); | ||
26 | } | ||
27 | |||
28 | /** | ||
29 | * Handle a message and save it. | ||
30 | * | ||
31 | * @param string $body Message from the queue (in json) | ||
32 | * | ||
33 | * @return bool | ||
34 | */ | ||
35 | protected function handleMessage($body) | ||
36 | { | ||
37 | $storedEntry = json_decode($body, true); | ||
38 | |||
39 | $user = $this->userRepository->find($storedEntry['userId']); | ||
40 | |||
41 | // no user? Drop message | ||
42 | if (null === $user) { | ||
43 | $this->logger->warning('Unable to retrieve user', ['entry' => $storedEntry]); | ||
44 | |||
45 | return false; | ||
46 | } | ||
47 | |||
48 | $this->import->setUser($user); | ||
49 | |||
50 | $entry = $this->import->parseEntry($storedEntry); | ||
51 | |||
52 | if (null === $entry) { | ||
53 | $this->logger->warning('Unable to parse entry', ['entry' => $storedEntry]); | ||
54 | |||
55 | return false; | ||
56 | } | ||
57 | |||
58 | try { | ||
59 | $this->em->flush(); | ||
60 | |||
61 | // clear only affected entities | ||
62 | $this->em->clear(Entry::class); | ||
63 | $this->em->clear(Tag::class); | ||
64 | } catch (\Exception $e) { | ||
65 | $this->logger->warning('Unable to save entry', ['entry' => $storedEntry, 'exception' => $e]); | ||
66 | |||
67 | return false; | ||
68 | } | ||
69 | |||
70 | $this->logger->info('Content with url imported! ('.$entry->getUrl().')'); | ||
71 | |||
72 | return true; | ||
73 | } | ||
74 | } | ||
diff --git a/src/Wallabag/ImportBundle/Consumer/RedisEntryConsumer.php b/src/Wallabag/ImportBundle/Consumer/RedisEntryConsumer.php new file mode 100644 index 00000000..450b71ff --- /dev/null +++ b/src/Wallabag/ImportBundle/Consumer/RedisEntryConsumer.php | |||
@@ -0,0 +1,29 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Consumer; | ||
4 | |||
5 | use Simpleue\Job\Job; | ||
6 | |||
7 | class RedisEntryConsumer extends AbstractConsumer implements Job | ||
8 | { | ||
9 | /** | ||
10 | * Handle one message by one message. | ||
11 | * | ||
12 | * @param string $job Content of the message (directly from Redis) | ||
13 | * | ||
14 | * @return bool | ||
15 | */ | ||
16 | public function manage($job) | ||
17 | { | ||
18 | return $this->handleMessage($job); | ||
19 | } | ||
20 | |||
21 | /** | ||
22 | * Should tell if the given job will kill the worker. | ||
23 | * We don't want to stop it :). | ||
24 | */ | ||
25 | public function isStopJob($job) | ||
26 | { | ||
27 | return false; | ||
28 | } | ||
29 | } | ||
diff --git a/src/Wallabag/ImportBundle/Controller/BrowserController.php b/src/Wallabag/ImportBundle/Controller/BrowserController.php new file mode 100644 index 00000000..144a4880 --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/BrowserController.php | |||
@@ -0,0 +1,90 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Controller; | ||
4 | |||
5 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
6 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
7 | use Symfony\Component\HttpFoundation\Request; | ||
8 | use Symfony\Component\HttpFoundation\Response; | ||
9 | use Wallabag\ImportBundle\Form\Type\UploadImportType; | ||
10 | |||
11 | abstract class BrowserController extends Controller | ||
12 | { | ||
13 | /** | ||
14 | * Return the service to handle the import. | ||
15 | * | ||
16 | * @return \Wallabag\ImportBundle\Import\ImportInterface | ||
17 | */ | ||
18 | abstract protected function getImportService(); | ||
19 | |||
20 | /** | ||
21 | * Return the template used for the form. | ||
22 | * | ||
23 | * @return string | ||
24 | */ | ||
25 | abstract protected function getImportTemplate(); | ||
26 | |||
27 | /** | ||
28 | * @Route("/browser", name="import_browser") | ||
29 | * | ||
30 | * @param Request $request | ||
31 | * | ||
32 | * @return Response | ||
33 | */ | ||
34 | public function indexAction(Request $request) | ||
35 | { | ||
36 | $form = $this->createForm(UploadImportType::class); | ||
37 | $form->handleRequest($request); | ||
38 | |||
39 | $wallabag = $this->getImportService(); | ||
40 | $wallabag->setUser($this->getUser()); | ||
41 | |||
42 | if ($form->isValid()) { | ||
43 | $file = $form->get('file')->getData(); | ||
44 | $markAsRead = $form->get('mark_as_read')->getData(); | ||
45 | $name = $this->getUser()->getId().'.json'; | ||
46 | |||
47 | if (null !== $file && in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { | ||
48 | $res = $wallabag | ||
49 | ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name) | ||
50 | ->setMarkAsRead($markAsRead) | ||
51 | ->import(); | ||
52 | |||
53 | $message = 'flashes.import.notice.failed'; | ||
54 | |||
55 | if (true === $res) { | ||
56 | $summary = $wallabag->getSummary(); | ||
57 | $message = $this->get('translator')->trans('flashes.import.notice.summary', [ | ||
58 | '%imported%' => $summary['imported'], | ||
59 | '%skipped%' => $summary['skipped'], | ||
60 | ]); | ||
61 | |||
62 | if (0 < $summary['queued']) { | ||
63 | $message = $this->get('translator')->trans('flashes.import.notice.summary_with_queue', [ | ||
64 | '%queued%' => $summary['queued'], | ||
65 | ]); | ||
66 | } | ||
67 | |||
68 | unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name); | ||
69 | } | ||
70 | |||
71 | $this->get('session')->getFlashBag()->add( | ||
72 | 'notice', | ||
73 | $message | ||
74 | ); | ||
75 | |||
76 | return $this->redirect($this->generateUrl('homepage')); | ||
77 | } else { | ||
78 | $this->get('session')->getFlashBag()->add( | ||
79 | 'notice', | ||
80 | 'flashes.import.notice.failed_on_file' | ||
81 | ); | ||
82 | } | ||
83 | } | ||
84 | |||
85 | return $this->render($this->getImportTemplate(), [ | ||
86 | 'form' => $form->createView(), | ||
87 | 'import' => $wallabag, | ||
88 | ]); | ||
89 | } | ||
90 | } | ||
diff --git a/src/Wallabag/ImportBundle/Controller/ChromeController.php b/src/Wallabag/ImportBundle/Controller/ChromeController.php new file mode 100644 index 00000000..454f3347 --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/ChromeController.php | |||
@@ -0,0 +1,41 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Controller; | ||
4 | |||
5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
6 | use Symfony\Component\HttpFoundation\Request; | ||
7 | |||
8 | class ChromeController extends BrowserController | ||
9 | { | ||
10 | /** | ||
11 | * {@inheritdoc} | ||
12 | */ | ||
13 | protected function getImportService() | ||
14 | { | ||
15 | $service = $this->get('wallabag_import.chrome.import'); | ||
16 | |||
17 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
18 | $service->setProducer($this->get('old_sound_rabbit_mq.import_chrome_producer')); | ||
19 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
20 | $service->setProducer($this->get('wallabag_import.producer.redis.chrome')); | ||
21 | } | ||
22 | |||
23 | return $service; | ||
24 | } | ||
25 | |||
26 | /** | ||
27 | * {@inheritdoc} | ||
28 | */ | ||
29 | protected function getImportTemplate() | ||
30 | { | ||
31 | return 'WallabagImportBundle:Chrome:index.html.twig'; | ||
32 | } | ||
33 | |||
34 | /** | ||
35 | * @Route("/chrome", name="import_chrome") | ||
36 | */ | ||
37 | public function indexAction(Request $request) | ||
38 | { | ||
39 | return parent::indexAction($request); | ||
40 | } | ||
41 | } | ||
diff --git a/src/Wallabag/ImportBundle/Controller/FirefoxController.php b/src/Wallabag/ImportBundle/Controller/FirefoxController.php new file mode 100644 index 00000000..c329b9c4 --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/FirefoxController.php | |||
@@ -0,0 +1,41 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Controller; | ||
4 | |||
5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
6 | use Symfony\Component\HttpFoundation\Request; | ||
7 | |||
8 | class FirefoxController extends BrowserController | ||
9 | { | ||
10 | /** | ||
11 | * {@inheritdoc} | ||
12 | */ | ||
13 | protected function getImportService() | ||
14 | { | ||
15 | $service = $this->get('wallabag_import.firefox.import'); | ||
16 | |||
17 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
18 | $service->setProducer($this->get('old_sound_rabbit_mq.import_firefox_producer')); | ||
19 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
20 | $service->setProducer($this->get('wallabag_import.producer.redis.firefox')); | ||
21 | } | ||
22 | |||
23 | return $service; | ||
24 | } | ||
25 | |||
26 | /** | ||
27 | * {@inheritdoc} | ||
28 | */ | ||
29 | protected function getImportTemplate() | ||
30 | { | ||
31 | return 'WallabagImportBundle:Firefox:index.html.twig'; | ||
32 | } | ||
33 | |||
34 | /** | ||
35 | * @Route("/firefox", name="import_firefox") | ||
36 | */ | ||
37 | public function indexAction(Request $request) | ||
38 | { | ||
39 | return parent::indexAction($request); | ||
40 | } | ||
41 | } | ||
diff --git a/src/Wallabag/ImportBundle/Controller/ImportController.php b/src/Wallabag/ImportBundle/Controller/ImportController.php index c1486e38..15de75ff 100644 --- a/src/Wallabag/ImportBundle/Controller/ImportController.php +++ b/src/Wallabag/ImportBundle/Controller/ImportController.php | |||
@@ -16,4 +16,82 @@ class ImportController extends Controller | |||
16 | 'imports' => $this->get('wallabag_import.chain')->getAll(), | 16 | 'imports' => $this->get('wallabag_import.chain')->getAll(), |
17 | ]); | 17 | ]); |
18 | } | 18 | } |
19 | |||
20 | /** | ||
21 | * Display how many messages are queue (both in Redis and RabbitMQ). | ||
22 | * Only for admins. | ||
23 | */ | ||
24 | public function checkQueueAction() | ||
25 | { | ||
26 | $nbRedisMessages = null; | ||
27 | $nbRabbitMessages = null; | ||
28 | $redisNotInstalled = false; | ||
29 | $rabbitNotInstalled = false; | ||
30 | |||
31 | if (!$this->get('security.authorization_checker')->isGranted('ROLE_SUPER_ADMIN')) { | ||
32 | return $this->render('WallabagImportBundle:Import:check_queue.html.twig'); | ||
33 | } | ||
34 | |||
35 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
36 | // in case rabbit is activated but not installed | ||
37 | try { | ||
38 | $nbRabbitMessages = $this->getTotalMessageInRabbitQueue('pocket') | ||
39 | + $this->getTotalMessageInRabbitQueue('readability') | ||
40 | + $this->getTotalMessageInRabbitQueue('wallabag_v1') | ||
41 | + $this->getTotalMessageInRabbitQueue('wallabag_v2') | ||
42 | + $this->getTotalMessageInRabbitQueue('firefox') | ||
43 | + $this->getTotalMessageInRabbitQueue('chrome') | ||
44 | + $this->getTotalMessageInRabbitQueue('instapaper') | ||
45 | ; | ||
46 | } catch (\Exception $e) { | ||
47 | $rabbitNotInstalled = true; | ||
48 | } | ||
49 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
50 | $redis = $this->get('wallabag_core.redis.client'); | ||
51 | |||
52 | try { | ||
53 | $nbRedisMessages = $redis->llen('wallabag.import.pocket') | ||
54 | + $redis->llen('wallabag.import.readability') | ||
55 | + $redis->llen('wallabag.import.wallabag_v1') | ||
56 | + $redis->llen('wallabag.import.wallabag_v2') | ||
57 | + $redis->llen('wallabag.import.firefox') | ||
58 | + $redis->llen('wallabag.import.chrome') | ||
59 | + $redis->llen('wallabag.import.instapaper') | ||
60 | ; | ||
61 | } catch (\Exception $e) { | ||
62 | $redisNotInstalled = true; | ||
63 | } | ||
64 | } | ||
65 | |||
66 | return $this->render('WallabagImportBundle:Import:check_queue.html.twig', [ | ||
67 | 'nbRedisMessages' => $nbRedisMessages, | ||
68 | 'nbRabbitMessages' => $nbRabbitMessages, | ||
69 | 'redisNotInstalled' => $redisNotInstalled, | ||
70 | 'rabbitNotInstalled' => $rabbitNotInstalled, | ||
71 | ]); | ||
72 | } | ||
73 | |||
74 | /** | ||
75 | * Count message in RabbitMQ queue. | ||
76 | * It get one message without acking it (so it'll stay in the queue) | ||
77 | * which will include the total of *other* messages in the queue. | ||
78 | * Adding one to that messages will result in the full total message. | ||
79 | * | ||
80 | * @param string $importService The import service related: pocket, readability, wallabag_v1 or wallabag_v2 | ||
81 | * | ||
82 | * @return int | ||
83 | */ | ||
84 | private function getTotalMessageInRabbitQueue($importService) | ||
85 | { | ||
86 | $message = $this | ||
87 | ->get('old_sound_rabbit_mq.import_'.$importService.'_consumer') | ||
88 | ->getChannel() | ||
89 | ->basic_get('wallabag.import.'.$importService); | ||
90 | |||
91 | if (null === $message) { | ||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | return $message->delivery_info['message_count'] + 1; | ||
96 | } | ||
19 | } | 97 | } |
diff --git a/src/Wallabag/ImportBundle/Controller/InstapaperController.php b/src/Wallabag/ImportBundle/Controller/InstapaperController.php new file mode 100644 index 00000000..c3fc8a39 --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/InstapaperController.php | |||
@@ -0,0 +1,77 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Controller; | ||
4 | |||
5 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
6 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
7 | use Symfony\Component\HttpFoundation\Request; | ||
8 | use Wallabag\ImportBundle\Form\Type\UploadImportType; | ||
9 | |||
10 | class InstapaperController extends Controller | ||
11 | { | ||
12 | /** | ||
13 | * @Route("/instapaper", name="import_instapaper") | ||
14 | */ | ||
15 | public function indexAction(Request $request) | ||
16 | { | ||
17 | $form = $this->createForm(UploadImportType::class); | ||
18 | $form->handleRequest($request); | ||
19 | |||
20 | $instapaper = $this->get('wallabag_import.instapaper.import'); | ||
21 | $instapaper->setUser($this->getUser()); | ||
22 | |||
23 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
24 | $instapaper->setProducer($this->get('old_sound_rabbit_mq.import_instapaper_producer')); | ||
25 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
26 | $instapaper->setProducer($this->get('wallabag_import.producer.redis.instapaper')); | ||
27 | } | ||
28 | |||
29 | if ($form->isValid()) { | ||
30 | $file = $form->get('file')->getData(); | ||
31 | $markAsRead = $form->get('mark_as_read')->getData(); | ||
32 | $name = 'instapaper_'.$this->getUser()->getId().'.csv'; | ||
33 | |||
34 | if (null !== $file && in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { | ||
35 | $res = $instapaper | ||
36 | ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name) | ||
37 | ->setMarkAsRead($markAsRead) | ||
38 | ->import(); | ||
39 | |||
40 | $message = 'flashes.import.notice.failed'; | ||
41 | |||
42 | if (true === $res) { | ||
43 | $summary = $instapaper->getSummary(); | ||
44 | $message = $this->get('translator')->trans('flashes.import.notice.summary', [ | ||
45 | '%imported%' => $summary['imported'], | ||
46 | '%skipped%' => $summary['skipped'], | ||
47 | ]); | ||
48 | |||
49 | if (0 < $summary['queued']) { | ||
50 | $message = $this->get('translator')->trans('flashes.import.notice.summary_with_queue', [ | ||
51 | '%queued%' => $summary['queued'], | ||
52 | ]); | ||
53 | } | ||
54 | |||
55 | unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name); | ||
56 | } | ||
57 | |||
58 | $this->get('session')->getFlashBag()->add( | ||
59 | 'notice', | ||
60 | $message | ||
61 | ); | ||
62 | |||
63 | return $this->redirect($this->generateUrl('homepage')); | ||
64 | } else { | ||
65 | $this->get('session')->getFlashBag()->add( | ||
66 | 'notice', | ||
67 | 'flashes.import.notice.failed_on_file' | ||
68 | ); | ||
69 | } | ||
70 | } | ||
71 | |||
72 | return $this->render('WallabagImportBundle:Instapaper:index.html.twig', [ | ||
73 | 'form' => $form->createView(), | ||
74 | 'import' => $instapaper, | ||
75 | ]); | ||
76 | } | ||
77 | } | ||
diff --git a/src/Wallabag/ImportBundle/Controller/PocketController.php b/src/Wallabag/ImportBundle/Controller/PocketController.php index 36ee25bf..56be5cbf 100644 --- a/src/Wallabag/ImportBundle/Controller/PocketController.php +++ b/src/Wallabag/ImportBundle/Controller/PocketController.php | |||
@@ -11,11 +11,30 @@ use Symfony\Component\Form\Extension\Core\Type\CheckboxType; | |||
11 | class PocketController extends Controller | 11 | class PocketController extends Controller |
12 | { | 12 | { |
13 | /** | 13 | /** |
14 | * Return Pocket Import Service with or without RabbitMQ enabled. | ||
15 | * | ||
16 | * @return \Wallabag\ImportBundle\Import\PocketImport | ||
17 | */ | ||
18 | private function getPocketImportService() | ||
19 | { | ||
20 | $pocket = $this->get('wallabag_import.pocket.import'); | ||
21 | $pocket->setUser($this->getUser()); | ||
22 | |||
23 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
24 | $pocket->setProducer($this->get('old_sound_rabbit_mq.import_pocket_producer')); | ||
25 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
26 | $pocket->setProducer($this->get('wallabag_import.producer.redis.pocket')); | ||
27 | } | ||
28 | |||
29 | return $pocket; | ||
30 | } | ||
31 | |||
32 | /** | ||
14 | * @Route("/pocket", name="import_pocket") | 33 | * @Route("/pocket", name="import_pocket") |
15 | */ | 34 | */ |
16 | public function indexAction() | 35 | public function indexAction() |
17 | { | 36 | { |
18 | $pocket = $this->get('wallabag_import.pocket.import'); | 37 | $pocket = $this->getPocketImportService(); |
19 | $form = $this->createFormBuilder($pocket) | 38 | $form = $this->createFormBuilder($pocket) |
20 | ->add('mark_as_read', CheckboxType::class, [ | 39 | ->add('mark_as_read', CheckboxType::class, [ |
21 | 'label' => 'import.form.mark_as_read_label', | 40 | 'label' => 'import.form.mark_as_read_label', |
@@ -24,8 +43,8 @@ class PocketController extends Controller | |||
24 | ->getForm(); | 43 | ->getForm(); |
25 | 44 | ||
26 | return $this->render('WallabagImportBundle:Pocket:index.html.twig', [ | 45 | return $this->render('WallabagImportBundle:Pocket:index.html.twig', [ |
27 | 'import' => $this->get('wallabag_import.pocket.import'), | 46 | 'import' => $this->getPocketImportService(), |
28 | 'has_consumer_key' => '' == trim($this->get('craue_config')->get('pocket_consumer_key')) ? false : true, | 47 | 'has_consumer_key' => '' === trim($this->getUser()->getConfig()->getPocketConsumerKey()) ? false : true, |
29 | 'form' => $form->createView(), | 48 | 'form' => $form->createView(), |
30 | ]); | 49 | ]); |
31 | } | 50 | } |
@@ -35,7 +54,7 @@ class PocketController extends Controller | |||
35 | */ | 54 | */ |
36 | public function authAction(Request $request) | 55 | public function authAction(Request $request) |
37 | { | 56 | { |
38 | $requestToken = $this->get('wallabag_import.pocket.import') | 57 | $requestToken = $this->getPocketImportService() |
39 | ->getRequestToken($this->generateUrl('import', [], UrlGeneratorInterface::ABSOLUTE_URL)); | 58 | ->getRequestToken($this->generateUrl('import', [], UrlGeneratorInterface::ABSOLUTE_URL)); |
40 | 59 | ||
41 | if (false === $requestToken) { | 60 | if (false === $requestToken) { |
@@ -62,7 +81,7 @@ class PocketController extends Controller | |||
62 | public function callbackAction() | 81 | public function callbackAction() |
63 | { | 82 | { |
64 | $message = 'flashes.import.notice.failed'; | 83 | $message = 'flashes.import.notice.failed'; |
65 | $pocket = $this->get('wallabag_import.pocket.import'); | 84 | $pocket = $this->getPocketImportService(); |
66 | 85 | ||
67 | $markAsRead = $this->get('session')->get('mark_as_read'); | 86 | $markAsRead = $this->get('session')->get('mark_as_read'); |
68 | $this->get('session')->remove('mark_as_read'); | 87 | $this->get('session')->remove('mark_as_read'); |
@@ -83,6 +102,12 @@ class PocketController extends Controller | |||
83 | '%imported%' => $summary['imported'], | 102 | '%imported%' => $summary['imported'], |
84 | '%skipped%' => $summary['skipped'], | 103 | '%skipped%' => $summary['skipped'], |
85 | ]); | 104 | ]); |
105 | |||
106 | if (0 < $summary['queued']) { | ||
107 | $message = $this->get('translator')->trans('flashes.import.notice.summary_with_queue', [ | ||
108 | '%queued%' => $summary['queued'], | ||
109 | ]); | ||
110 | } | ||
86 | } | 111 | } |
87 | 112 | ||
88 | $this->get('session')->getFlashBag()->add( | 113 | $this->get('session')->getFlashBag()->add( |
diff --git a/src/Wallabag/ImportBundle/Controller/ReadabilityController.php b/src/Wallabag/ImportBundle/Controller/ReadabilityController.php new file mode 100644 index 00000000..d00e22c2 --- /dev/null +++ b/src/Wallabag/ImportBundle/Controller/ReadabilityController.php | |||
@@ -0,0 +1,77 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Controller; | ||
4 | |||
5 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
6 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
7 | use Symfony\Component\HttpFoundation\Request; | ||
8 | use Wallabag\ImportBundle\Form\Type\UploadImportType; | ||
9 | |||
10 | class ReadabilityController extends Controller | ||
11 | { | ||
12 | /** | ||
13 | * @Route("/readability", name="import_readability") | ||
14 | */ | ||
15 | public function indexAction(Request $request) | ||
16 | { | ||
17 | $form = $this->createForm(UploadImportType::class); | ||
18 | $form->handleRequest($request); | ||
19 | |||
20 | $readability = $this->get('wallabag_import.readability.import'); | ||
21 | $readability->setUser($this->getUser()); | ||
22 | |||
23 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
24 | $readability->setProducer($this->get('old_sound_rabbit_mq.import_readability_producer')); | ||
25 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
26 | $readability->setProducer($this->get('wallabag_import.producer.redis.readability')); | ||
27 | } | ||
28 | |||
29 | if ($form->isValid()) { | ||
30 | $file = $form->get('file')->getData(); | ||
31 | $markAsRead = $form->get('mark_as_read')->getData(); | ||
32 | $name = 'readability_'.$this->getUser()->getId().'.json'; | ||
33 | |||
34 | if (null !== $file && in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { | ||
35 | $res = $readability | ||
36 | ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name) | ||
37 | ->setMarkAsRead($markAsRead) | ||
38 | ->import(); | ||
39 | |||
40 | $message = 'flashes.import.notice.failed'; | ||
41 | |||
42 | if (true === $res) { | ||
43 | $summary = $readability->getSummary(); | ||
44 | $message = $this->get('translator')->trans('flashes.import.notice.summary', [ | ||
45 | '%imported%' => $summary['imported'], | ||
46 | '%skipped%' => $summary['skipped'], | ||
47 | ]); | ||
48 | |||
49 | if (0 < $summary['queued']) { | ||
50 | $message = $this->get('translator')->trans('flashes.import.notice.summary_with_queue', [ | ||
51 | '%queued%' => $summary['queued'], | ||
52 | ]); | ||
53 | } | ||
54 | |||
55 | unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name); | ||
56 | } | ||
57 | |||
58 | $this->get('session')->getFlashBag()->add( | ||
59 | 'notice', | ||
60 | $message | ||
61 | ); | ||
62 | |||
63 | return $this->redirect($this->generateUrl('homepage')); | ||
64 | } else { | ||
65 | $this->get('session')->getFlashBag()->add( | ||
66 | 'notice', | ||
67 | 'flashes.import.notice.failed_on_file' | ||
68 | ); | ||
69 | } | ||
70 | } | ||
71 | |||
72 | return $this->render('WallabagImportBundle:Readability:index.html.twig', [ | ||
73 | 'form' => $form->createView(), | ||
74 | 'import' => $readability, | ||
75 | ]); | ||
76 | } | ||
77 | } | ||
diff --git a/src/Wallabag/ImportBundle/Controller/WallabagController.php b/src/Wallabag/ImportBundle/Controller/WallabagController.php index 76ced0d2..9c0cde80 100644 --- a/src/Wallabag/ImportBundle/Controller/WallabagController.php +++ b/src/Wallabag/ImportBundle/Controller/WallabagController.php | |||
@@ -38,15 +38,15 @@ abstract class WallabagController extends Controller | |||
38 | $form->handleRequest($request); | 38 | $form->handleRequest($request); |
39 | 39 | ||
40 | $wallabag = $this->getImportService(); | 40 | $wallabag = $this->getImportService(); |
41 | $wallabag->setUser($this->getUser()); | ||
41 | 42 | ||
42 | if ($form->isValid()) { | 43 | if ($form->isValid()) { |
43 | $file = $form->get('file')->getData(); | 44 | $file = $form->get('file')->getData(); |
44 | $markAsRead = $form->get('mark_as_read')->getData(); | 45 | $markAsRead = $form->get('mark_as_read')->getData(); |
45 | $name = $this->getUser()->getId().'.json'; | 46 | $name = $this->getUser()->getId().'.json'; |
46 | 47 | ||
47 | if (in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { | 48 | if (null !== $file && in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) { |
48 | $res = $wallabag | 49 | $res = $wallabag |
49 | ->setUser($this->getUser()) | ||
50 | ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name) | 50 | ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name) |
51 | ->setMarkAsRead($markAsRead) | 51 | ->setMarkAsRead($markAsRead) |
52 | ->import(); | 52 | ->import(); |
@@ -60,6 +60,12 @@ abstract class WallabagController extends Controller | |||
60 | '%skipped%' => $summary['skipped'], | 60 | '%skipped%' => $summary['skipped'], |
61 | ]); | 61 | ]); |
62 | 62 | ||
63 | if (0 < $summary['queued']) { | ||
64 | $message = $this->get('translator')->trans('flashes.import.notice.summary_with_queue', [ | ||
65 | '%queued%' => $summary['queued'], | ||
66 | ]); | ||
67 | } | ||
68 | |||
63 | unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name); | 69 | unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name); |
64 | } | 70 | } |
65 | 71 | ||
diff --git a/src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php b/src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php index 3e748d57..312c7a35 100644 --- a/src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php +++ b/src/Wallabag/ImportBundle/Controller/WallabagV1Controller.php | |||
@@ -12,7 +12,15 @@ class WallabagV1Controller extends WallabagController | |||
12 | */ | 12 | */ |
13 | protected function getImportService() | 13 | protected function getImportService() |
14 | { | 14 | { |
15 | return $this->get('wallabag_import.wallabag_v1.import'); | 15 | $service = $this->get('wallabag_import.wallabag_v1.import'); |
16 | |||
17 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
18 | $service->setProducer($this->get('old_sound_rabbit_mq.import_wallabag_v1_producer')); | ||
19 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
20 | $service->setProducer($this->get('wallabag_import.producer.redis.wallabag_v1')); | ||
21 | } | ||
22 | |||
23 | return $service; | ||
16 | } | 24 | } |
17 | 25 | ||
18 | /** | 26 | /** |
diff --git a/src/Wallabag/ImportBundle/Controller/WallabagV2Controller.php b/src/Wallabag/ImportBundle/Controller/WallabagV2Controller.php index c2a42165..45211fe6 100644 --- a/src/Wallabag/ImportBundle/Controller/WallabagV2Controller.php +++ b/src/Wallabag/ImportBundle/Controller/WallabagV2Controller.php | |||
@@ -12,7 +12,15 @@ class WallabagV2Controller extends WallabagController | |||
12 | */ | 12 | */ |
13 | protected function getImportService() | 13 | protected function getImportService() |
14 | { | 14 | { |
15 | return $this->get('wallabag_import.wallabag_v2.import'); | 15 | $service = $this->get('wallabag_import.wallabag_v2.import'); |
16 | |||
17 | if ($this->get('craue_config')->get('import_with_rabbitmq')) { | ||
18 | $service->setProducer($this->get('old_sound_rabbit_mq.import_wallabag_v2_producer')); | ||
19 | } elseif ($this->get('craue_config')->get('import_with_redis')) { | ||
20 | $service->setProducer($this->get('wallabag_import.producer.redis.wallabag_v2')); | ||
21 | } | ||
22 | |||
23 | return $service; | ||
16 | } | 24 | } |
17 | 25 | ||
18 | /** | 26 | /** |
diff --git a/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php b/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php index 92a167d9..f50424c1 100644 --- a/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php +++ b/src/Wallabag/ImportBundle/Form/Type/UploadImportType.php | |||
@@ -15,6 +15,7 @@ class UploadImportType extends AbstractType | |||
15 | $builder | 15 | $builder |
16 | ->add('file', FileType::class, [ | 16 | ->add('file', FileType::class, [ |
17 | 'label' => 'import.form.file_label', | 17 | 'label' => 'import.form.file_label', |
18 | 'required' => true, | ||
18 | ]) | 19 | ]) |
19 | ->add('mark_as_read', CheckboxType::class, [ | 20 | ->add('mark_as_read', CheckboxType::class, [ |
20 | 'label' => 'import.form.mark_as_read_label', | 21 | 'label' => 'import.form.mark_as_read_label', |
diff --git a/src/Wallabag/ImportBundle/Import/AbstractImport.php b/src/Wallabag/ImportBundle/Import/AbstractImport.php index 14377a35..764b390a 100644 --- a/src/Wallabag/ImportBundle/Import/AbstractImport.php +++ b/src/Wallabag/ImportBundle/Import/AbstractImport.php | |||
@@ -7,12 +7,21 @@ use Psr\Log\NullLogger; | |||
7 | use Doctrine\ORM\EntityManager; | 7 | use Doctrine\ORM\EntityManager; |
8 | use Wallabag\CoreBundle\Helper\ContentProxy; | 8 | use Wallabag\CoreBundle\Helper\ContentProxy; |
9 | use Wallabag\CoreBundle\Entity\Entry; | 9 | use Wallabag\CoreBundle\Entity\Entry; |
10 | use Wallabag\CoreBundle\Entity\Tag; | ||
11 | use Wallabag\UserBundle\Entity\User; | ||
12 | use OldSound\RabbitMqBundle\RabbitMq\ProducerInterface; | ||
10 | 13 | ||
11 | abstract class AbstractImport implements ImportInterface | 14 | abstract class AbstractImport implements ImportInterface |
12 | { | 15 | { |
13 | protected $em; | 16 | protected $em; |
14 | protected $logger; | 17 | protected $logger; |
15 | protected $contentProxy; | 18 | protected $contentProxy; |
19 | protected $producer; | ||
20 | protected $user; | ||
21 | protected $markAsRead; | ||
22 | protected $skippedEntries = 0; | ||
23 | protected $importedEntries = 0; | ||
24 | protected $queuedEntries = 0; | ||
16 | 25 | ||
17 | public function __construct(EntityManager $em, ContentProxy $contentProxy) | 26 | public function __construct(EntityManager $em, ContentProxy $contentProxy) |
18 | { | 27 | { |
@@ -27,21 +36,154 @@ abstract class AbstractImport implements ImportInterface | |||
27 | } | 36 | } |
28 | 37 | ||
29 | /** | 38 | /** |
39 | * Set RabbitMQ/Redis Producer to send each entry to a queue. | ||
40 | * This method should be called when user has enabled RabbitMQ. | ||
41 | * | ||
42 | * @param ProducerInterface $producer | ||
43 | */ | ||
44 | public function setProducer(ProducerInterface $producer) | ||
45 | { | ||
46 | $this->producer = $producer; | ||
47 | } | ||
48 | |||
49 | /** | ||
50 | * Set current user. | ||
51 | * Could the current *connected* user or one retrieve by the consumer. | ||
52 | * | ||
53 | * @param User $user | ||
54 | */ | ||
55 | public function setUser(User $user) | ||
56 | { | ||
57 | $this->user = $user; | ||
58 | } | ||
59 | |||
60 | /** | ||
61 | * Set whether articles must be all marked as read. | ||
62 | * | ||
63 | * @param bool $markAsRead | ||
64 | */ | ||
65 | public function setMarkAsRead($markAsRead) | ||
66 | { | ||
67 | $this->markAsRead = $markAsRead; | ||
68 | |||
69 | return $this; | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * Get whether articles must be all marked as read. | ||
74 | */ | ||
75 | public function getMarkAsRead() | ||
76 | { | ||
77 | return $this->markAsRead; | ||
78 | } | ||
79 | |||
80 | /** | ||
30 | * Fetch content from the ContentProxy (using graby). | 81 | * Fetch content from the ContentProxy (using graby). |
31 | * If it fails return false instead of the updated entry. | 82 | * If it fails return the given entry to be saved in all case (to avoid user to loose the content). |
32 | * | 83 | * |
33 | * @param Entry $entry Entry to update | 84 | * @param Entry $entry Entry to update |
34 | * @param string $url Url to grab content for | 85 | * @param string $url Url to grab content for |
35 | * @param array $content An array with AT LEAST keys title, html, url, language & content_type to skip the fetchContent from the url | 86 | * @param array $content An array with AT LEAST keys title, html, url, language & content_type to skip the fetchContent from the url |
36 | * | 87 | * |
37 | * @return Entry|false | 88 | * @return Entry |
38 | */ | 89 | */ |
39 | protected function fetchContent(Entry $entry, $url, array $content = []) | 90 | protected function fetchContent(Entry $entry, $url, array $content = []) |
40 | { | 91 | { |
41 | try { | 92 | try { |
42 | return $this->contentProxy->updateEntry($entry, $url, $content); | 93 | return $this->contentProxy->updateEntry($entry, $url, $content); |
43 | } catch (\Exception $e) { | 94 | } catch (\Exception $e) { |
44 | return false; | 95 | return $entry; |
45 | } | 96 | } |
46 | } | 97 | } |
98 | |||
99 | /** | ||
100 | * Parse and insert all given entries. | ||
101 | * | ||
102 | * @param $entries | ||
103 | */ | ||
104 | protected function parseEntries($entries) | ||
105 | { | ||
106 | $i = 1; | ||
107 | |||
108 | foreach ($entries as $importedEntry) { | ||
109 | if ($this->markAsRead) { | ||
110 | $importedEntry = $this->setEntryAsRead($importedEntry); | ||
111 | } | ||
112 | |||
113 | $entry = $this->parseEntry($importedEntry); | ||
114 | |||
115 | if (null === $entry) { | ||
116 | continue; | ||
117 | } | ||
118 | |||
119 | // flush every 20 entries | ||
120 | if (($i % 20) === 0) { | ||
121 | $this->em->flush(); | ||
122 | |||
123 | // clear only affected entities | ||
124 | $this->em->clear(Entry::class); | ||
125 | $this->em->clear(Tag::class); | ||
126 | } | ||
127 | ++$i; | ||
128 | } | ||
129 | |||
130 | $this->em->flush(); | ||
131 | } | ||
132 | |||
133 | /** | ||
134 | * Parse entries and send them to the queue. | ||
135 | * It should just be a simple loop on all item, no call to the database should be done | ||
136 | * to speedup queuing. | ||
137 | * | ||
138 | * Faster parse entries for Producer. | ||
139 | * We don't care to make check at this time. They'll be done by the consumer. | ||
140 | * | ||
141 | * @param array $entries | ||
142 | */ | ||
143 | protected function parseEntriesForProducer(array $entries) | ||
144 | { | ||
145 | foreach ($entries as $importedEntry) { | ||
146 | // set userId for the producer (it won't know which user is connected) | ||
147 | $importedEntry['userId'] = $this->user->getId(); | ||
148 | |||
149 | if ($this->markAsRead) { | ||
150 | $importedEntry = $this->setEntryAsRead($importedEntry); | ||
151 | } | ||
152 | |||
153 | ++$this->queuedEntries; | ||
154 | |||
155 | $this->producer->publish(json_encode($importedEntry)); | ||
156 | } | ||
157 | } | ||
158 | |||
159 | /** | ||
160 | * {@inheritdoc} | ||
161 | */ | ||
162 | public function getSummary() | ||
163 | { | ||
164 | return [ | ||
165 | 'skipped' => $this->skippedEntries, | ||
166 | 'imported' => $this->importedEntries, | ||
167 | 'queued' => $this->queuedEntries, | ||
168 | ]; | ||
169 | } | ||
170 | |||
171 | /** | ||
172 | * Parse one entry. | ||
173 | * | ||
174 | * @param array $importedEntry | ||
175 | * | ||
176 | * @return Entry | ||
177 | */ | ||
178 | abstract public function parseEntry(array $importedEntry); | ||
179 | |||
180 | /** | ||
181 | * Set current imported entry to archived / read. | ||
182 | * Implementation is different accross all imports. | ||
183 | * | ||
184 | * @param array $importedEntry | ||
185 | * | ||
186 | * @return array | ||
187 | */ | ||
188 | abstract protected function setEntryAsRead(array $importedEntry); | ||
47 | } | 189 | } |
diff --git a/src/Wallabag/ImportBundle/Import/BrowserImport.php b/src/Wallabag/ImportBundle/Import/BrowserImport.php new file mode 100644 index 00000000..9d75685b --- /dev/null +++ b/src/Wallabag/ImportBundle/Import/BrowserImport.php | |||
@@ -0,0 +1,207 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Import; | ||
4 | |||
5 | use Wallabag\CoreBundle\Entity\Entry; | ||
6 | use Wallabag\UserBundle\Entity\User; | ||
7 | use Wallabag\CoreBundle\Helper\ContentProxy; | ||
8 | |||
9 | abstract class BrowserImport extends AbstractImport | ||
10 | { | ||
11 | protected $filepath; | ||
12 | |||
13 | /** | ||
14 | * {@inheritdoc} | ||
15 | */ | ||
16 | abstract public function getName(); | ||
17 | |||
18 | /** | ||
19 | * {@inheritdoc} | ||
20 | */ | ||
21 | abstract public function getUrl(); | ||
22 | |||
23 | /** | ||
24 | * {@inheritdoc} | ||
25 | */ | ||
26 | abstract public function getDescription(); | ||
27 | |||
28 | /** | ||
29 | * {@inheritdoc} | ||
30 | */ | ||
31 | public function import() | ||
32 | { | ||
33 | if (!$this->user) { | ||
34 | $this->logger->error('Wallabag Browser Import: user is not defined'); | ||
35 | |||
36 | return false; | ||
37 | } | ||
38 | |||
39 | if (!file_exists($this->filepath) || !is_readable($this->filepath)) { | ||
40 | $this->logger->error('Wallabag Browser Import: unable to read file', ['filepath' => $this->filepath]); | ||
41 | |||
42 | return false; | ||
43 | } | ||
44 | |||
45 | $data = json_decode(file_get_contents($this->filepath), true); | ||
46 | |||
47 | if (empty($data)) { | ||
48 | $this->logger->error('Wallabag Browser: no entries in imported file'); | ||
49 | |||
50 | return false; | ||
51 | } | ||
52 | |||
53 | if ($this->producer) { | ||
54 | $this->parseEntriesForProducer($data); | ||
55 | |||
56 | return true; | ||
57 | } | ||
58 | |||
59 | $this->parseEntries($data); | ||
60 | |||
61 | return true; | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * Set file path to the json file. | ||
66 | * | ||
67 | * @param string $filepath | ||
68 | */ | ||
69 | public function setFilepath($filepath) | ||
70 | { | ||
71 | $this->filepath = $filepath; | ||
72 | |||
73 | return $this; | ||
74 | } | ||
75 | |||
76 | /** | ||
77 | * Parse and insert all given entries. | ||
78 | * | ||
79 | * @param $entries | ||
80 | */ | ||
81 | protected function parseEntries($entries) | ||
82 | { | ||
83 | $i = 1; | ||
84 | |||
85 | foreach ($entries as $importedEntry) { | ||
86 | if ((array) $importedEntry !== $importedEntry) { | ||
87 | continue; | ||
88 | } | ||
89 | |||
90 | $entry = $this->parseEntry($importedEntry); | ||
91 | |||
92 | if (null === $entry) { | ||
93 | continue; | ||
94 | } | ||
95 | |||
96 | // flush every 20 entries | ||
97 | if (($i % 20) === 0) { | ||
98 | $this->em->flush(); | ||
99 | } | ||
100 | ++$i; | ||
101 | } | ||
102 | |||
103 | $this->em->flush(); | ||
104 | } | ||
105 | |||
106 | /** | ||
107 | * Parse entries and send them to the queue. | ||
108 | * It should just be a simple loop on all item, no call to the database should be done | ||
109 | * to speedup queuing. | ||
110 | * | ||
111 | * Faster parse entries for Producer. | ||
112 | * We don't care to make check at this time. They'll be done by the consumer. | ||
113 | * | ||
114 | * @param array $entries | ||
115 | */ | ||
116 | protected function parseEntriesForProducer(array $entries) | ||
117 | { | ||
118 | foreach ($entries as $importedEntry) { | ||
119 | if ((array) $importedEntry !== $importedEntry) { | ||
120 | continue; | ||
121 | } | ||
122 | |||
123 | // set userId for the producer (it won't know which user is connected) | ||
124 | $importedEntry['userId'] = $this->user->getId(); | ||
125 | |||
126 | if ($this->markAsRead) { | ||
127 | $importedEntry = $this->setEntryAsRead($importedEntry); | ||
128 | } | ||
129 | |||
130 | ++$this->queuedEntries; | ||
131 | |||
132 | $this->producer->publish(json_encode($importedEntry)); | ||
133 | } | ||
134 | } | ||
135 | |||
136 | /** | ||
137 | * {@inheritdoc} | ||
138 | */ | ||
139 | public function parseEntry(array $importedEntry) | ||
140 | { | ||
141 | if ((!array_key_exists('guid', $importedEntry) || (!array_key_exists('id', $importedEntry))) && is_array(reset($importedEntry))) { | ||
142 | $this->parseEntries($importedEntry); | ||
143 | |||
144 | return; | ||
145 | } | ||
146 | |||
147 | if (array_key_exists('children', $importedEntry)) { | ||
148 | $this->parseEntries($importedEntry['children']); | ||
149 | |||
150 | return; | ||
151 | } | ||
152 | |||
153 | if (!array_key_exists('uri', $importedEntry) && !array_key_exists('url', $importedEntry)) { | ||
154 | return; | ||
155 | } | ||
156 | |||
157 | $url = array_key_exists('uri', $importedEntry) ? $importedEntry['uri'] : $importedEntry['url']; | ||
158 | |||
159 | $existingEntry = $this->em | ||
160 | ->getRepository('WallabagCoreBundle:Entry') | ||
161 | ->findByUrlAndUserId($url, $this->user->getId()); | ||
162 | |||
163 | if (false !== $existingEntry) { | ||
164 | ++$this->skippedEntries; | ||
165 | |||
166 | return; | ||
167 | } | ||
168 | |||
169 | $data = $this->prepareEntry($importedEntry); | ||
170 | |||
171 | $entry = new Entry($this->user); | ||
172 | $entry->setUrl($data['url']); | ||
173 | $entry->setTitle($data['title']); | ||
174 | |||
175 | // update entry with content (in case fetching failed, the given entry will be return) | ||
176 | $entry = $this->fetchContent($entry, $data['url'], $data); | ||
177 | |||
178 | if (array_key_exists('tags', $data)) { | ||
179 | $this->contentProxy->assignTagsToEntry( | ||
180 | $entry, | ||
181 | $data['tags'] | ||
182 | ); | ||
183 | } | ||
184 | |||
185 | $entry->setArchived($data['is_archived']); | ||
186 | |||
187 | if (!empty($data['created_at'])) { | ||
188 | $dt = new \DateTime(); | ||
189 | $entry->setCreatedAt($dt->setTimestamp($data['created_at'])); | ||
190 | } | ||
191 | |||
192 | $this->em->persist($entry); | ||
193 | ++$this->importedEntries; | ||
194 | |||
195 | return $entry; | ||
196 | } | ||
197 | |||
198 | /** | ||
199 | * {@inheritdoc} | ||
200 | */ | ||
201 | protected function setEntryAsRead(array $importedEntry) | ||
202 | { | ||
203 | $importedEntry['is_archived'] = 1; | ||
204 | |||
205 | return $importedEntry; | ||
206 | } | ||
207 | } | ||
diff --git a/src/Wallabag/ImportBundle/Import/ChromeImport.php b/src/Wallabag/ImportBundle/Import/ChromeImport.php new file mode 100644 index 00000000..d7620bcb --- /dev/null +++ b/src/Wallabag/ImportBundle/Import/ChromeImport.php | |||
@@ -0,0 +1,53 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Import; | ||
4 | |||
5 | class ChromeImport extends BrowserImport | ||
6 | { | ||
7 | protected $filepath; | ||
8 | |||
9 | /** | ||
10 | * {@inheritdoc} | ||
11 | */ | ||
12 | public function getName() | ||
13 | { | ||
14 | return 'Chrome'; | ||
15 | } | ||
16 | |||
17 | /** | ||
18 | * {@inheritdoc} | ||
19 | */ | ||
20 | public function getUrl() | ||
21 | { | ||
22 | return 'import_chrome'; | ||
23 | } | ||
24 | |||
25 | /** | ||
26 | * {@inheritdoc} | ||
27 | */ | ||
28 | public function getDescription() | ||
29 | { | ||
30 | return 'import.chrome.description'; | ||
31 | } | ||
32 | |||
33 | /** | ||
34 | * {@inheritdoc} | ||
35 | */ | ||
36 | protected function prepareEntry(array $entry = []) | ||
37 | { | ||
38 | $data = [ | ||
39 | 'title' => $entry['name'], | ||
40 | 'html' => '', | ||
41 | 'url' => $entry['url'], | ||
42 | 'is_archived' => $this->markAsRead, | ||
43 | 'tags' => '', | ||
44 | 'created_at' => substr($entry['date_added'], 0, 10), | ||
45 | ]; | ||
46 | |||
47 | if (array_key_exists('tags', $entry) && $entry['tags'] != '') { | ||
48 | $data['tags'] = $entry['tags']; | ||
49 | } | ||
50 | |||
51 | return $data; | ||
52 | } | ||
53 | } | ||
diff --git a/src/Wallabag/ImportBundle/Import/FirefoxImport.php b/src/Wallabag/ImportBundle/Import/FirefoxImport.php new file mode 100644 index 00000000..e010f5a4 --- /dev/null +++ b/src/Wallabag/ImportBundle/Import/FirefoxImport.php | |||
@@ -0,0 +1,53 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Import; | ||
4 | |||
5 | class FirefoxImport extends BrowserImport | ||
6 | { | ||
7 | protected $filepath; | ||
8 | |||
9 | /** | ||
10 | * {@inheritdoc} | ||
11 | */ | ||
12 | public function getName() | ||
13 | { | ||
14 | return 'Firefox'; | ||
15 | } | ||
16 | |||
17 | /** | ||
18 | * {@inheritdoc} | ||
19 | */ | ||
20 | public function getUrl() | ||
21 | { | ||
22 | return 'import_firefox'; | ||
23 | } | ||
24 | |||
25 | /** | ||
26 | * {@inheritdoc} | ||
27 | */ | ||
28 | public function getDescription() | ||
29 | { | ||
30 | return 'import.firefox.description'; | ||
31 | } | ||
32 | |||
33 | /** | ||
34 | * {@inheritdoc} | ||
35 | */ | ||
36 | protected function prepareEntry(array $entry = []) | ||
37 | { | ||
38 | $data = [ | ||
39 | 'title' => $entry['title'], | ||
40 | 'html' => '', | ||
41 | 'url' => $entry['uri'], | ||
42 | 'is_archived' => $this->markAsRead, | ||
43 | 'tags' => '', | ||
44 | 'created_at' => substr($entry['dateAdded'], 0, 10), | ||
45 | ]; | ||
46 | |||
47 | if (array_key_exists('tags', $entry) && $entry['tags'] != '') { | ||
48 | $data['tags'] = $entry['tags']; | ||
49 | } | ||
50 | |||
51 | return $data; | ||
52 | } | ||
53 | } | ||
diff --git a/src/Wallabag/ImportBundle/Import/InstapaperImport.php b/src/Wallabag/ImportBundle/Import/InstapaperImport.php new file mode 100644 index 00000000..cf4c785c --- /dev/null +++ b/src/Wallabag/ImportBundle/Import/InstapaperImport.php | |||
@@ -0,0 +1,140 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Import; | ||
4 | |||
5 | use Wallabag\CoreBundle\Entity\Entry; | ||
6 | |||
7 | class InstapaperImport extends AbstractImport | ||
8 | { | ||
9 | private $filepath; | ||
10 | |||
11 | /** | ||
12 | * {@inheritdoc} | ||
13 | */ | ||
14 | public function getName() | ||
15 | { | ||
16 | return 'Instapaper'; | ||
17 | } | ||
18 | |||
19 | /** | ||
20 | * {@inheritdoc} | ||
21 | */ | ||
22 | public function getUrl() | ||
23 | { | ||
24 | return 'import_instapaper'; | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * {@inheritdoc} | ||
29 | */ | ||
30 | public function getDescription() | ||
31 | { | ||
32 | return 'import.instapaper.description'; | ||
33 | } | ||
34 | |||
35 | /** | ||
36 | * Set file path to the json file. | ||
37 | * | ||
38 | * @param string $filepath | ||
39 | */ | ||
40 | public function setFilepath($filepath) | ||
41 | { | ||
42 | $this->filepath = $filepath; | ||
43 | |||
44 | return $this; | ||
45 | } | ||
46 | |||
47 | /** | ||
48 | * {@inheritdoc} | ||
49 | */ | ||
50 | public function import() | ||
51 | { | ||
52 | if (!$this->user) { | ||
53 | $this->logger->error('InstapaperImport: user is not defined'); | ||
54 | |||
55 | return false; | ||
56 | } | ||
57 | |||
58 | if (!file_exists($this->filepath) || !is_readable($this->filepath)) { | ||
59 | $this->logger->error('InstapaperImport: unable to read file', ['filepath' => $this->filepath]); | ||
60 | |||
61 | return false; | ||
62 | } | ||
63 | |||
64 | $entries = []; | ||
65 | $handle = fopen($this->filepath, 'r'); | ||
66 | while (($data = fgetcsv($handle, 10240)) !== false) { | ||
67 | if ('URL' === $data[0]) { | ||
68 | continue; | ||
69 | } | ||
70 | |||
71 | $entries[] = [ | ||
72 | 'url' => $data[0], | ||
73 | 'title' => $data[1], | ||
74 | 'status' => $data[3], | ||
75 | 'is_archived' => $data[3] === 'Archive' || $data[3] === 'Starred', | ||
76 | 'is_starred' => $data[3] === 'Starred', | ||
77 | 'content_type' => '', | ||
78 | 'language' => '', | ||
79 | ]; | ||
80 | } | ||
81 | fclose($handle); | ||
82 | |||
83 | if (empty($entries)) { | ||
84 | $this->logger->error('InstapaperImport: no entries in imported file'); | ||
85 | |||
86 | return false; | ||
87 | } | ||
88 | |||
89 | if ($this->producer) { | ||
90 | $this->parseEntriesForProducer($entries); | ||
91 | |||
92 | return true; | ||
93 | } | ||
94 | |||
95 | $this->parseEntries($entries); | ||
96 | |||
97 | return true; | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * {@inheritdoc} | ||
102 | */ | ||
103 | public function parseEntry(array $importedEntry) | ||
104 | { | ||
105 | $existingEntry = $this->em | ||
106 | ->getRepository('WallabagCoreBundle:Entry') | ||
107 | ->findByUrlAndUserId($importedEntry['url'], $this->user->getId()); | ||
108 | |||
109 | if (false !== $existingEntry) { | ||
110 | ++$this->skippedEntries; | ||
111 | |||
112 | return; | ||
113 | } | ||
114 | |||
115 | $entry = new Entry($this->user); | ||
116 | $entry->setUrl($importedEntry['url']); | ||
117 | $entry->setTitle($importedEntry['title']); | ||
118 | |||
119 | // update entry with content (in case fetching failed, the given entry will be return) | ||
120 | $entry = $this->fetchContent($entry, $importedEntry['url'], $importedEntry); | ||
121 | |||
122 | $entry->setArchived($importedEntry['is_archived']); | ||
123 | $entry->setStarred($importedEntry['is_starred']); | ||
124 | |||
125 | $this->em->persist($entry); | ||
126 | ++$this->importedEntries; | ||
127 | |||
128 | return $entry; | ||
129 | } | ||
130 | |||
131 | /** | ||
132 | * {@inheritdoc} | ||
133 | */ | ||
134 | protected function setEntryAsRead(array $importedEntry) | ||
135 | { | ||
136 | $importedEntry['is_archived'] = 1; | ||
137 | |||
138 | return $importedEntry; | ||
139 | } | ||
140 | } | ||
diff --git a/src/Wallabag/ImportBundle/Import/PocketImport.php b/src/Wallabag/ImportBundle/Import/PocketImport.php index 798cfdae..327e2500 100644 --- a/src/Wallabag/ImportBundle/Import/PocketImport.php +++ b/src/Wallabag/ImportBundle/Import/PocketImport.php | |||
@@ -6,31 +6,34 @@ use Psr\Log\NullLogger; | |||
6 | use Doctrine\ORM\EntityManager; | 6 | use Doctrine\ORM\EntityManager; |
7 | use GuzzleHttp\Client; | 7 | use GuzzleHttp\Client; |
8 | use GuzzleHttp\Exception\RequestException; | 8 | use GuzzleHttp\Exception\RequestException; |
9 | use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; | ||
10 | use Wallabag\CoreBundle\Entity\Entry; | 9 | use Wallabag\CoreBundle\Entity\Entry; |
11 | use Wallabag\CoreBundle\Helper\ContentProxy; | 10 | use Wallabag\CoreBundle\Helper\ContentProxy; |
12 | use Craue\ConfigBundle\Util\Config; | ||
13 | 11 | ||
14 | class PocketImport extends AbstractImport | 12 | class PocketImport extends AbstractImport |
15 | { | 13 | { |
16 | private $user; | ||
17 | private $client; | 14 | private $client; |
18 | private $consumerKey; | 15 | private $accessToken; |
19 | private $skippedEntries = 0; | ||
20 | private $importedEntries = 0; | ||
21 | private $markAsRead; | ||
22 | protected $accessToken; | ||
23 | 16 | ||
24 | public function __construct(TokenStorageInterface $tokenStorage, EntityManager $em, ContentProxy $contentProxy, Config $craueConfig) | 17 | const NB_ELEMENTS = 5000; |
18 | |||
19 | public function __construct(EntityManager $em, ContentProxy $contentProxy) | ||
25 | { | 20 | { |
26 | $this->user = $tokenStorage->getToken()->getUser(); | ||
27 | $this->em = $em; | 21 | $this->em = $em; |
28 | $this->contentProxy = $contentProxy; | 22 | $this->contentProxy = $contentProxy; |
29 | $this->consumerKey = $craueConfig->get('pocket_consumer_key'); | ||
30 | $this->logger = new NullLogger(); | 23 | $this->logger = new NullLogger(); |
31 | } | 24 | } |
32 | 25 | ||
33 | /** | 26 | /** |
27 | * Only used for test purpose. | ||
28 | * | ||
29 | * @return string | ||
30 | */ | ||
31 | public function getAccessToken() | ||
32 | { | ||
33 | return $this->accessToken; | ||
34 | } | ||
35 | |||
36 | /** | ||
34 | * {@inheritdoc} | 37 | * {@inheritdoc} |
35 | */ | 38 | */ |
36 | public function getName() | 39 | public function getName() |
@@ -66,7 +69,7 @@ class PocketImport extends AbstractImport | |||
66 | $request = $this->client->createRequest('POST', 'https://getpocket.com/v3/oauth/request', | 69 | $request = $this->client->createRequest('POST', 'https://getpocket.com/v3/oauth/request', |
67 | [ | 70 | [ |
68 | 'body' => json_encode([ | 71 | 'body' => json_encode([ |
69 | 'consumer_key' => $this->consumerKey, | 72 | 'consumer_key' => $this->user->getConfig()->getPocketConsumerKey(), |
70 | 'redirect_uri' => $redirectUri, | 73 | 'redirect_uri' => $redirectUri, |
71 | ]), | 74 | ]), |
72 | ] | 75 | ] |
@@ -96,7 +99,7 @@ class PocketImport extends AbstractImport | |||
96 | $request = $this->client->createRequest('POST', 'https://getpocket.com/v3/oauth/authorize', | 99 | $request = $this->client->createRequest('POST', 'https://getpocket.com/v3/oauth/authorize', |
97 | [ | 100 | [ |
98 | 'body' => json_encode([ | 101 | 'body' => json_encode([ |
99 | 'consumer_key' => $this->consumerKey, | 102 | 'consumer_key' => $this->user->getConfig()->getPocketConsumerKey(), |
100 | 'code' => $code, | 103 | 'code' => $code, |
101 | ]), | 104 | ]), |
102 | ] | 105 | ] |
@@ -116,38 +119,22 @@ class PocketImport extends AbstractImport | |||
116 | } | 119 | } |
117 | 120 | ||
118 | /** | 121 | /** |
119 | * Set whether articles must be all marked as read. | ||
120 | * | ||
121 | * @param bool $markAsRead | ||
122 | */ | ||
123 | public function setMarkAsRead($markAsRead) | ||
124 | { | ||
125 | $this->markAsRead = $markAsRead; | ||
126 | |||
127 | return $this; | ||
128 | } | ||
129 | |||
130 | /** | ||
131 | * Get whether articles must be all marked as read. | ||
132 | */ | ||
133 | public function getMarkAsRead() | ||
134 | { | ||
135 | return $this->markAsRead; | ||
136 | } | ||
137 | |||
138 | /** | ||
139 | * {@inheritdoc} | 122 | * {@inheritdoc} |
140 | */ | 123 | */ |
141 | public function import() | 124 | public function import($offset = 0) |
142 | { | 125 | { |
126 | static $run = 0; | ||
127 | |||
143 | $request = $this->client->createRequest('POST', 'https://getpocket.com/v3/get', | 128 | $request = $this->client->createRequest('POST', 'https://getpocket.com/v3/get', |
144 | [ | 129 | [ |
145 | 'body' => json_encode([ | 130 | 'body' => json_encode([ |
146 | 'consumer_key' => $this->consumerKey, | 131 | 'consumer_key' => $this->user->getConfig()->getPocketConsumerKey(), |
147 | 'access_token' => $this->accessToken, | 132 | 'access_token' => $this->accessToken, |
148 | 'detailType' => 'complete', | 133 | 'detailType' => 'complete', |
149 | 'state' => 'all', | 134 | 'state' => 'all', |
150 | 'sort' => 'oldest', | 135 | 'sort' => 'newest', |
136 | 'count' => self::NB_ELEMENTS, | ||
137 | 'offset' => $offset, | ||
151 | ]), | 138 | ]), |
152 | ] | 139 | ] |
153 | ); | 140 | ); |
@@ -162,20 +149,24 @@ class PocketImport extends AbstractImport | |||
162 | 149 | ||
163 | $entries = $response->json(); | 150 | $entries = $response->json(); |
164 | 151 | ||
165 | $this->parseEntries($entries['list']); | 152 | if ($this->producer) { |
153 | $this->parseEntriesForProducer($entries['list']); | ||
154 | } else { | ||
155 | $this->parseEntries($entries['list']); | ||
156 | } | ||
166 | 157 | ||
167 | return true; | 158 | // if we retrieve exactly the amount of items requested it means we can get more |
168 | } | 159 | // re-call import and offset item by the amount previous received: |
160 | // - first call get 5k offset 0 | ||
161 | // - second call get 5k offset 5k | ||
162 | // - and so on | ||
163 | if (count($entries['list']) === self::NB_ELEMENTS) { | ||
164 | ++$run; | ||
169 | 165 | ||
170 | /** | 166 | return $this->import(self::NB_ELEMENTS * $run); |
171 | * {@inheritdoc} | 167 | } |
172 | */ | 168 | |
173 | public function getSummary() | 169 | return true; |
174 | { | ||
175 | return [ | ||
176 | 'skipped' => $this->skippedEntries, | ||
177 | 'imported' => $this->importedEntries, | ||
178 | ]; | ||
179 | } | 170 | } |
180 | 171 | ||
181 | /** | 172 | /** |
@@ -189,77 +180,75 @@ class PocketImport extends AbstractImport | |||
189 | } | 180 | } |
190 | 181 | ||
191 | /** | 182 | /** |
192 | * @see https://getpocket.com/developer/docs/v3/retrieve | 183 | * {@inheritdoc} |
193 | * | 184 | * |
194 | * @param $entries | 185 | * @see https://getpocket.com/developer/docs/v3/retrieve |
195 | */ | 186 | */ |
196 | private function parseEntries($entries) | 187 | public function parseEntry(array $importedEntry) |
197 | { | 188 | { |
198 | $i = 1; | 189 | $url = isset($importedEntry['resolved_url']) && $importedEntry['resolved_url'] != '' ? $importedEntry['resolved_url'] : $importedEntry['given_url']; |
199 | 190 | ||
200 | foreach ($entries as $pocketEntry) { | 191 | $existingEntry = $this->em |
201 | $url = isset($pocketEntry['resolved_url']) && $pocketEntry['resolved_url'] != '' ? $pocketEntry['resolved_url'] : $pocketEntry['given_url']; | 192 | ->getRepository('WallabagCoreBundle:Entry') |
202 | 193 | ->findByUrlAndUserId($url, $this->user->getId()); | |
203 | $existingEntry = $this->em | 194 | |
204 | ->getRepository('WallabagCoreBundle:Entry') | 195 | if (false !== $existingEntry) { |
205 | ->findByUrlAndUserId($url, $this->user->getId()); | 196 | ++$this->skippedEntries; |
206 | 197 | ||
207 | if (false !== $existingEntry) { | 198 | return; |
208 | ++$this->skippedEntries; | 199 | } |
209 | continue; | 200 | |
210 | } | 201 | $entry = new Entry($this->user); |
211 | 202 | $entry->setUrl($url); | |
212 | $entry = new Entry($this->user); | 203 | |
213 | $entry = $this->fetchContent($entry, $url); | 204 | // update entry with content (in case fetching failed, the given entry will be return) |
214 | 205 | $entry = $this->fetchContent($entry, $url); | |
215 | // jump to next entry in case of problem while getting content | 206 | |
216 | if (false === $entry) { | 207 | // 0, 1, 2 - 1 if the item is archived - 2 if the item should be deleted |
217 | ++$this->skippedEntries; | 208 | $entry->setArchived($importedEntry['status'] == 1 || $this->markAsRead); |
218 | continue; | 209 | |
219 | } | 210 | // 0 or 1 - 1 If the item is starred |
220 | 211 | $entry->setStarred($importedEntry['favorite'] == 1); | |
221 | // 0, 1, 2 - 1 if the item is archived - 2 if the item should be deleted | 212 | |
222 | if ($pocketEntry['status'] == 1 || $this->markAsRead) { | 213 | $title = 'Untitled'; |
223 | $entry->setArchived(true); | 214 | if (isset($importedEntry['resolved_title']) && $importedEntry['resolved_title'] != '') { |
224 | } | 215 | $title = $importedEntry['resolved_title']; |
225 | 216 | } elseif (isset($importedEntry['given_title']) && $importedEntry['given_title'] != '') { | |
226 | // 0 or 1 - 1 If the item is starred | 217 | $title = $importedEntry['given_title']; |
227 | if ($pocketEntry['favorite'] == 1) { | 218 | } |
228 | $entry->setStarred(true); | 219 | |
229 | } | 220 | $entry->setTitle($title); |
230 | 221 | ||
231 | $title = 'Untitled'; | 222 | // 0, 1, or 2 - 1 if the item has images in it - 2 if the item is an image |
232 | if (isset($pocketEntry['resolved_title']) && $pocketEntry['resolved_title'] != '') { | 223 | if (isset($importedEntry['has_image']) && $importedEntry['has_image'] > 0 && isset($importedEntry['images'][1])) { |
233 | $title = $pocketEntry['resolved_title']; | 224 | $entry->setPreviewPicture($importedEntry['images'][1]['src']); |
234 | } elseif (isset($pocketEntry['given_title']) && $pocketEntry['given_title'] != '') { | 225 | } |
235 | $title = $pocketEntry['given_title']; | 226 | |
236 | } | 227 | if (isset($importedEntry['tags']) && !empty($importedEntry['tags'])) { |
237 | 228 | $this->contentProxy->assignTagsToEntry( | |
238 | $entry->setTitle($title); | 229 | $entry, |
239 | 230 | array_keys($importedEntry['tags']), | |
240 | // 0, 1, or 2 - 1 if the item has images in it - 2 if the item is an image | 231 | $this->em->getUnitOfWork()->getScheduledEntityInsertions() |
241 | if (isset($pocketEntry['has_image']) && $pocketEntry['has_image'] > 0 && isset($pocketEntry['images'][1])) { | 232 | ); |
242 | $entry->setPreviewPicture($pocketEntry['images'][1]['src']); | ||
243 | } | ||
244 | |||
245 | if (isset($pocketEntry['tags']) && !empty($pocketEntry['tags'])) { | ||
246 | $this->contentProxy->assignTagsToEntry( | ||
247 | $entry, | ||
248 | array_keys($pocketEntry['tags']) | ||
249 | ); | ||
250 | } | ||
251 | |||
252 | $this->em->persist($entry); | ||
253 | ++$this->importedEntries; | ||
254 | |||
255 | // flush every 20 entries | ||
256 | if (($i % 20) === 0) { | ||
257 | $this->em->flush(); | ||
258 | $this->em->clear($entry); | ||
259 | } | ||
260 | ++$i; | ||
261 | } | 233 | } |
262 | 234 | ||
263 | $this->em->flush(); | 235 | if (!empty($importedEntry['time_added'])) { |
236 | $entry->setCreatedAt((new \DateTime())->setTimestamp($importedEntry['time_added'])); | ||
237 | } | ||
238 | |||
239 | $this->em->persist($entry); | ||
240 | ++$this->importedEntries; | ||
241 | |||
242 | return $entry; | ||
243 | } | ||
244 | |||
245 | /** | ||
246 | * {@inheritdoc} | ||
247 | */ | ||
248 | protected function setEntryAsRead(array $importedEntry) | ||
249 | { | ||
250 | $importedEntry['status'] = '1'; | ||
251 | |||
252 | return $importedEntry; | ||
264 | } | 253 | } |
265 | } | 254 | } |
diff --git a/src/Wallabag/ImportBundle/Import/ReadabilityImport.php b/src/Wallabag/ImportBundle/Import/ReadabilityImport.php new file mode 100644 index 00000000..b8c0f777 --- /dev/null +++ b/src/Wallabag/ImportBundle/Import/ReadabilityImport.php | |||
@@ -0,0 +1,134 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Import; | ||
4 | |||
5 | use Wallabag\CoreBundle\Entity\Entry; | ||
6 | |||
7 | class ReadabilityImport extends AbstractImport | ||
8 | { | ||
9 | private $filepath; | ||
10 | |||
11 | /** | ||
12 | * {@inheritdoc} | ||
13 | */ | ||
14 | public function getName() | ||
15 | { | ||
16 | return 'Readability'; | ||
17 | } | ||
18 | |||
19 | /** | ||
20 | * {@inheritdoc} | ||
21 | */ | ||
22 | public function getUrl() | ||
23 | { | ||
24 | return 'import_readability'; | ||
25 | } | ||
26 | |||
27 | /** | ||
28 | * {@inheritdoc} | ||
29 | */ | ||
30 | public function getDescription() | ||
31 | { | ||
32 | return 'import.readability.description'; | ||
33 | } | ||
34 | |||
35 | /** | ||
36 | * Set file path to the json file. | ||
37 | * | ||
38 | * @param string $filepath | ||
39 | */ | ||
40 | public function setFilepath($filepath) | ||
41 | { | ||
42 | $this->filepath = $filepath; | ||
43 | |||
44 | return $this; | ||
45 | } | ||
46 | |||
47 | /** | ||
48 | * {@inheritdoc} | ||
49 | */ | ||
50 | public function import() | ||
51 | { | ||
52 | if (!$this->user) { | ||
53 | $this->logger->error('ReadabilityImport: user is not defined'); | ||
54 | |||
55 | return false; | ||
56 | } | ||
57 | |||
58 | if (!file_exists($this->filepath) || !is_readable($this->filepath)) { | ||
59 | $this->logger->error('ReadabilityImport: unable to read file', ['filepath' => $this->filepath]); | ||
60 | |||
61 | return false; | ||
62 | } | ||
63 | |||
64 | $data = json_decode(file_get_contents($this->filepath), true); | ||
65 | |||
66 | if (empty($data) || empty($data['bookmarks'])) { | ||
67 | $this->logger->error('ReadabilityImport: no entries in imported file'); | ||
68 | |||
69 | return false; | ||
70 | } | ||
71 | |||
72 | if ($this->producer) { | ||
73 | $this->parseEntriesForProducer($data['bookmarks']); | ||
74 | |||
75 | return true; | ||
76 | } | ||
77 | |||
78 | $this->parseEntries($data['bookmarks']); | ||
79 | |||
80 | return true; | ||
81 | } | ||
82 | |||
83 | /** | ||
84 | * {@inheritdoc} | ||
85 | */ | ||
86 | public function parseEntry(array $importedEntry) | ||
87 | { | ||
88 | $existingEntry = $this->em | ||
89 | ->getRepository('WallabagCoreBundle:Entry') | ||
90 | ->findByUrlAndUserId($importedEntry['article__url'], $this->user->getId()); | ||
91 | |||
92 | if (false !== $existingEntry) { | ||
93 | ++$this->skippedEntries; | ||
94 | |||
95 | return; | ||
96 | } | ||
97 | |||
98 | $data = [ | ||
99 | 'title' => $importedEntry['article__title'], | ||
100 | 'url' => $importedEntry['article__url'], | ||
101 | 'content_type' => '', | ||
102 | 'language' => '', | ||
103 | 'is_archived' => $importedEntry['archive'] || $this->markAsRead, | ||
104 | 'is_starred' => $importedEntry['favorite'], | ||
105 | 'created_at' => $importedEntry['date_added'], | ||
106 | ]; | ||
107 | |||
108 | $entry = new Entry($this->user); | ||
109 | $entry->setUrl($data['url']); | ||
110 | $entry->setTitle($data['title']); | ||
111 | |||
112 | // update entry with content (in case fetching failed, the given entry will be return) | ||
113 | $entry = $this->fetchContent($entry, $data['url'], $data); | ||
114 | |||
115 | $entry->setArchived($data['is_archived']); | ||
116 | $entry->setStarred($data['is_starred']); | ||
117 | $entry->setCreatedAt(new \DateTime($data['created_at'])); | ||
118 | |||
119 | $this->em->persist($entry); | ||
120 | ++$this->importedEntries; | ||
121 | |||
122 | return $entry; | ||
123 | } | ||
124 | |||
125 | /** | ||
126 | * {@inheritdoc} | ||
127 | */ | ||
128 | protected function setEntryAsRead(array $importedEntry) | ||
129 | { | ||
130 | $importedEntry['archive'] = 1; | ||
131 | |||
132 | return $importedEntry; | ||
133 | } | ||
134 | } | ||
diff --git a/src/Wallabag/ImportBundle/Import/WallabagImport.php b/src/Wallabag/ImportBundle/Import/WallabagImport.php index a1cc085b..702da057 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagImport.php +++ b/src/Wallabag/ImportBundle/Import/WallabagImport.php | |||
@@ -3,15 +3,10 @@ | |||
3 | namespace Wallabag\ImportBundle\Import; | 3 | namespace Wallabag\ImportBundle\Import; |
4 | 4 | ||
5 | use Wallabag\CoreBundle\Entity\Entry; | 5 | use Wallabag\CoreBundle\Entity\Entry; |
6 | use Wallabag\UserBundle\Entity\User; | ||
7 | 6 | ||
8 | abstract class WallabagImport extends AbstractImport | 7 | abstract class WallabagImport extends AbstractImport |
9 | { | 8 | { |
10 | protected $user; | ||
11 | protected $skippedEntries = 0; | ||
12 | protected $importedEntries = 0; | ||
13 | protected $filepath; | 9 | protected $filepath; |
14 | protected $markAsRead; | ||
15 | // untitled in all languages from v1 | 10 | // untitled in all languages from v1 |
16 | protected $untitled = [ | 11 | protected $untitled = [ |
17 | 'Untitled', | 12 | 'Untitled', |
@@ -29,19 +24,6 @@ abstract class WallabagImport extends AbstractImport | |||
29 | ]; | 24 | ]; |
30 | 25 | ||
31 | /** | 26 | /** |
32 | * We define the user in a custom call because on the import command there is no logged in user. | ||
33 | * So we can't retrieve user from the `security.token_storage` service. | ||
34 | * | ||
35 | * @param User $user | ||
36 | */ | ||
37 | public function setUser(User $user) | ||
38 | { | ||
39 | $this->user = $user; | ||
40 | |||
41 | return $this; | ||
42 | } | ||
43 | |||
44 | /** | ||
45 | * {@inheritdoc} | 27 | * {@inheritdoc} |
46 | */ | 28 | */ |
47 | abstract public function getName(); | 29 | abstract public function getName(); |
@@ -76,26 +58,23 @@ abstract class WallabagImport extends AbstractImport | |||
76 | $data = json_decode(file_get_contents($this->filepath), true); | 58 | $data = json_decode(file_get_contents($this->filepath), true); |
77 | 59 | ||
78 | if (empty($data)) { | 60 | if (empty($data)) { |
61 | $this->logger->error('WallabagImport: no entries in imported file'); | ||
62 | |||
79 | return false; | 63 | return false; |
80 | } | 64 | } |
81 | 65 | ||
66 | if ($this->producer) { | ||
67 | $this->parseEntriesForProducer($data); | ||
68 | |||
69 | return true; | ||
70 | } | ||
71 | |||
82 | $this->parseEntries($data); | 72 | $this->parseEntries($data); |
83 | 73 | ||
84 | return true; | 74 | return true; |
85 | } | 75 | } |
86 | 76 | ||
87 | /** | 77 | /** |
88 | * {@inheritdoc} | ||
89 | */ | ||
90 | public function getSummary() | ||
91 | { | ||
92 | return [ | ||
93 | 'skipped' => $this->skippedEntries, | ||
94 | 'imported' => $this->importedEntries, | ||
95 | ]; | ||
96 | } | ||
97 | |||
98 | /** | ||
99 | * Set file path to the json file. | 78 | * Set file path to the json file. |
100 | * | 79 | * |
101 | * @param string $filepath | 80 | * @param string $filepath |
@@ -108,85 +87,60 @@ abstract class WallabagImport extends AbstractImport | |||
108 | } | 87 | } |
109 | 88 | ||
110 | /** | 89 | /** |
111 | * Set whether articles must be all marked as read. | 90 | * {@inheritdoc} |
112 | * | ||
113 | * @param bool $markAsRead | ||
114 | */ | 91 | */ |
115 | public function setMarkAsRead($markAsRead) | 92 | public function parseEntry(array $importedEntry) |
116 | { | 93 | { |
117 | $this->markAsRead = $markAsRead; | 94 | $existingEntry = $this->em |
95 | ->getRepository('WallabagCoreBundle:Entry') | ||
96 | ->findByUrlAndUserId($importedEntry['url'], $this->user->getId()); | ||
118 | 97 | ||
119 | return $this; | 98 | if (false !== $existingEntry) { |
120 | } | 99 | ++$this->skippedEntries; |
121 | 100 | ||
122 | /** | 101 | return; |
123 | * Parse and insert all given entries. | 102 | } |
124 | * | ||
125 | * @param $entries | ||
126 | */ | ||
127 | protected function parseEntries($entries) | ||
128 | { | ||
129 | $i = 1; | ||
130 | 103 | ||
131 | foreach ($entries as $importedEntry) { | 104 | $data = $this->prepareEntry($importedEntry); |
132 | $existingEntry = $this->em | ||
133 | ->getRepository('WallabagCoreBundle:Entry') | ||
134 | ->findByUrlAndUserId($importedEntry['url'], $this->user->getId()); | ||
135 | 105 | ||
136 | if (false !== $existingEntry) { | 106 | $entry = new Entry($this->user); |
137 | ++$this->skippedEntries; | 107 | $entry->setUrl($data['url']); |
138 | continue; | 108 | $entry->setTitle($data['title']); |
139 | } | ||
140 | 109 | ||
141 | $data = $this->prepareEntry($importedEntry, $this->markAsRead); | 110 | // update entry with content (in case fetching failed, the given entry will be return) |
111 | $entry = $this->fetchContent($entry, $data['url'], $data); | ||
142 | 112 | ||
143 | $entry = $this->fetchContent( | 113 | if (array_key_exists('tags', $data)) { |
144 | new Entry($this->user), | 114 | $this->contentProxy->assignTagsToEntry( |
145 | $importedEntry['url'], | 115 | $entry, |
146 | $data | 116 | $data['tags'], |
117 | $this->em->getUnitOfWork()->getScheduledEntityInsertions() | ||
147 | ); | 118 | ); |
119 | } | ||
148 | 120 | ||
149 | // jump to next entry in case of problem while getting content | 121 | if (isset($importedEntry['preview_picture'])) { |
150 | if (false === $entry) { | 122 | $entry->setPreviewPicture($importedEntry['preview_picture']); |
151 | ++$this->skippedEntries; | ||
152 | continue; | ||
153 | } | ||
154 | |||
155 | if (array_key_exists('tags', $data)) { | ||
156 | $this->contentProxy->assignTagsToEntry( | ||
157 | $entry, | ||
158 | $data['tags'] | ||
159 | ); | ||
160 | } | ||
161 | |||
162 | if (isset($importedEntry['preview_picture'])) { | ||
163 | $entry->setPreviewPicture($importedEntry['preview_picture']); | ||
164 | } | ||
165 | |||
166 | $entry->setArchived($data['is_archived']); | ||
167 | $entry->setStarred($data['is_starred']); | ||
168 | |||
169 | $this->em->persist($entry); | ||
170 | ++$this->importedEntries; | ||
171 | |||
172 | // flush every 20 entries | ||
173 | if (($i % 20) === 0) { | ||
174 | $this->em->flush(); | ||
175 | $this->em->clear($entry); | ||
176 | } | ||
177 | ++$i; | ||
178 | } | 123 | } |
179 | 124 | ||
180 | $this->em->flush(); | 125 | $entry->setArchived($data['is_archived']); |
126 | $entry->setStarred($data['is_starred']); | ||
127 | |||
128 | if (!empty($data['created_at'])) { | ||
129 | $entry->setCreatedAt(new \DateTime($data['created_at'])); | ||
130 | } | ||
131 | |||
132 | $this->em->persist($entry); | ||
133 | ++$this->importedEntries; | ||
134 | |||
135 | return $entry; | ||
181 | } | 136 | } |
182 | 137 | ||
183 | /** | 138 | /** |
184 | * This should return a cleaned array for a given entry to be given to `updateEntry`. | 139 | * This should return a cleaned array for a given entry to be given to `updateEntry`. |
185 | * | 140 | * |
186 | * @param array $entry Data from the imported file | 141 | * @param array $entry Data from the imported file |
187 | * @param bool $markAsRead Should we mark as read content? | ||
188 | * | 142 | * |
189 | * @return array | 143 | * @return array |
190 | */ | 144 | */ |
191 | abstract protected function prepareEntry($entry = [], $markAsRead = false); | 145 | abstract protected function prepareEntry($entry = []); |
192 | } | 146 | } |
diff --git a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php index 6cf3467a..4f001062 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagV1Import.php +++ b/src/Wallabag/ImportBundle/Import/WallabagV1Import.php | |||
@@ -31,7 +31,7 @@ class WallabagV1Import extends WallabagImport | |||
31 | /** | 31 | /** |
32 | * {@inheritdoc} | 32 | * {@inheritdoc} |
33 | */ | 33 | */ |
34 | protected function prepareEntry($entry = [], $markAsRead = false) | 34 | protected function prepareEntry($entry = []) |
35 | { | 35 | { |
36 | $data = [ | 36 | $data = [ |
37 | 'title' => $entry['title'], | 37 | 'title' => $entry['title'], |
@@ -39,9 +39,10 @@ class WallabagV1Import extends WallabagImport | |||
39 | 'url' => $entry['url'], | 39 | 'url' => $entry['url'], |
40 | 'content_type' => '', | 40 | 'content_type' => '', |
41 | 'language' => '', | 41 | 'language' => '', |
42 | 'is_archived' => $entry['is_read'] || $markAsRead, | 42 | 'is_archived' => $entry['is_read'] || $this->markAsRead, |
43 | 'is_starred' => $entry['is_fav'], | 43 | 'is_starred' => $entry['is_fav'], |
44 | 'tags' => '', | 44 | 'tags' => '', |
45 | 'created_at' => '', | ||
45 | ]; | 46 | ]; |
46 | 47 | ||
47 | // force content to be refreshed in case on bad fetch in the v1 installation | 48 | // force content to be refreshed in case on bad fetch in the v1 installation |
@@ -56,4 +57,14 @@ class WallabagV1Import extends WallabagImport | |||
56 | 57 | ||
57 | return $data; | 58 | return $data; |
58 | } | 59 | } |
60 | |||
61 | /** | ||
62 | * {@inheritdoc} | ||
63 | */ | ||
64 | protected function setEntryAsRead(array $importedEntry) | ||
65 | { | ||
66 | $importedEntry['is_read'] = 1; | ||
67 | |||
68 | return $importedEntry; | ||
69 | } | ||
59 | } | 70 | } |
diff --git a/src/Wallabag/ImportBundle/Import/WallabagV2Import.php b/src/Wallabag/ImportBundle/Import/WallabagV2Import.php index d0035b63..37c8ca14 100644 --- a/src/Wallabag/ImportBundle/Import/WallabagV2Import.php +++ b/src/Wallabag/ImportBundle/Import/WallabagV2Import.php | |||
@@ -31,12 +31,22 @@ class WallabagV2Import extends WallabagImport | |||
31 | /** | 31 | /** |
32 | * {@inheritdoc} | 32 | * {@inheritdoc} |
33 | */ | 33 | */ |
34 | protected function prepareEntry($entry = [], $markAsRead = false) | 34 | protected function prepareEntry($entry = []) |
35 | { | 35 | { |
36 | return [ | 36 | return [ |
37 | 'html' => $entry['content'], | 37 | 'html' => $entry['content'], |
38 | 'content_type' => $entry['mimetype'], | 38 | 'content_type' => $entry['mimetype'], |
39 | 'is_archived' => ($entry['is_archived'] || $markAsRead), | 39 | 'is_archived' => ($entry['is_archived'] || $this->markAsRead), |
40 | ] + $entry; | 40 | ] + $entry; |
41 | } | 41 | } |
42 | |||
43 | /** | ||
44 | * {@inheritdoc} | ||
45 | */ | ||
46 | protected function setEntryAsRead(array $importedEntry) | ||
47 | { | ||
48 | $importedEntry['is_archived'] = 1; | ||
49 | |||
50 | return $importedEntry; | ||
51 | } | ||
42 | } | 52 | } |
diff --git a/src/Wallabag/ImportBundle/Redis/Producer.php b/src/Wallabag/ImportBundle/Redis/Producer.php new file mode 100644 index 00000000..fedc3e57 --- /dev/null +++ b/src/Wallabag/ImportBundle/Redis/Producer.php | |||
@@ -0,0 +1,36 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\ImportBundle\Redis; | ||
4 | |||
5 | use OldSound\RabbitMqBundle\RabbitMq\ProducerInterface; | ||
6 | use Simpleue\Queue\RedisQueue; | ||
7 | |||
8 | /** | ||
9 | * This is a proxy class for "Simpleue\Queue\RedisQueue". | ||
10 | * It allow us to use the same way to publish a message between RabbitMQ & Redis: publish(). | ||
11 | * | ||
12 | * It implements the ProducerInterface of RabbitMQ (yes it's ugly) so we can have the same | ||
13 | * kind of class which implements the same interface. | ||
14 | * So we can inject either a RabbitMQ producer or a Redis producer with the same signature | ||
15 | */ | ||
16 | class Producer implements ProducerInterface | ||
17 | { | ||
18 | private $queue; | ||
19 | |||
20 | public function __construct(RedisQueue $queue) | ||
21 | { | ||
22 | $this->queue = $queue; | ||
23 | } | ||
24 | |||
25 | /** | ||
26 | * Publish a message in the Redis queue. | ||
27 | * | ||
28 | * @param string $msgBody | ||
29 | * @param string $routingKey NOT USED | ||
30 | * @param array $additionalProperties NOT USED | ||
31 | */ | ||
32 | public function publish($msgBody, $routingKey = '', $additionalProperties = array()) | ||
33 | { | ||
34 | $this->queue->sendJob($msgBody); | ||
35 | } | ||
36 | } | ||
diff --git a/src/Wallabag/ImportBundle/Resources/config/rabbit.yml b/src/Wallabag/ImportBundle/Resources/config/rabbit.yml new file mode 100644 index 00000000..70b8a0d4 --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/config/rabbit.yml | |||
@@ -0,0 +1,51 @@ | |||
1 | # RabbitMQ stuff | ||
2 | services: | ||
3 | wallabag_import.consumer.amqp.pocket: | ||
4 | class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer | ||
5 | arguments: | ||
6 | - "@doctrine.orm.entity_manager" | ||
7 | - "@wallabag_user.user_repository" | ||
8 | - "@wallabag_import.pocket.import" | ||
9 | - "@logger" | ||
10 | wallabag_import.consumer.amqp.readability: | ||
11 | class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer | ||
12 | arguments: | ||
13 | - "@doctrine.orm.entity_manager" | ||
14 | - "@wallabag_user.user_repository" | ||
15 | - "@wallabag_import.readability.import" | ||
16 | - "@logger" | ||
17 | wallabag_import.consumer.amqp.instapaper: | ||
18 | class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer | ||
19 | arguments: | ||
20 | - "@doctrine.orm.entity_manager" | ||
21 | - "@wallabag_user.user_repository" | ||
22 | - "@wallabag_import.instapaper.import" | ||
23 | - "@logger" | ||
24 | wallabag_import.consumer.amqp.wallabag_v1: | ||
25 | class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer | ||
26 | arguments: | ||
27 | - "@doctrine.orm.entity_manager" | ||
28 | - "@wallabag_user.user_repository" | ||
29 | - "@wallabag_import.wallabag_v1.import" | ||
30 | - "@logger" | ||
31 | wallabag_import.consumer.amqp.wallabag_v2: | ||
32 | class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer | ||
33 | arguments: | ||
34 | - "@doctrine.orm.entity_manager" | ||
35 | - "@wallabag_user.user_repository" | ||
36 | - "@wallabag_import.wallabag_v2.import" | ||
37 | - "@logger" | ||
38 | wallabag_import.consumer.amqp.firefox: | ||
39 | class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer | ||
40 | arguments: | ||
41 | - "@doctrine.orm.entity_manager" | ||
42 | - "@wallabag_user.user_repository" | ||
43 | - "@wallabag_import.firefox.import" | ||
44 | - "@logger" | ||
45 | wallabag_import.consumer.amqp.chrome: | ||
46 | class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer | ||
47 | arguments: | ||
48 | - "@doctrine.orm.entity_manager" | ||
49 | - "@wallabag_user.user_repository" | ||
50 | - "@wallabag_import.chrome.import" | ||
51 | - "@logger" | ||
diff --git a/src/Wallabag/ImportBundle/Resources/config/redis.yml b/src/Wallabag/ImportBundle/Resources/config/redis.yml new file mode 100644 index 00000000..0a81e1b5 --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/config/redis.yml | |||
@@ -0,0 +1,141 @@ | |||
1 | # Redis stuff | ||
2 | services: | ||
3 | # readability | ||
4 | wallabag_import.queue.redis.readability: | ||
5 | class: Simpleue\Queue\RedisQueue | ||
6 | arguments: | ||
7 | - "@wallabag_core.redis.client" | ||
8 | - "wallabag.import.readability" | ||
9 | |||
10 | wallabag_import.producer.redis.readability: | ||
11 | class: Wallabag\ImportBundle\Redis\Producer | ||
12 | arguments: | ||
13 | - "@wallabag_import.queue.redis.readability" | ||
14 | |||
15 | wallabag_import.consumer.redis.readability: | ||
16 | class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer | ||
17 | arguments: | ||
18 | - "@doctrine.orm.entity_manager" | ||
19 | - "@wallabag_user.user_repository" | ||
20 | - "@wallabag_import.readability.import" | ||
21 | - "@logger" | ||
22 | |||
23 | # instapaper | ||
24 | wallabag_import.queue.redis.instapaper: | ||
25 | class: Simpleue\Queue\RedisQueue | ||
26 | arguments: | ||
27 | - "@wallabag_core.redis.client" | ||
28 | - "wallabag.import.instapaper" | ||
29 | |||
30 | wallabag_import.producer.redis.instapaper: | ||
31 | class: Wallabag\ImportBundle\Redis\Producer | ||
32 | arguments: | ||
33 | - "@wallabag_import.queue.redis.instapaper" | ||
34 | |||
35 | wallabag_import.consumer.redis.instapaper: | ||
36 | class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer | ||
37 | arguments: | ||
38 | - "@doctrine.orm.entity_manager" | ||
39 | - "@wallabag_user.user_repository" | ||
40 | - "@wallabag_import.instapaper.import" | ||
41 | - "@logger" | ||
42 | |||
43 | |||
44 | wallabag_import.queue.redis.pocket: | ||
45 | class: Simpleue\Queue\RedisQueue | ||
46 | arguments: | ||
47 | - "@wallabag_core.redis.client" | ||
48 | - "wallabag.import.pocket" | ||
49 | |||
50 | wallabag_import.producer.redis.pocket: | ||
51 | class: Wallabag\ImportBundle\Redis\Producer | ||
52 | arguments: | ||
53 | - "@wallabag_import.queue.redis.pocket" | ||
54 | |||
55 | wallabag_import.consumer.redis.pocket: | ||
56 | class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer | ||
57 | arguments: | ||
58 | - "@doctrine.orm.entity_manager" | ||
59 | - "@wallabag_user.user_repository" | ||
60 | - "@wallabag_import.pocket.import" | ||
61 | - "@logger" | ||
62 | |||
63 | # wallabag v1 | ||
64 | wallabag_import.queue.redis.wallabag_v1: | ||
65 | class: Simpleue\Queue\RedisQueue | ||
66 | arguments: | ||
67 | - "@wallabag_core.redis.client" | ||
68 | - "wallabag.import.wallabag_v1" | ||
69 | |||
70 | wallabag_import.producer.redis.wallabag_v1: | ||
71 | class: Wallabag\ImportBundle\Redis\Producer | ||
72 | arguments: | ||
73 | - "@wallabag_import.queue.redis.wallabag_v1" | ||
74 | |||
75 | wallabag_import.consumer.redis.wallabag_v1: | ||
76 | class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer | ||
77 | arguments: | ||
78 | - "@doctrine.orm.entity_manager" | ||
79 | - "@wallabag_user.user_repository" | ||
80 | - "@wallabag_import.wallabag_v1.import" | ||
81 | - "@logger" | ||
82 | |||
83 | # wallabag v2 | ||
84 | wallabag_import.queue.redis.wallabag_v2: | ||
85 | class: Simpleue\Queue\RedisQueue | ||
86 | arguments: | ||
87 | - "@wallabag_core.redis.client" | ||
88 | - "wallabag.import.wallabag_v2" | ||
89 | |||
90 | wallabag_import.producer.redis.wallabag_v2: | ||
91 | class: Wallabag\ImportBundle\Redis\Producer | ||
92 | arguments: | ||
93 | - "@wallabag_import.queue.redis.wallabag_v2" | ||
94 | |||
95 | wallabag_import.consumer.redis.wallabag_v2: | ||
96 | class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer | ||
97 | arguments: | ||
98 | - "@doctrine.orm.entity_manager" | ||
99 | - "@wallabag_user.user_repository" | ||
100 | - "@wallabag_import.wallabag_v2.import" | ||
101 | - "@logger" | ||
102 | |||
103 | # firefox | ||
104 | wallabag_import.queue.redis.firefox: | ||
105 | class: Simpleue\Queue\RedisQueue | ||
106 | arguments: | ||
107 | - "@wallabag_core.redis.client" | ||
108 | - "wallabag.import.firefox" | ||
109 | |||
110 | wallabag_import.producer.redis.firefox: | ||
111 | class: Wallabag\ImportBundle\Redis\Producer | ||
112 | arguments: | ||
113 | - "@wallabag_import.queue.redis.firefox" | ||
114 | |||
115 | wallabag_import.consumer.redis.firefox: | ||
116 | class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer | ||
117 | arguments: | ||
118 | - "@doctrine.orm.entity_manager" | ||
119 | - "@wallabag_user.user_repository" | ||
120 | - "@wallabag_import.firefox.import" | ||
121 | - "@logger" | ||
122 | |||
123 | # chrome | ||
124 | wallabag_import.queue.redis.chrome: | ||
125 | class: Simpleue\Queue\RedisQueue | ||
126 | arguments: | ||
127 | - "@wallabag_core.redis.client" | ||
128 | - "wallabag.import.chrome" | ||
129 | |||
130 | wallabag_import.producer.redis.chrome: | ||
131 | class: Wallabag\ImportBundle\Redis\Producer | ||
132 | arguments: | ||
133 | - "@wallabag_import.queue.redis.chrome" | ||
134 | |||
135 | wallabag_import.consumer.redis.chrome: | ||
136 | class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer | ||
137 | arguments: | ||
138 | - "@doctrine.orm.entity_manager" | ||
139 | - "@wallabag_user.user_repository" | ||
140 | - "@wallabag_import.chrome.import" | ||
141 | - "@logger" | ||
diff --git a/src/Wallabag/ImportBundle/Resources/config/services.yml b/src/Wallabag/ImportBundle/Resources/config/services.yml index 86b44cb3..89adc71b 100644 --- a/src/Wallabag/ImportBundle/Resources/config/services.yml +++ b/src/Wallabag/ImportBundle/Resources/config/services.yml | |||
@@ -1,3 +1,7 @@ | |||
1 | imports: | ||
2 | - { resource: rabbit.yml } | ||
3 | - { resource: redis.yml } | ||
4 | |||
1 | services: | 5 | services: |
2 | wallabag_import.chain: | 6 | wallabag_import.chain: |
3 | class: Wallabag\ImportBundle\Import\ImportChain | 7 | class: Wallabag\ImportBundle\Import\ImportChain |
@@ -14,7 +18,6 @@ services: | |||
14 | wallabag_import.pocket.import: | 18 | wallabag_import.pocket.import: |
15 | class: Wallabag\ImportBundle\Import\PocketImport | 19 | class: Wallabag\ImportBundle\Import\PocketImport |
16 | arguments: | 20 | arguments: |
17 | - "@security.token_storage" | ||
18 | - "@doctrine.orm.entity_manager" | 21 | - "@doctrine.orm.entity_manager" |
19 | - "@wallabag_core.content_proxy" | 22 | - "@wallabag_core.content_proxy" |
20 | - "@craue_config" | 23 | - "@craue_config" |
@@ -43,3 +46,42 @@ services: | |||
43 | - [ setLogger, [ "@logger" ]] | 46 | - [ setLogger, [ "@logger" ]] |
44 | tags: | 47 | tags: |
45 | - { name: wallabag_import.import, alias: wallabag_v2 } | 48 | - { name: wallabag_import.import, alias: wallabag_v2 } |
49 | |||
50 | wallabag_import.readability.import: | ||
51 | class: Wallabag\ImportBundle\Import\ReadabilityImport | ||
52 | arguments: | ||
53 | - "@doctrine.orm.entity_manager" | ||
54 | - "@wallabag_core.content_proxy" | ||
55 | calls: | ||
56 | - [ setLogger, [ "@logger" ]] | ||
57 | tags: | ||
58 | - { name: wallabag_import.import, alias: readability } | ||
59 | |||
60 | wallabag_import.instapaper.import: | ||
61 | class: Wallabag\ImportBundle\Import\InstapaperImport | ||
62 | arguments: | ||
63 | - "@doctrine.orm.entity_manager" | ||
64 | - "@wallabag_core.content_proxy" | ||
65 | calls: | ||
66 | - [ setLogger, [ "@logger" ]] | ||
67 | tags: | ||
68 | - { name: wallabag_import.import, alias: instapaper } | ||
69 | |||
70 | wallabag_import.firefox.import: | ||
71 | class: Wallabag\ImportBundle\Import\FirefoxImport | ||
72 | arguments: | ||
73 | - "@doctrine.orm.entity_manager" | ||
74 | - "@wallabag_core.content_proxy" | ||
75 | calls: | ||
76 | - [ setLogger, [ "@logger" ]] | ||
77 | tags: | ||
78 | - { name: wallabag_import.import, alias: firefox } | ||
79 | wallabag_import.chrome.import: | ||
80 | class: Wallabag\ImportBundle\Import\ChromeImport | ||
81 | arguments: | ||
82 | - "@doctrine.orm.entity_manager" | ||
83 | - "@wallabag_core.content_proxy" | ||
84 | calls: | ||
85 | - [ setLogger, [ "@logger" ]] | ||
86 | tags: | ||
87 | - { name: wallabag_import.import, alias: chrome } | ||
diff --git a/src/Wallabag/ImportBundle/Resources/views/Chrome/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Chrome/index.html.twig new file mode 100644 index 00000000..ead828c6 --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/views/Chrome/index.html.twig | |||
@@ -0,0 +1,43 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'import.chrome.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | <div class="row"> | ||
10 | <blockquote>{{ import.description|trans|raw }}</blockquote> | ||
11 | <p>{{ 'import.chrome.how_to'|trans }}</p> | ||
12 | |||
13 | <div class="col s12"> | ||
14 | {{ form_start(form, {'method': 'POST'}) }} | ||
15 | {{ form_errors(form) }} | ||
16 | <div class="row"> | ||
17 | <div class="file-field input-field col s12"> | ||
18 | {{ form_errors(form.file) }} | ||
19 | <div class="btn"> | ||
20 | <span>{{ form.file.vars.label|trans }}</span> | ||
21 | {{ form_widget(form.file) }} | ||
22 | </div> | ||
23 | <div class="file-path-wrapper"> | ||
24 | <input class="file-path validate" type="text"> | ||
25 | </div> | ||
26 | </div> | ||
27 | <div class="input-field col s6 with-checkbox"> | ||
28 | <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6> | ||
29 | {{ form_widget(form.mark_as_read) }} | ||
30 | {{ form_label(form.mark_as_read) }} | ||
31 | </div> | ||
32 | </div> | ||
33 | |||
34 | {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'} }) }} | ||
35 | |||
36 | {{ form_rest(form) }} | ||
37 | </form> | ||
38 | </div> | ||
39 | </div> | ||
40 | </div> | ||
41 | </div> | ||
42 | </div> | ||
43 | {% endblock %} | ||
diff --git a/src/Wallabag/ImportBundle/Resources/views/Firefox/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Firefox/index.html.twig new file mode 100644 index 00000000..f975da3f --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/views/Firefox/index.html.twig | |||
@@ -0,0 +1,43 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'import.firefox.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | <div class="row"> | ||
10 | <blockquote>{{ import.description|trans|raw }}</blockquote> | ||
11 | <p>{{ 'import.firefox.how_to'|trans }}</p> | ||
12 | |||
13 | <div class="col s12"> | ||
14 | {{ form_start(form, {'method': 'POST'}) }} | ||
15 | {{ form_errors(form) }} | ||
16 | <div class="row"> | ||
17 | <div class="file-field input-field col s12"> | ||
18 | {{ form_errors(form.file) }} | ||
19 | <div class="btn"> | ||
20 | <span>{{ form.file.vars.label|trans }}</span> | ||
21 | {{ form_widget(form.file) }} | ||
22 | </div> | ||
23 | <div class="file-path-wrapper"> | ||
24 | <input class="file-path validate" type="text"> | ||
25 | </div> | ||
26 | </div> | ||
27 | <div class="input-field col s6 with-checkbox"> | ||
28 | <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6> | ||
29 | {{ form_widget(form.mark_as_read) }} | ||
30 | {{ form_label(form.mark_as_read) }} | ||
31 | </div> | ||
32 | </div> | ||
33 | |||
34 | {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'} }) }} | ||
35 | |||
36 | {{ form_rest(form) }} | ||
37 | </form> | ||
38 | </div> | ||
39 | </div> | ||
40 | </div> | ||
41 | </div> | ||
42 | </div> | ||
43 | {% endblock %} | ||
diff --git a/src/Wallabag/ImportBundle/Resources/views/Import/_workerEnabled.html.twig b/src/Wallabag/ImportBundle/Resources/views/Import/_workerEnabled.html.twig new file mode 100644 index 00000000..2390a41f --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/views/Import/_workerEnabled.html.twig | |||
@@ -0,0 +1,8 @@ | |||
1 | {% set redis = craue_setting('import_with_redis') %} | ||
2 | {% set rabbit = craue_setting('import_with_rabbitmq') %} | ||
3 | |||
4 | {% if redis or rabbit %} | ||
5 | <div class="card-panel yellow darken-1 black-text"> | ||
6 | {{ 'import.worker.enabled'|trans }} <strong>{% if rabbit %}RabbitMQ{% elseif redis %}Redis{% endif %}</strong> | ||
7 | </div> | ||
8 | {% endif %} | ||
diff --git a/src/Wallabag/ImportBundle/Resources/views/Import/check_queue.html.twig b/src/Wallabag/ImportBundle/Resources/views/Import/check_queue.html.twig new file mode 100644 index 00000000..a2633698 --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/views/Import/check_queue.html.twig | |||
@@ -0,0 +1,23 @@ | |||
1 | {% if nbRedisMessages is defined and nbRedisMessages > 0 %} | ||
2 | <script> | ||
3 | Materialize.toast('Messages in queue: {{ nbRedisMessages }}', 4000); | ||
4 | </script> | ||
5 | {% endif %} | ||
6 | |||
7 | {% if nbRabbitMessages is defined and nbRabbitMessages > 0 %} | ||
8 | <script> | ||
9 | Materialize.toast('Messages in queue: {{ nbRabbitMessages }}', 4000); | ||
10 | </script> | ||
11 | {% endif %} | ||
12 | |||
13 | {% if redisNotInstalled is defined and redisNotInstalled %} | ||
14 | <div class="card-panel red darken-1 white-text"> | ||
15 | {{ 'flashes.import.error.redis_enabled_not_installed'|trans|raw }} | ||
16 | </div> | ||
17 | {% endif %} | ||
18 | |||
19 | {% if rabbitNotInstalled is defined and rabbitNotInstalled %} | ||
20 | <div class="card-panel red darken-1 white-text"> | ||
21 | {{ 'flashes.import.error.rabbit_enabled_not_installed'|trans|raw }} | ||
22 | </div> | ||
23 | {% endif %} | ||
diff --git a/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig index aebbfa20..6ea5e0f4 100644 --- a/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig +++ b/src/Wallabag/ImportBundle/Resources/views/Import/index.html.twig | |||
@@ -11,7 +11,7 @@ | |||
11 | {% for import in imports %} | 11 | {% for import in imports %} |
12 | <li> | 12 | <li> |
13 | <h5>{{ import.name }}</h5> | 13 | <h5>{{ import.name }}</h5> |
14 | <blockquote>{{ import.description|trans }}</blockquote> | 14 | <blockquote>{{ import.description|trans|raw }}</blockquote> |
15 | <p><a class="waves-effect waves-light btn" href="{{ path(import.url) }}">{{ 'import.action.import_contents'|trans }}</a></p> | 15 | <p><a class="waves-effect waves-light btn" href="{{ path(import.url) }}">{{ 'import.action.import_contents'|trans }}</a></p> |
16 | </li> | 16 | </li> |
17 | {% endfor %} | 17 | {% endfor %} |
diff --git a/src/Wallabag/ImportBundle/Resources/views/Instapaper/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Instapaper/index.html.twig new file mode 100644 index 00000000..5789361f --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/views/Instapaper/index.html.twig | |||
@@ -0,0 +1,45 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'import.instapaper.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | {% include 'WallabagImportBundle:Import:_workerEnabled.html.twig' %} | ||
10 | |||
11 | <div class="row"> | ||
12 | <blockquote>{{ import.description|trans }}</blockquote> | ||
13 | <p>{{ 'import.instapaper.how_to'|trans }}</p> | ||
14 | |||
15 | <div class="col s12"> | ||
16 | {{ form_start(form, {'method': 'POST'}) }} | ||
17 | {{ form_errors(form) }} | ||
18 | <div class="row"> | ||
19 | <div class="file-field input-field col s12"> | ||
20 | {{ form_errors(form.file) }} | ||
21 | <div class="btn"> | ||
22 | <span>{{ form.file.vars.label|trans }}</span> | ||
23 | {{ form_widget(form.file) }} | ||
24 | </div> | ||
25 | <div class="file-path-wrapper"> | ||
26 | <input class="file-path validate" type="text"> | ||
27 | </div> | ||
28 | </div> | ||
29 | <div class="input-field col s6 with-checkbox"> | ||
30 | <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6> | ||
31 | {{ form_widget(form.mark_as_read) }} | ||
32 | {{ form_label(form.mark_as_read) }} | ||
33 | </div> | ||
34 | </div> | ||
35 | |||
36 | {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'} }) }} | ||
37 | |||
38 | {{ form_rest(form) }} | ||
39 | </form> | ||
40 | </div> | ||
41 | </div> | ||
42 | </div> | ||
43 | </div> | ||
44 | </div> | ||
45 | {% endblock %} | ||
diff --git a/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig index 401dbd33..6195fa07 100644 --- a/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig +++ b/src/Wallabag/ImportBundle/Resources/views/Pocket/index.html.twig | |||
@@ -6,15 +6,13 @@ | |||
6 | <div class="row"> | 6 | <div class="row"> |
7 | <div class="col s12"> | 7 | <div class="col s12"> |
8 | <div class="card-panel settings"> | 8 | <div class="card-panel settings"> |
9 | {% include 'WallabagImportBundle:Import:_workerEnabled.html.twig' %} | ||
10 | |||
9 | {% if not has_consumer_key %} | 11 | {% if not has_consumer_key %} |
10 | <div class="card-panel red darken-1"> | 12 | <div class="card-panel red white-text"> |
11 | {{ 'import.pocket.config_missing.description'|trans }} | 13 | {{ 'import.pocket.config_missing.description'|trans }} |
12 | 14 | ||
13 | {% if is_granted('ROLE_SUPER_ADMIN') %} | 15 | {{ 'import.pocket.config_missing.admin_message'|trans({'%keyurls%': '<a href="' ~ path('config') ~ '">', '%keyurle%':'</a>'})|raw }} |
14 | {{ 'import.pocket.config_missing.admin_message'|trans({'%keyurls%': '<a href="' ~ path('craue_config_settings_modify') ~ '#set-import">', '%keyurle%':'</a>'})|raw }} | ||
15 | {% else %} | ||
16 | {{ 'import.pocket.config_missing.user_message'|trans }} | ||
17 | {% endif %} | ||
18 | </div> | 16 | </div> |
19 | {% endif %} | 17 | {% endif %} |
20 | 18 | ||
@@ -29,7 +27,7 @@ | |||
29 | {{ form_label(form.mark_as_read) }} | 27 | {{ form_label(form.mark_as_read) }} |
30 | </div> | 28 | </div> |
31 | </div> | 29 | </div> |
32 | <button class="btn waves-effect waves-light" type="submit" name="action"> | 30 | <button class="btn waves-effect waves-light" type="submit" name="action" {% if not has_consumer_key %}disabled="disabled"{% endif %}> |
33 | {{ 'import.pocket.connect_to_pocket'|trans }} | 31 | {{ 'import.pocket.connect_to_pocket'|trans }} |
34 | </button> | 32 | </button> |
35 | </form> | 33 | </form> |
diff --git a/src/Wallabag/ImportBundle/Resources/views/Readability/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/Readability/index.html.twig new file mode 100644 index 00000000..74653b0f --- /dev/null +++ b/src/Wallabag/ImportBundle/Resources/views/Readability/index.html.twig | |||
@@ -0,0 +1,45 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'import.readability.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div class="row"> | ||
7 | <div class="col s12"> | ||
8 | <div class="card-panel settings"> | ||
9 | {% include 'WallabagImportBundle:Import:_workerEnabled.html.twig' %} | ||
10 | |||
11 | <div class="row"> | ||
12 | <blockquote>{{ import.description|trans }}</blockquote> | ||
13 | <p>{{ 'import.readability.how_to'|trans }}</p> | ||
14 | |||
15 | <div class="col s12"> | ||
16 | {{ form_start(form, {'method': 'POST'}) }} | ||
17 | {{ form_errors(form) }} | ||
18 | <div class="row"> | ||
19 | <div class="file-field input-field col s12"> | ||
20 | {{ form_errors(form.file) }} | ||
21 | <div class="btn"> | ||
22 | <span>{{ form.file.vars.label|trans }}</span> | ||
23 | {{ form_widget(form.file) }} | ||
24 | </div> | ||
25 | <div class="file-path-wrapper"> | ||
26 | <input class="file-path validate" type="text"> | ||
27 | </div> | ||
28 | </div> | ||
29 | <div class="input-field col s6 with-checkbox"> | ||
30 | <h6>{{ 'import.form.mark_as_read_title'|trans }}</h6> | ||
31 | {{ form_widget(form.mark_as_read) }} | ||
32 | {{ form_label(form.mark_as_read) }} | ||
33 | </div> | ||
34 | </div> | ||
35 | |||
36 | {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'} }) }} | ||
37 | |||
38 | {{ form_rest(form) }} | ||
39 | </form> | ||
40 | </div> | ||
41 | </div> | ||
42 | </div> | ||
43 | </div> | ||
44 | </div> | ||
45 | {% endblock %} | ||
diff --git a/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig b/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig index 13e24c8c..0b19bc34 100644 --- a/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig +++ b/src/Wallabag/ImportBundle/Resources/views/WallabagV1/index.html.twig | |||
@@ -6,6 +6,8 @@ | |||
6 | <div class="row"> | 6 | <div class="row"> |
7 | <div class="col s12"> | 7 | <div class="col s12"> |
8 | <div class="card-panel settings"> | 8 | <div class="card-panel settings"> |
9 | {% include 'WallabagImportBundle:Import:_workerEnabled.html.twig' %} | ||
10 | |||
9 | <div class="row"> | 11 | <div class="row"> |
10 | <blockquote>{{ import.description|trans }}</blockquote> | 12 | <blockquote>{{ import.description|trans }}</blockquote> |
11 | <p>{{ 'import.wallabag_v1.how_to'|trans }}</p> | 13 | <p>{{ 'import.wallabag_v1.how_to'|trans }}</p> |
diff --git a/src/Wallabag/UserBundle/Controller/ManageController.php b/src/Wallabag/UserBundle/Controller/ManageController.php new file mode 100644 index 00000000..92ee2b41 --- /dev/null +++ b/src/Wallabag/UserBundle/Controller/ManageController.php | |||
@@ -0,0 +1,149 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\UserBundle\Controller; | ||
4 | |||
5 | use FOS\UserBundle\Event\UserEvent; | ||
6 | use FOS\UserBundle\FOSUserEvents; | ||
7 | use Symfony\Component\HttpFoundation\Request; | ||
8 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
9 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; | ||
10 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
11 | use Wallabag\UserBundle\Entity\User; | ||
12 | use Wallabag\CoreBundle\Entity\Config; | ||
13 | |||
14 | /** | ||
15 | * User controller. | ||
16 | */ | ||
17 | class ManageController extends Controller | ||
18 | { | ||
19 | /** | ||
20 | * Lists all User entities. | ||
21 | * | ||
22 | * @Route("/", name="user_index") | ||
23 | * @Method("GET") | ||
24 | */ | ||
25 | public function indexAction() | ||
26 | { | ||
27 | $em = $this->getDoctrine()->getManager(); | ||
28 | |||
29 | $users = $em->getRepository('WallabagUserBundle:User')->findAll(); | ||
30 | |||
31 | return $this->render('WallabagUserBundle:Manage:index.html.twig', array( | ||
32 | 'users' => $users, | ||
33 | )); | ||
34 | } | ||
35 | |||
36 | /** | ||
37 | * Creates a new User entity. | ||
38 | * | ||
39 | * @Route("/new", name="user_new") | ||
40 | * @Method({"GET", "POST"}) | ||
41 | */ | ||
42 | public function newAction(Request $request) | ||
43 | { | ||
44 | $userManager = $this->container->get('fos_user.user_manager'); | ||
45 | |||
46 | $user = $userManager->createUser(); | ||
47 | // enable created user by default | ||
48 | $user->setEnabled(true); | ||
49 | |||
50 | $form = $this->createForm('Wallabag\UserBundle\Form\NewUserType', $user, [ | ||
51 | 'validation_groups' => ['Profile'], | ||
52 | ]); | ||
53 | $form->handleRequest($request); | ||
54 | |||
55 | if ($form->isSubmitted() && $form->isValid()) { | ||
56 | $userManager->updateUser($user); | ||
57 | |||
58 | // dispatch a created event so the associated config will be created | ||
59 | $event = new UserEvent($user, $request); | ||
60 | $this->get('event_dispatcher')->dispatch(FOSUserEvents::USER_CREATED, $event); | ||
61 | |||
62 | $this->get('session')->getFlashBag()->add( | ||
63 | 'notice', | ||
64 | $this->get('translator')->trans('flashes.user.notice.added', ['%username%' => $user->getUsername()]) | ||
65 | ); | ||
66 | |||
67 | return $this->redirectToRoute('user_edit', array('id' => $user->getId())); | ||
68 | } | ||
69 | |||
70 | return $this->render('WallabagUserBundle:Manage:new.html.twig', array( | ||
71 | 'user' => $user, | ||
72 | 'form' => $form->createView(), | ||
73 | )); | ||
74 | } | ||
75 | |||
76 | /** | ||
77 | * Displays a form to edit an existing User entity. | ||
78 | * | ||
79 | * @Route("/{id}/edit", name="user_edit") | ||
80 | * @Method({"GET", "POST"}) | ||
81 | */ | ||
82 | public function editAction(Request $request, User $user) | ||
83 | { | ||
84 | $deleteForm = $this->createDeleteForm($user); | ||
85 | $editForm = $this->createForm('Wallabag\UserBundle\Form\UserType', $user); | ||
86 | $editForm->handleRequest($request); | ||
87 | |||
88 | if ($editForm->isSubmitted() && $editForm->isValid()) { | ||
89 | $em = $this->getDoctrine()->getManager(); | ||
90 | $em->persist($user); | ||
91 | $em->flush(); | ||
92 | |||
93 | $this->get('session')->getFlashBag()->add( | ||
94 | 'notice', | ||
95 | $this->get('translator')->trans('flashes.user.notice.updated', ['%username%' => $user->getUsername()]) | ||
96 | ); | ||
97 | |||
98 | return $this->redirectToRoute('user_edit', array('id' => $user->getId())); | ||
99 | } | ||
100 | |||
101 | return $this->render('WallabagUserBundle:Manage:edit.html.twig', array( | ||
102 | 'user' => $user, | ||
103 | 'edit_form' => $editForm->createView(), | ||
104 | 'delete_form' => $deleteForm->createView(), | ||
105 | 'twofactor_auth' => $this->getParameter('twofactor_auth'), | ||
106 | )); | ||
107 | } | ||
108 | |||
109 | /** | ||
110 | * Deletes a User entity. | ||
111 | * | ||
112 | * @Route("/{id}", name="user_delete") | ||
113 | * @Method("DELETE") | ||
114 | */ | ||
115 | public function deleteAction(Request $request, User $user) | ||
116 | { | ||
117 | $form = $this->createDeleteForm($user); | ||
118 | $form->handleRequest($request); | ||
119 | |||
120 | if ($form->isSubmitted() && $form->isValid()) { | ||
121 | $this->get('session')->getFlashBag()->add( | ||
122 | 'notice', | ||
123 | $this->get('translator')->trans('flashes.user.notice.deleted', ['%username%' => $user->getUsername()]) | ||
124 | ); | ||
125 | |||
126 | $em = $this->getDoctrine()->getManager(); | ||
127 | $em->remove($user); | ||
128 | $em->flush(); | ||
129 | } | ||
130 | |||
131 | return $this->redirectToRoute('user_index'); | ||
132 | } | ||
133 | |||
134 | /** | ||
135 | * Creates a form to delete a User entity. | ||
136 | * | ||
137 | * @param User $user The User entity | ||
138 | * | ||
139 | * @return \Symfony\Component\Form\Form The form | ||
140 | */ | ||
141 | private function createDeleteForm(User $user) | ||
142 | { | ||
143 | return $this->createFormBuilder() | ||
144 | ->setAction($this->generateUrl('user_delete', array('id' => $user->getId()))) | ||
145 | ->setMethod('DELETE') | ||
146 | ->getForm() | ||
147 | ; | ||
148 | } | ||
149 | } | ||
diff --git a/src/Wallabag/UserBundle/Controller/RegistrationController.php b/src/Wallabag/UserBundle/Controller/RegistrationController.php new file mode 100644 index 00000000..f81f3a7b --- /dev/null +++ b/src/Wallabag/UserBundle/Controller/RegistrationController.php | |||
@@ -0,0 +1,18 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\UserBundle\Controller; | ||
4 | |||
5 | use FOS\UserBundle\Controller\RegistrationController as FOSRegistrationController; | ||
6 | use Symfony\Component\HttpFoundation\Request; | ||
7 | |||
8 | class RegistrationController extends FOSRegistrationController | ||
9 | { | ||
10 | public function registerAction(Request $request) | ||
11 | { | ||
12 | if ($this->container->getParameter('wallabag_user.registration_enabled')) { | ||
13 | return parent::registerAction($request); | ||
14 | } | ||
15 | |||
16 | return $this->redirectToRoute('fos_user_security_login', [], 301); | ||
17 | } | ||
18 | } | ||
diff --git a/src/Wallabag/UserBundle/Controller/SecurityController.php b/src/Wallabag/UserBundle/Controller/SecurityController.php new file mode 100644 index 00000000..83fa0b20 --- /dev/null +++ b/src/Wallabag/UserBundle/Controller/SecurityController.php | |||
@@ -0,0 +1,21 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\UserBundle\Controller; | ||
4 | |||
5 | use FOS\UserBundle\Controller\SecurityController as FOSSecurityController; | ||
6 | |||
7 | /** | ||
8 | * Extends login form in order to pass the registration_enabled parameter. | ||
9 | */ | ||
10 | class SecurityController extends FOSSecurityController | ||
11 | { | ||
12 | protected function renderLogin(array $data) | ||
13 | { | ||
14 | return $this->render('FOSUserBundle:Security:login.html.twig', | ||
15 | array_merge( | ||
16 | $data, | ||
17 | ['registration_enabled' => $this->container->getParameter('wallabag_user.registration_enabled')] | ||
18 | ) | ||
19 | ); | ||
20 | } | ||
21 | } | ||
diff --git a/src/Wallabag/UserBundle/DependencyInjection/Configuration.php b/src/Wallabag/UserBundle/DependencyInjection/Configuration.php index 4223f8db..971ce1a0 100644 --- a/src/Wallabag/UserBundle/DependencyInjection/Configuration.php +++ b/src/Wallabag/UserBundle/DependencyInjection/Configuration.php | |||
@@ -12,6 +12,14 @@ class Configuration implements ConfigurationInterface | |||
12 | $treeBuilder = new TreeBuilder(); | 12 | $treeBuilder = new TreeBuilder(); |
13 | $rootNode = $treeBuilder->root('wallabag_user'); | 13 | $rootNode = $treeBuilder->root('wallabag_user'); |
14 | 14 | ||
15 | $rootNode | ||
16 | ->children() | ||
17 | ->booleanNode('registration_enabled') | ||
18 | ->defaultValue(true) | ||
19 | ->end() | ||
20 | ->end() | ||
21 | ; | ||
22 | |||
15 | return $treeBuilder; | 23 | return $treeBuilder; |
16 | } | 24 | } |
17 | } | 25 | } |
diff --git a/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php b/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php index c12a8937..99040f69 100644 --- a/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php +++ b/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php | |||
@@ -16,6 +16,7 @@ class WallabagUserExtension extends Extension | |||
16 | 16 | ||
17 | $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); | 17 | $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); |
18 | $loader->load('services.yml'); | 18 | $loader->load('services.yml'); |
19 | $container->setParameter('wallabag_user.registration_enabled', $config['registration_enabled']); | ||
19 | } | 20 | } |
20 | 21 | ||
21 | public function getAlias() | 22 | public function getAlias() |
diff --git a/src/Wallabag/UserBundle/Entity/User.php b/src/Wallabag/UserBundle/Entity/User.php index dfed8e47..d98ae76a 100644 --- a/src/Wallabag/UserBundle/Entity/User.php +++ b/src/Wallabag/UserBundle/Entity/User.php | |||
@@ -64,7 +64,7 @@ class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterf | |||
64 | protected $entries; | 64 | protected $entries; |
65 | 65 | ||
66 | /** | 66 | /** |
67 | * @ORM\OneToOne(targetEntity="Wallabag\CoreBundle\Entity\Config", mappedBy="user") | 67 | * @ORM\OneToOne(targetEntity="Wallabag\CoreBundle\Entity\Config", mappedBy="user", cascade={"remove"}) |
68 | */ | 68 | */ |
69 | protected $config; | 69 | protected $config; |
70 | 70 | ||
diff --git a/src/Wallabag/CoreBundle/EventListener/RegistrationConfirmedListener.php b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php index 10586126..8e2f04e9 100644 --- a/src/Wallabag/CoreBundle/EventListener/RegistrationConfirmedListener.php +++ b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php | |||
@@ -1,49 +1,57 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Wallabag\CoreBundle\EventListener; | 3 | namespace Wallabag\UserBundle\EventListener; |
4 | 4 | ||
5 | use Doctrine\ORM\EntityManager; | 5 | use Doctrine\ORM\EntityManager; |
6 | use FOS\UserBundle\Event\FilterUserResponseEvent; | 6 | use FOS\UserBundle\Event\UserEvent; |
7 | use FOS\UserBundle\FOSUserEvents; | 7 | use FOS\UserBundle\FOSUserEvents; |
8 | use Symfony\Component\EventDispatcher\EventDispatcherInterface; | 8 | use Symfony\Component\EventDispatcher\EventDispatcherInterface; |
9 | use Symfony\Component\EventDispatcher\EventSubscriberInterface; | 9 | use Symfony\Component\EventDispatcher\EventSubscriberInterface; |
10 | use Wallabag\CoreBundle\Entity\Config; | 10 | use Wallabag\CoreBundle\Entity\Config; |
11 | 11 | ||
12 | class RegistrationConfirmedListener implements EventSubscriberInterface | 12 | /** |
13 | * This listener will create the associated configuration when a user register. | ||
14 | * This configuration will be created right after the registration (no matter if it needs an email validation). | ||
15 | */ | ||
16 | class CreateConfigListener implements EventSubscriberInterface | ||
13 | { | 17 | { |
14 | private $em; | 18 | private $em; |
15 | private $theme; | 19 | private $theme; |
16 | private $itemsOnPage; | 20 | private $itemsOnPage; |
17 | private $rssLimit; | 21 | private $rssLimit; |
18 | private $language; | 22 | private $language; |
23 | private $readingSpeed; | ||
19 | 24 | ||
20 | public function __construct(EntityManager $em, $theme, $itemsOnPage, $rssLimit, $language) | 25 | public function __construct(EntityManager $em, $theme, $itemsOnPage, $rssLimit, $language, $readingSpeed) |
21 | { | 26 | { |
22 | $this->em = $em; | 27 | $this->em = $em; |
23 | $this->theme = $theme; | 28 | $this->theme = $theme; |
24 | $this->itemsOnPage = $itemsOnPage; | 29 | $this->itemsOnPage = $itemsOnPage; |
25 | $this->rssLimit = $rssLimit; | 30 | $this->rssLimit = $rssLimit; |
26 | $this->language = $language; | 31 | $this->language = $language; |
32 | $this->readingSpeed = $readingSpeed; | ||
27 | } | 33 | } |
28 | 34 | ||
29 | public static function getSubscribedEvents() | 35 | public static function getSubscribedEvents() |
30 | { | 36 | { |
31 | return [ | 37 | return [ |
32 | FOSUserEvents::REGISTRATION_CONFIRMED => 'authenticate', | 38 | // when a user register using the normal form |
39 | FOSUserEvents::REGISTRATION_COMPLETED => 'createConfig', | ||
40 | // when we manually create a user using the command line | ||
41 | // OR when we create it from the config UI | ||
42 | FOSUserEvents::USER_CREATED => 'createConfig', | ||
33 | ]; | 43 | ]; |
34 | } | 44 | } |
35 | 45 | ||
36 | public function authenticate(FilterUserResponseEvent $event, $eventName = null, EventDispatcherInterface $eventDispatcher = null) | 46 | public function createConfig(UserEvent $event, $eventName = null, EventDispatcherInterface $eventDispatcher = null) |
37 | { | 47 | { |
38 | if (!$event->getUser()->isEnabled()) { | ||
39 | return; | ||
40 | } | ||
41 | |||
42 | $config = new Config($event->getUser()); | 48 | $config = new Config($event->getUser()); |
43 | $config->setTheme($this->theme); | 49 | $config->setTheme($this->theme); |
44 | $config->setItemsPerPage($this->itemsOnPage); | 50 | $config->setItemsPerPage($this->itemsOnPage); |
45 | $config->setRssLimit($this->rssLimit); | 51 | $config->setRssLimit($this->rssLimit); |
46 | $config->setLanguage($this->language); | 52 | $config->setLanguage($this->language); |
53 | $config->setReadingSpeed($this->readingSpeed); | ||
54 | |||
47 | $this->em->persist($config); | 55 | $this->em->persist($config); |
48 | $this->em->flush(); | 56 | $this->em->flush(); |
49 | } | 57 | } |
diff --git a/src/Wallabag/CoreBundle/Form/Type/NewUserType.php b/src/Wallabag/UserBundle/Form/NewUserType.php index 6a6f63d1..ad5a2405 100644 --- a/src/Wallabag/CoreBundle/Form/Type/NewUserType.php +++ b/src/Wallabag/UserBundle/Form/NewUserType.php | |||
@@ -1,6 +1,6 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace Wallabag\CoreBundle\Form\Type; | 3 | namespace Wallabag\UserBundle\Form; |
4 | 4 | ||
5 | use Symfony\Component\Form\AbstractType; | 5 | use Symfony\Component\Form\AbstractType; |
6 | use Symfony\Component\Form\Extension\Core\Type\EmailType; | 6 | use Symfony\Component\Form\Extension\Core\Type\EmailType; |
@@ -19,13 +19,13 @@ class NewUserType extends AbstractType | |||
19 | $builder | 19 | $builder |
20 | ->add('username', TextType::class, [ | 20 | ->add('username', TextType::class, [ |
21 | 'required' => true, | 21 | 'required' => true, |
22 | 'label' => 'config.form_new_user.username_label', | 22 | 'label' => 'user.form.username_label', |
23 | ]) | 23 | ]) |
24 | ->add('plainPassword', RepeatedType::class, [ | 24 | ->add('plainPassword', RepeatedType::class, [ |
25 | 'type' => PasswordType::class, | 25 | 'type' => PasswordType::class, |
26 | 'invalid_message' => 'validator.password_must_match', | 26 | 'invalid_message' => 'validator.password_must_match', |
27 | 'first_options' => ['label' => 'config.form_new_user.password_label'], | 27 | 'first_options' => ['label' => 'user.form.password_label'], |
28 | 'second_options' => ['label' => 'config.form_new_user.repeat_new_password_label'], | 28 | 'second_options' => ['label' => 'user.form.repeat_new_password_label'], |
29 | 'constraints' => [ | 29 | 'constraints' => [ |
30 | new Constraints\Length([ | 30 | new Constraints\Length([ |
31 | 'min' => 8, | 31 | 'min' => 8, |
@@ -33,13 +33,13 @@ class NewUserType extends AbstractType | |||
33 | ]), | 33 | ]), |
34 | new Constraints\NotBlank(), | 34 | new Constraints\NotBlank(), |
35 | ], | 35 | ], |
36 | 'label' => 'config.form_new_user.plain_password_label', | 36 | 'label' => 'user.form.plain_password_label', |
37 | ]) | 37 | ]) |
38 | ->add('email', EmailType::class, [ | 38 | ->add('email', EmailType::class, [ |
39 | 'label' => 'config.form_new_user.email_label', | 39 | 'label' => 'user.form.email_label', |
40 | ]) | 40 | ]) |
41 | ->add('save', SubmitType::class, [ | 41 | ->add('save', SubmitType::class, [ |
42 | 'label' => 'config.form.save', | 42 | 'label' => 'user.form.save', |
43 | ]) | 43 | ]) |
44 | ; | 44 | ; |
45 | } | 45 | } |
diff --git a/src/Wallabag/UserBundle/Form/UserType.php b/src/Wallabag/UserBundle/Form/UserType.php new file mode 100644 index 00000000..cfa67793 --- /dev/null +++ b/src/Wallabag/UserBundle/Form/UserType.php | |||
@@ -0,0 +1,61 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\UserBundle\Form; | ||
4 | |||
5 | use Symfony\Component\Form\AbstractType; | ||
6 | use Symfony\Component\Form\FormBuilderInterface; | ||
7 | use Symfony\Component\OptionsResolver\OptionsResolver; | ||
8 | use Symfony\Component\Form\Extension\Core\Type\CheckboxType; | ||
9 | use Symfony\Component\Form\Extension\Core\Type\SubmitType; | ||
10 | use Symfony\Component\Form\Extension\Core\Type\TextType; | ||
11 | use Symfony\Component\Form\Extension\Core\Type\EmailType; | ||
12 | |||
13 | class UserType extends AbstractType | ||
14 | { | ||
15 | /** | ||
16 | * @param FormBuilderInterface $builder | ||
17 | * @param array $options | ||
18 | */ | ||
19 | public function buildForm(FormBuilderInterface $builder, array $options) | ||
20 | { | ||
21 | $builder | ||
22 | ->add('name', TextType::class, [ | ||
23 | 'required' => false, | ||
24 | 'label' => 'user.form.name_label', | ||
25 | ]) | ||
26 | ->add('username', TextType::class, [ | ||
27 | 'required' => true, | ||
28 | 'label' => 'user.form.username_label', | ||
29 | ]) | ||
30 | ->add('email', EmailType::class, [ | ||
31 | 'required' => true, | ||
32 | 'label' => 'user.form.email_label', | ||
33 | ]) | ||
34 | ->add('enabled', CheckboxType::class, [ | ||
35 | 'required' => false, | ||
36 | 'label' => 'user.form.enabled_label', | ||
37 | ]) | ||
38 | ->add('locked', CheckboxType::class, [ | ||
39 | 'required' => false, | ||
40 | 'label' => 'user.form.locked_label', | ||
41 | ]) | ||
42 | ->add('twoFactorAuthentication', CheckboxType::class, [ | ||
43 | 'required' => false, | ||
44 | 'label' => 'user.form.twofactor_label', | ||
45 | ]) | ||
46 | ->add('save', SubmitType::class, [ | ||
47 | 'label' => 'user.form.save', | ||
48 | ]) | ||
49 | ; | ||
50 | } | ||
51 | |||
52 | /** | ||
53 | * @param OptionsResolver $resolver | ||
54 | */ | ||
55 | public function configureOptions(OptionsResolver $resolver) | ||
56 | { | ||
57 | $resolver->setDefaults(array( | ||
58 | 'data_class' => 'Wallabag\UserBundle\Entity\User', | ||
59 | )); | ||
60 | } | ||
61 | } | ||
diff --git a/src/Wallabag/UserBundle/Resources/config/services.yml b/src/Wallabag/UserBundle/Resources/config/services.yml index d79d8fa2..eb9c8e67 100644 --- a/src/Wallabag/UserBundle/Resources/config/services.yml +++ b/src/Wallabag/UserBundle/Resources/config/services.yml | |||
@@ -14,3 +14,21 @@ services: | |||
14 | - "@router" | 14 | - "@router" |
15 | tags: | 15 | tags: |
16 | - { name: kernel.event_subscriber } | 16 | - { name: kernel.event_subscriber } |
17 | |||
18 | wallabag_user.user_repository: | ||
19 | class: Wallabag\UserBundle\Repository\UserRepository | ||
20 | factory: [ "@doctrine.orm.default_entity_manager", getRepository ] | ||
21 | arguments: | ||
22 | - WallabagUserBundle:User | ||
23 | |||
24 | wallabag_user.create_config: | ||
25 | class: Wallabag\UserBundle\EventListener\CreateConfigListener | ||
26 | arguments: | ||
27 | - "@doctrine.orm.entity_manager" | ||
28 | - "%wallabag_core.theme%" | ||
29 | - "%wallabag_core.items_on_page%" | ||
30 | - "%wallabag_core.rss_limit%" | ||
31 | - "%wallabag_core.language%" | ||
32 | - "%wallabag_core.reading_speed%" | ||
33 | tags: | ||
34 | - { name: kernel.event_subscriber } | ||
diff --git a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.pl.yml b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.pl.yml new file mode 100644 index 00000000..04dbef39 --- /dev/null +++ b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.pl.yml | |||
@@ -0,0 +1,11 @@ | |||
1 | # Two factor mail | ||
2 | auth_code: | ||
3 | on: 'włączony' | ||
4 | mailer: | ||
5 | subject: 'Kod autoryzacyjny Wallabag' | ||
6 | body: | ||
7 | hello: "Cześć %user%," | ||
8 | first_para: "Od momentu włączenia na swoim koncie autoryzacji dwuetapowej i zalogowaniu się na nowym urzączeniu (komputer, telefon, etc.), wyślemy do ciebie kod potwierdzający twoje połączenie" | ||
9 | second_para: "Tutaj jest twój kod:" | ||
10 | support: "Nie wahaj się skontaktować z nami, jeżeli masz jakiekolwiek problemy:" | ||
11 | signature: "Zespół wallabag" | ||
diff --git a/src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig b/src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig index acf69196..c8471bdd 100644 --- a/src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Authentication/form.html.twig | |||
@@ -23,10 +23,10 @@ | |||
23 | </div> | 23 | </div> |
24 | </div> | 24 | </div> |
25 | <div class="card-action center"> | 25 | <div class="card-action center"> |
26 | <a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {{ 'security.login.cancel'|trans }}</a> | 26 | <a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn">{{ 'security.login.cancel'|trans }}</a> |
27 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 27 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
28 | {{ "scheb_two_factor.login"|trans }} | 28 | {{ "scheb_two_factor.login"|trans }} |
29 | <i class="mdi-content-send right"></i> | 29 | <i class="material-icons right">send</i> |
30 | </button> | 30 | </button> |
31 | </div> | 31 | </div> |
32 | </form> | 32 | </form> |
diff --git a/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig b/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig new file mode 100644 index 00000000..67843f20 --- /dev/null +++ b/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig | |||
@@ -0,0 +1,86 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'user.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | |||
7 | <div class="row"> | ||
8 | <div class="col s12"> | ||
9 | <div class="card-panel"> | ||
10 | <div class="row"> | ||
11 | <div class="input-field col s12"> | ||
12 | <h4>{{ 'user.edit_user'|trans }}</h4> | ||
13 | |||
14 | <div id="set6" class="col s12"> | ||
15 | {{ form_start(edit_form) }} | ||
16 | {{ form_errors(edit_form) }} | ||
17 | |||
18 | <div class="row"> | ||
19 | <div class="input-field col s12"> | ||
20 | {{ form_label(edit_form.name) }} | ||
21 | {{ form_errors(edit_form.name) }} | ||
22 | {{ form_widget(edit_form.name) }} | ||
23 | </div> | ||
24 | </div> | ||
25 | |||
26 | <div class="row"> | ||
27 | <div class="input-field col s12"> | ||
28 | {{ form_label(edit_form.username) }} | ||
29 | {{ form_errors(edit_form.username) }} | ||
30 | {{ form_widget(edit_form.username) }} | ||
31 | </div> | ||
32 | </div> | ||
33 | |||
34 | <div class="row"> | ||
35 | <div class="input-field col s12"> | ||
36 | {{ form_label(edit_form.email) }} | ||
37 | {{ form_errors(edit_form.email) }} | ||
38 | {{ form_widget(edit_form.email) }} | ||
39 | </div> | ||
40 | </div> | ||
41 | |||
42 | <div class="row"> | ||
43 | <div class="input-field col s12"> | ||
44 | {{ form_widget(edit_form.enabled) }} | ||
45 | {{ form_label(edit_form.enabled) }} | ||
46 | {{ form_errors(edit_form.enabled) }} | ||
47 | </div> | ||
48 | </div> | ||
49 | |||
50 | <div class="row"> | ||
51 | <div class="input-field col s12"> | ||
52 | {{ form_widget(edit_form.locked) }} | ||
53 | {{ form_label(edit_form.locked) }} | ||
54 | {{ form_errors(edit_form.locked) }} | ||
55 | </div> | ||
56 | </div> | ||
57 | |||
58 | {% if twofactor_auth %} | ||
59 | <div class="row"> | ||
60 | <div class="input-field col s12"> | ||
61 | {{ form_widget(edit_form.twoFactorAuthentication) }} | ||
62 | {{ form_label(edit_form.twoFactorAuthentication) }} | ||
63 | {{ form_errors(edit_form.twoFactorAuthentication) }} | ||
64 | </div> | ||
65 | </div> | ||
66 | {% endif %} | ||
67 | |||
68 | <br/> | ||
69 | |||
70 | {{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | ||
71 | {{ form_widget(edit_form._token) }} | ||
72 | </form> | ||
73 | <p> | ||
74 | {{ form_start(delete_form) }} | ||
75 | <button {% if app.user.id == user.id %}disabled="disabled"{% endif %} onclick="return confirm('{{ 'user.form.delete_confirm'|trans|escape('js') }}')" type="submit" class="btn waves-effect waves-light red">{{ 'user.form.delete'|trans }}</button> | ||
76 | {{ form_end(delete_form) }} | ||
77 | </p> | ||
78 | <p><a class="waves-effect waves-light btn blue-grey" href="{{ path('user_index') }}">{{ 'user.form.back_to_list'|trans }}</a></p> | ||
79 | </div> | ||
80 | </div> | ||
81 | </div> | ||
82 | </div> | ||
83 | </div> | ||
84 | </div> | ||
85 | |||
86 | {% endblock %} | ||
diff --git a/src/Wallabag/UserBundle/Resources/views/Manage/index.html.twig b/src/Wallabag/UserBundle/Resources/views/Manage/index.html.twig new file mode 100644 index 00000000..996bdb1a --- /dev/null +++ b/src/Wallabag/UserBundle/Resources/views/Manage/index.html.twig | |||
@@ -0,0 +1,48 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'user.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | |||
7 | <div class="row"> | ||
8 | <div class="col s12"> | ||
9 | <div class="card-panel"> | ||
10 | <div class="row"> | ||
11 | <div class="input-field col s12"> | ||
12 | <p class="help">{{ 'user.description'|trans|raw }}</p> | ||
13 | |||
14 | <table class="bordered"> | ||
15 | <thead> | ||
16 | <tr> | ||
17 | <th>{{ 'user.form.username_label'|trans }}</th> | ||
18 | <th>{{ 'user.form.email_label'|trans }}</th> | ||
19 | <th>{{ 'user.form.last_login_label'|trans }}</th> | ||
20 | <th>{{ 'user.form.locked_label'|trans }}</th> | ||
21 | <th>{{ 'user.list.actions'|trans }}</th> | ||
22 | </tr> | ||
23 | </thead> | ||
24 | <tbody> | ||
25 | {% for user in users %} | ||
26 | <tr> | ||
27 | <td>{{ user.username }}</td> | ||
28 | <td>{{ user.email }}</td> | ||
29 | <td>{% if user.lastLogin %}{{ user.lastLogin|date('Y-m-d H:i:s') }}{% endif %}</td> | ||
30 | <td>{% if user.locked %}{{ 'user.list.yes'|trans }}{% else %}{{ 'user.list.no'|trans }}{% endif %}</td> | ||
31 | <td> | ||
32 | <a href="{{ path('user_edit', { 'id': user.id }) }}">{{ 'user.list.edit_action'|trans }}</a> | ||
33 | </td> | ||
34 | </tr> | ||
35 | {% endfor %} | ||
36 | </tbody> | ||
37 | </table> | ||
38 | <br /> | ||
39 | <p> | ||
40 | <a href="{{ path('user_new') }}" class="waves-effect waves-light btn">{{ 'user.list.create_new_one'|trans }}</a> | ||
41 | </p> | ||
42 | </div> | ||
43 | </div> | ||
44 | </div> | ||
45 | </div> | ||
46 | </div> | ||
47 | |||
48 | {% endblock %} | ||
diff --git a/src/Wallabag/UserBundle/Resources/views/Manage/new.html.twig b/src/Wallabag/UserBundle/Resources/views/Manage/new.html.twig new file mode 100644 index 00000000..8c894c04 --- /dev/null +++ b/src/Wallabag/UserBundle/Resources/views/Manage/new.html.twig | |||
@@ -0,0 +1,61 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'user.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | |||
7 | <div class="row"> | ||
8 | <div class="col s12"> | ||
9 | <div class="card-panel"> | ||
10 | <div class="row"> | ||
11 | <div class="input-field col s12"> | ||
12 | <h4>{{ 'user.new_user'|trans }}</h4> | ||
13 | |||
14 | <div id="set6" class="col s12"> | ||
15 | {{ form_start(form) }} | ||
16 | {{ form_errors(form) }} | ||
17 | |||
18 | <div class="row"> | ||
19 | <div class="input-field col s12"> | ||
20 | {{ form_label(form.username) }} | ||
21 | {{ form_errors(form.username) }} | ||
22 | {{ form_widget(form.username) }} | ||
23 | </div> | ||
24 | </div> | ||
25 | |||
26 | <div class="row"> | ||
27 | <div class="input-field col s12"> | ||
28 | {{ form_label(form.plainPassword.first) }} | ||
29 | {{ form_errors(form.plainPassword.first) }} | ||
30 | {{ form_widget(form.plainPassword.first) }} | ||
31 | </div> | ||
32 | </div> | ||
33 | |||
34 | <div class="row"> | ||
35 | <div class="input-field col s12"> | ||
36 | {{ form_label(form.plainPassword.second) }} | ||
37 | {{ form_errors(form.plainPassword.second) }} | ||
38 | {{ form_widget(form.plainPassword.second) }} | ||
39 | </div> | ||
40 | </div> | ||
41 | |||
42 | <div class="row"> | ||
43 | <div class="input-field col s12"> | ||
44 | {{ form_label(form.email) }} | ||
45 | {{ form_errors(form.email) }} | ||
46 | {{ form_widget(form.email) }} | ||
47 | </div> | ||
48 | </div> | ||
49 | |||
50 | {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} | ||
51 | {{ form_rest(form) }} | ||
52 | </form> | ||
53 | <p><a class="waves-effect waves-light btn blue-grey" href="{{ path('user_index') }}">{{ 'user.form.back_to_list'|trans }}</a></p> | ||
54 | </div> | ||
55 | </div> | ||
56 | </div> | ||
57 | </div> | ||
58 | </div> | ||
59 | </div> | ||
60 | |||
61 | {% endblock %} | ||
diff --git a/src/Wallabag/UserBundle/Resources/views/Registration/checkEmail.html.twig b/src/Wallabag/UserBundle/Resources/views/Registration/check_email.html.twig index 50937276..50937276 100644 --- a/src/Wallabag/UserBundle/Resources/views/Registration/checkEmail.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Registration/check_email.html.twig | |||
diff --git a/src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig b/src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig index aa4b9bca..cb8d40a4 100644 --- a/src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Registration/confirmed.html.twig | |||
@@ -11,7 +11,7 @@ | |||
11 | {% endif %} | 11 | {% endif %} |
12 | </div> | 12 | </div> |
13 | <div class="card-action center"> | 13 | <div class="card-action center"> |
14 | <a href="{{ path('homepage') }}" class="waves-effect waves-light btn"><i class="material-icons left"></i> {{ 'security.register.go_to_account'|trans({},'messages') }}</a> | 14 | <a href="{{ path('homepage') }}" class="waves-effect waves-light btn">{{ 'security.register.go_to_account'|trans({},'messages') }}</a> |
15 | </div> | 15 | </div> |
16 | </div> | 16 | </div> |
17 | {% endblock fos_user_content %} | 17 | {% endblock fos_user_content %} |
diff --git a/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig b/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig index 7d2b45d4..d0a85fc7 100644 --- a/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig | |||
@@ -36,10 +36,10 @@ | |||
36 | </div> | 36 | </div> |
37 | </div> | 37 | </div> |
38 | <div class="card-action center"> | 38 | <div class="card-action center"> |
39 | <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {{ 'security.login.submit'|trans }}</a> | 39 | <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn">{{ 'security.login.submit'|trans }}</a> |
40 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 40 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
41 | {{ 'registration.submit'|trans({}, 'FOSUserBundle') }} | 41 | {{ 'registration.submit'|trans({}, 'FOSUserBundle') }} |
42 | <i class="mdi-content-send right"></i> | 42 | <i class="material-icons right">send</i> |
43 | </button> | 43 | </button> |
44 | </div> | 44 | </div> |
45 | </form> | 45 | </form> |
diff --git a/src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig b/src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig index 7a5ac838..010ee0d0 100644 --- a/src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Resetting/request_content.html.twig | |||
@@ -21,7 +21,7 @@ | |||
21 | </div> | 21 | </div> |
22 | <div class="card-action center"> | 22 | <div class="card-action center"> |
23 | <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"> | 23 | <a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn"> |
24 | <i class="material-icons left"></i> {{ 'security.login.submit'|trans({}, "messages") }} | 24 | {{ 'security.login.submit'|trans({}, "messages") }} |
25 | </a> | 25 | </a> |
26 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 26 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
27 | {{ 'resetting.request.submit'|trans }} | 27 | {{ 'resetting.request.submit'|trans }} |
diff --git a/src/Wallabag/UserBundle/Resources/views/Resetting/reset_content.html.twig b/src/Wallabag/UserBundle/Resources/views/Resetting/reset_content.html.twig index 9d0a061c..a19dc7d2 100644 --- a/src/Wallabag/UserBundle/Resources/views/Resetting/reset_content.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Resetting/reset_content.html.twig | |||
@@ -8,7 +8,7 @@ | |||
8 | <div class="card-action center"> | 8 | <div class="card-action center"> |
9 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 9 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
10 | {{ 'resetting.reset.submit'|trans }} | 10 | {{ 'resetting.reset.submit'|trans }} |
11 | <i class="mdi-content-send right"></i> | 11 | <i class="material-icons right">send</i> |
12 | </button> | 12 | </button> |
13 | </div> | 13 | </div> |
14 | </div> | 14 | </div> |
diff --git a/src/Wallabag/UserBundle/Resources/views/Security/login.html.twig b/src/Wallabag/UserBundle/Resources/views/Security/login.html.twig index 5835330d..fc0d97e7 100644 --- a/src/Wallabag/UserBundle/Resources/views/Security/login.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/Security/login.html.twig | |||
@@ -5,11 +5,11 @@ | |||
5 | <div class="card-content"> | 5 | <div class="card-content"> |
6 | 6 | ||
7 | {% if error %} | 7 | {% if error %} |
8 | <span class="black-text">{{ error.message }}</span> | 8 | <script>Materialize.toast('{{ error.message }}', 4000)</script> |
9 | {% endif %} | 9 | {% endif %} |
10 | 10 | ||
11 | {% for flashMessage in app.session.flashbag.get('notice') %} | 11 | {% for flashMessage in app.session.flashbag.get('notice') %} |
12 | <span class="black-text"><p>{{ flashMessage }}</p></span> | 12 | <script>Materialize.toast('{{ flashMessage }}')</script> |
13 | {% endfor %} | 13 | {% endfor %} |
14 | 14 | ||
15 | <div class="row"> | 15 | <div class="row"> |
@@ -33,13 +33,15 @@ | |||
33 | </div> | 33 | </div> |
34 | <div class="card-action center"> | 34 | <div class="card-action center"> |
35 | <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" /> | 35 | <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" /> |
36 | <a href="{{ path('fos_user_registration_register') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {{ 'security.login.register'|trans }}</a> | 36 | {% if registration_enabled %} |
37 | <a href="{{ path('fos_user_registration_register') }}" class="waves-effect waves-light grey btn">{{ 'security.login.register'|trans }}</a> | ||
38 | {% endif %} | ||
37 | <button class="btn waves-effect waves-light" type="submit" name="send"> | 39 | <button class="btn waves-effect waves-light" type="submit" name="send"> |
38 | {{ 'security.login.submit'|trans }} | 40 | {{ 'security.login.submit'|trans }} |
39 | <i class="mdi-content-send right"></i> | 41 | <i class="material-icons right">send</i> |
40 | </button> | 42 | </button> |
41 | </div> | 43 | </div> |
42 | <div class="row center"> | 44 | <div class="card-action center"> |
43 | <a href="{{ path('fos_user_resetting_request') }}">{{ 'security.login.forgot_password'|trans }}</a> | 45 | <a href="{{ path('fos_user_resetting_request') }}">{{ 'security.login.forgot_password'|trans }}</a> |
44 | </div> | 46 | </div> |
45 | </form> | 47 | </form> |
diff --git a/src/Wallabag/UserBundle/Resources/views/layout.html.twig b/src/Wallabag/UserBundle/Resources/views/layout.html.twig index 1d0189ca..1f6ea255 100644 --- a/src/Wallabag/UserBundle/Resources/views/layout.html.twig +++ b/src/Wallabag/UserBundle/Resources/views/layout.html.twig | |||
@@ -11,7 +11,7 @@ | |||
11 | <main class="valign-wrapper"> | 11 | <main class="valign-wrapper"> |
12 | <div class="valign row"> | 12 | <div class="valign row"> |
13 | <div class="card sw"> | 13 | <div class="card sw"> |
14 | <div class="center"><img src="{{ asset('bundles/wallabagcore/themes/material/img/logo-other_themes.png') }}" alt="wallabag logo" /></div> | 14 | <div class="center"><img src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-other_themes.png') }}" alt="wallabag logo" /></div> |
15 | {% block fos_user_content %} | 15 | {% block fos_user_content %} |
16 | {% endblock fos_user_content %} | 16 | {% endblock fos_user_content %} |
17 | </div> | 17 | </div> |
diff --git a/src/Wallabag/UserBundle/Resources/views/manage.html.twig b/src/Wallabag/UserBundle/Resources/views/manage.html.twig new file mode 100644 index 00000000..c614c55f --- /dev/null +++ b/src/Wallabag/UserBundle/Resources/views/manage.html.twig | |||
@@ -0,0 +1,43 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ 'user.manage.page_title'|trans }}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | |||
7 | <div class="row"> | ||
8 | <div class="col s12"> | ||
9 | <div class="card-panel"> | ||
10 | <div class="row"> | ||
11 | <div class="input-field col s12"> | ||
12 | <p class="help">{{ 'user.manage.description'|trans|raw }}</p> | ||
13 | |||
14 | <table class="bordered"> | ||
15 | <thead> | ||
16 | <tr> | ||
17 | <th>{{ 'user.manage.field.username'|trans }}</th> | ||
18 | <th>{{ 'user.manage.field.email'|trans }}</th> | ||
19 | <th>{{ 'user.manage.field.last_login'|trans }}</th> | ||
20 | <th>{{ 'user.manage.field.locked'|trans }}</th> | ||
21 | <th>{{ 'user.manage.action'|trans }}</th> | ||
22 | </tr> | ||
23 | </thead> | ||
24 | |||
25 | <tbody> | ||
26 | {% for user in users %} | ||
27 | <tr> | ||
28 | <td>{{ user.username }}</td> | ||
29 | <td>{{ user.email }}</td> | ||
30 | <td>{{ user.lastLogin|date('d/m/Y H:i:s') }}</td> | ||
31 | <td>{{ user.locked ? 'yes' : 'no' }}</td> | ||
32 | <td>edit - delete</td> | ||
33 | </tr> | ||
34 | {% endfor %} | ||
35 | </tbody> | ||
36 | </table> | ||
37 | </div> | ||
38 | </div> | ||
39 | </div> | ||
40 | </div> | ||
41 | </div> | ||
42 | |||
43 | {% endblock %} | ||