summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile62
-rw-r--r--README0
-rwxr-xr-xclouds/clouds.css423
-rw-r--r--config.mk10
-rw-r--r--ice/h1.pngbin0 -> 167 bytes
-rw-r--r--ice/h2.pngbin0 -> 159 bytes
-rw-r--r--ice/h3.pngbin0 -> 159 bytes
-rw-r--r--ice/ice-ie.css5
-rw-r--r--ice/ice.css407
-rw-r--r--ice/menu_item.pngbin0 -> 143 bytes
-rw-r--r--ice/menu_item_hover.pngbin0 -> 202 bytes
-rw-r--r--ice/shadow-side.pngbin0 -> 98 bytes
-rw-r--r--ice/shadow-top.pngbin0 -> 109 bytes
-rw-r--r--ice/watermark.jpgbin0 -> 5798 bytes
-rw-r--r--snow/alpine.jpgbin0 -> 4005 bytes
-rw-r--r--snow/g-bottom.pngbin0 -> 436 bytes
-rw-r--r--snow/g-top.pngbin0 -> 439 bytes
-rw-r--r--snow/icicles.gifbin0 -> 8207 bytes
-rw-r--r--snow/logo-135x135.pngbin0 -> 8592 bytes
-rw-r--r--snow/logo-190x64.pngbin0 -> 4907 bytes
-rw-r--r--snow/orange.pngbin0 -> 214 bytes
-rw-r--r--snow/selected.pngbin0 -> 57716 bytes
-rw-r--r--snow/snow.css344
-rw-r--r--snow/snowcap.gifbin0 -> 4064 bytes
-rw-r--r--static/alpine.jpgbin0 -> 4005 bytes
-rwxr-xr-xstatic/alpine_inv.jpgbin0 -> 4354 bytes
-rw-r--r--static/prototype.js4221
-rw-r--r--static/reset.css51
-rw-r--r--static/tango/16x16/Makefile.am3
-rw-r--r--static/tango/16x16/Makefile.in509
-rw-r--r--static/tango/16x16/actions/Makefile.am82
-rw-r--r--static/tango/16x16/actions/Makefile.in460
-rw-r--r--static/tango/16x16/actions/address-book-new.pngbin0 -> 796 bytes
-rw-r--r--static/tango/16x16/actions/appointment-new.pngbin0 -> 897 bytes
-rw-r--r--static/tango/16x16/actions/bookmark-new.pngbin0 -> 686 bytes
-rw-r--r--static/tango/16x16/actions/contact-new.pngbin0 -> 628 bytes
-rw-r--r--static/tango/16x16/actions/document-new.pngbin0 -> 477 bytes
-rw-r--r--static/tango/16x16/actions/document-open.pngbin0 -> 537 bytes
-rw-r--r--static/tango/16x16/actions/document-print-preview.pngbin0 -> 779 bytes
-rw-r--r--static/tango/16x16/actions/document-print.pngbin0 -> 544 bytes
-rw-r--r--static/tango/16x16/actions/document-properties.pngbin0 -> 464 bytes
-rw-r--r--static/tango/16x16/actions/document-save-as.pngbin0 -> 866 bytes
-rw-r--r--static/tango/16x16/actions/document-save.pngbin0 -> 911 bytes
-rw-r--r--static/tango/16x16/actions/edit-clear.pngbin0 -> 773 bytes
-rw-r--r--static/tango/16x16/actions/edit-copy.pngbin0 -> 498 bytes
-rw-r--r--static/tango/16x16/actions/edit-cut.pngbin0 -> 807 bytes
-rw-r--r--static/tango/16x16/actions/edit-delete.pngbin0 -> 680 bytes
-rw-r--r--static/tango/16x16/actions/edit-find-replace.pngbin0 -> 776 bytes
-rw-r--r--static/tango/16x16/actions/edit-find.pngbin0 -> 617 bytes
-rw-r--r--static/tango/16x16/actions/edit-paste.pngbin0 -> 561 bytes
-rw-r--r--static/tango/16x16/actions/edit-redo.pngbin0 -> 591 bytes
-rw-r--r--static/tango/16x16/actions/edit-select-all.pngbin0 -> 441 bytes
-rw-r--r--static/tango/16x16/actions/edit-undo.pngbin0 -> 650 bytes
-rw-r--r--static/tango/16x16/actions/folder-new.pngbin0 -> 635 bytes
-rw-r--r--static/tango/16x16/actions/format-indent-less.pngbin0 -> 436 bytes
-rw-r--r--static/tango/16x16/actions/format-indent-more.pngbin0 -> 435 bytes
-rw-r--r--static/tango/16x16/actions/format-justify-center.pngbin0 -> 330 bytes
-rw-r--r--static/tango/16x16/actions/format-justify-fill.pngbin0 -> 317 bytes
-rw-r--r--static/tango/16x16/actions/format-justify-left.pngbin0 -> 324 bytes
-rw-r--r--static/tango/16x16/actions/format-justify-right.pngbin0 -> 342 bytes
-rw-r--r--static/tango/16x16/actions/format-text-bold.pngbin0 -> 705 bytes
-rw-r--r--static/tango/16x16/actions/format-text-italic.pngbin0 -> 619 bytes
-rw-r--r--static/tango/16x16/actions/format-text-strikethrough.pngbin0 -> 611 bytes
-rw-r--r--static/tango/16x16/actions/format-text-underline.pngbin0 -> 673 bytes
-rw-r--r--static/tango/16x16/actions/go-bottom.pngbin0 -> 663 bytes
-rw-r--r--static/tango/16x16/actions/go-down.pngbin0 -> 683 bytes
-rw-r--r--static/tango/16x16/actions/go-first.pngbin0 -> 666 bytes
-rw-r--r--static/tango/16x16/actions/go-home.pngbin0 -> 606 bytes
-rw-r--r--static/tango/16x16/actions/go-jump.pngbin0 -> 723 bytes
-rw-r--r--static/tango/16x16/actions/go-last.pngbin0 -> 685 bytes
-rw-r--r--static/tango/16x16/actions/go-next.pngbin0 -> 676 bytes
-rw-r--r--static/tango/16x16/actions/go-previous.pngbin0 -> 655 bytes
-rw-r--r--static/tango/16x16/actions/go-top.pngbin0 -> 636 bytes
-rw-r--r--static/tango/16x16/actions/go-up.pngbin0 -> 652 bytes
-rw-r--r--static/tango/16x16/actions/list-add.pngbin0 -> 323 bytes
-rw-r--r--static/tango/16x16/actions/list-remove.pngbin0 -> 247 bytes
-rw-r--r--static/tango/16x16/actions/mail-forward.pngbin0 -> 681 bytes
-rw-r--r--static/tango/16x16/actions/mail-mark-junk.pngbin0 -> 882 bytes
-rw-r--r--static/tango/16x16/actions/mail-mark-not-junk.pngbin0 -> 756 bytes
-rw-r--r--static/tango/16x16/actions/mail-message-new.pngbin0 -> 619 bytes
-rw-r--r--static/tango/16x16/actions/mail-reply-all.pngbin0 -> 868 bytes
-rw-r--r--static/tango/16x16/actions/mail-reply-sender.pngbin0 -> 693 bytes
-rw-r--r--static/tango/16x16/actions/mail-send-receive.pngbin0 -> 540 bytes
-rw-r--r--static/tango/16x16/actions/media-eject.pngbin0 -> 628 bytes
-rw-r--r--static/tango/16x16/actions/media-playback-pause.pngbin0 -> 464 bytes
-rw-r--r--static/tango/16x16/actions/media-playback-start.pngbin0 -> 660 bytes
-rw-r--r--static/tango/16x16/actions/media-playback-stop.pngbin0 -> 429 bytes
-rw-r--r--static/tango/16x16/actions/media-record.pngbin0 -> 653 bytes
-rw-r--r--static/tango/16x16/actions/media-seek-backward.pngbin0 -> 764 bytes
-rw-r--r--static/tango/16x16/actions/media-seek-forward.pngbin0 -> 782 bytes
-rw-r--r--static/tango/16x16/actions/media-skip-backward.pngbin0 -> 770 bytes
-rw-r--r--static/tango/16x16/actions/media-skip-forward.pngbin0 -> 771 bytes
-rw-r--r--static/tango/16x16/actions/process-stop.pngbin0 -> 820 bytes
-rw-r--r--static/tango/16x16/actions/system-lock-screen.pngbin0 -> 764 bytes
-rw-r--r--static/tango/16x16/actions/system-log-out.pngbin0 -> 799 bytes
-rw-r--r--static/tango/16x16/actions/system-search.pngbin0 -> 935 bytes
-rw-r--r--static/tango/16x16/actions/system-shutdown.pngbin0 -> 534 bytes
-rw-r--r--static/tango/16x16/actions/tab-new.pngbin0 -> 514 bytes
-rw-r--r--static/tango/16x16/actions/view-fullscreen.pngbin0 -> 650 bytes
-rw-r--r--static/tango/16x16/actions/view-refresh.pngbin0 -> 912 bytes
-rw-r--r--static/tango/16x16/actions/window-new.pngbin0 -> 583 bytes
-rw-r--r--static/tango/16x16/animations/Makefile.am14
-rw-r--r--static/tango/16x16/animations/Makefile.in392
-rw-r--r--static/tango/16x16/animations/process-working.pngbin0 -> 3097 bytes
-rw-r--r--static/tango/16x16/apps/Makefile.am41
-rw-r--r--static/tango/16x16/apps/Makefile.in419
-rw-r--r--static/tango/16x16/apps/accessories-calculator.pngbin0 -> 686 bytes
-rw-r--r--static/tango/16x16/apps/accessories-character-map.pngbin0 -> 558 bytes
-rw-r--r--static/tango/16x16/apps/accessories-text-editor.pngbin0 -> 574 bytes
-rw-r--r--static/tango/16x16/apps/help-browser.pngbin0 -> 932 bytes
-rw-r--r--static/tango/16x16/apps/internet-group-chat.pngbin0 -> 422 bytes
-rw-r--r--static/tango/16x16/apps/internet-mail.pngbin0 -> 550 bytes
-rw-r--r--static/tango/16x16/apps/internet-news-reader.pngbin0 -> 474 bytes
-rw-r--r--static/tango/16x16/apps/internet-web-browser.pngbin0 -> 928 bytes
-rw-r--r--static/tango/16x16/apps/office-calendar.pngbin0 -> 603 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-accessibility.pngbin0 -> 652 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-assistive-technology.pngbin0 -> 720 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-font.pngbin0 -> 553 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-keyboard-shortcuts.pngbin0 -> 653 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-locale.pngbin0 -> 452 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-multimedia.pngbin0 -> 650 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-remote-desktop.pngbin0 -> 734 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-screensaver.pngbin0 -> 707 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-theme.pngbin0 -> 757 bytes
-rw-r--r--static/tango/16x16/apps/preferences-desktop-wallpaper.pngbin0 -> 793 bytes
-rw-r--r--static/tango/16x16/apps/preferences-system-network-proxy.pngbin0 -> 829 bytes
-rw-r--r--static/tango/16x16/apps/preferences-system-session.pngbin0 -> 690 bytes
-rw-r--r--static/tango/16x16/apps/preferences-system-windows.pngbin0 -> 462 bytes
-rw-r--r--static/tango/16x16/apps/system-file-manager.pngbin0 -> 378 bytes
-rw-r--r--static/tango/16x16/apps/system-installer.pngbin0 -> 665 bytes
-rw-r--r--static/tango/16x16/apps/system-software-update.pngbin0 -> 964 bytes
-rw-r--r--static/tango/16x16/apps/system-users.pngbin0 -> 911 bytes
-rw-r--r--static/tango/16x16/apps/utilities-system-monitor.pngbin0 -> 611 bytes
-rw-r--r--static/tango/16x16/apps/utilities-terminal.pngbin0 -> 668 bytes
-rw-r--r--static/tango/16x16/categories/Makefile.am25
-rw-r--r--static/tango/16x16/categories/Makefile.in403
-rw-r--r--static/tango/16x16/categories/applications-accessories.pngbin0 -> 937 bytes
-rw-r--r--static/tango/16x16/categories/applications-development.pngbin0 -> 765 bytes
-rw-r--r--static/tango/16x16/categories/applications-games.pngbin0 -> 346 bytes
-rw-r--r--static/tango/16x16/categories/applications-graphics.pngbin0 -> 635 bytes
-rw-r--r--static/tango/16x16/categories/applications-internet.pngbin0 -> 864 bytes
-rw-r--r--static/tango/16x16/categories/applications-multimedia.pngbin0 -> 592 bytes
-rw-r--r--static/tango/16x16/categories/applications-office.pngbin0 -> 769 bytes
-rw-r--r--static/tango/16x16/categories/applications-other.pngbin0 -> 609 bytes
-rw-r--r--static/tango/16x16/categories/applications-system.pngbin0 -> 588 bytes
-rw-r--r--static/tango/16x16/categories/preferences-desktop-peripherals.pngbin0 -> 873 bytes
-rw-r--r--static/tango/16x16/categories/preferences-desktop.pngbin0 -> 440 bytes
-rw-r--r--static/tango/16x16/categories/preferences-system.pngbin0 -> 611 bytes
-rw-r--r--static/tango/16x16/devices/Makefile.am33
-rw-r--r--static/tango/16x16/devices/Makefile.in411
-rw-r--r--static/tango/16x16/devices/audio-card.pngbin0 -> 879 bytes
-rw-r--r--static/tango/16x16/devices/audio-input-microphone.pngbin0 -> 703 bytes
-rw-r--r--static/tango/16x16/devices/battery.pngbin0 -> 873 bytes
-rw-r--r--static/tango/16x16/devices/camera-photo.pngbin0 -> 864 bytes
-rw-r--r--static/tango/16x16/devices/camera-video.pngbin0 -> 701 bytes
-rw-r--r--static/tango/16x16/devices/computer.pngbin0 -> 443 bytes
-rw-r--r--static/tango/16x16/devices/drive-harddisk.pngbin0 -> 603 bytes
-rw-r--r--static/tango/16x16/devices/drive-optical.pngbin0 -> 720 bytes
-rw-r--r--static/tango/16x16/devices/drive-removable-media.pngbin0 -> 510 bytes
-rw-r--r--static/tango/16x16/devices/input-gaming.pngbin0 -> 812 bytes
-rw-r--r--static/tango/16x16/devices/input-keyboard.pngbin0 -> 562 bytes
-rw-r--r--static/tango/16x16/devices/input-mouse.pngbin0 -> 720 bytes
-rw-r--r--static/tango/16x16/devices/media-flash.pngbin0 -> 607 bytes
-rw-r--r--static/tango/16x16/devices/media-floppy.pngbin0 -> 561 bytes
-rw-r--r--static/tango/16x16/devices/media-optical.pngbin0 -> 931 bytes
-rw-r--r--static/tango/16x16/devices/multimedia-player.pngbin0 -> 516 bytes
-rw-r--r--static/tango/16x16/devices/network-wired.pngbin0 -> 699 bytes
-rw-r--r--static/tango/16x16/devices/network-wireless.pngbin0 -> 635 bytes
-rw-r--r--static/tango/16x16/devices/printer.pngbin0 -> 481 bytes
-rw-r--r--static/tango/16x16/devices/video-display.pngbin0 -> 631 bytes
-rw-r--r--static/tango/16x16/emblems/Makefile.am20
-rw-r--r--static/tango/16x16/emblems/Makefile.in398
-rw-r--r--static/tango/16x16/emblems/emblem-favorite.pngbin0 -> 788 bytes
-rw-r--r--static/tango/16x16/emblems/emblem-important.pngbin0 -> 717 bytes
-rw-r--r--static/tango/16x16/emblems/emblem-photos.pngbin0 -> 644 bytes
-rw-r--r--static/tango/16x16/emblems/emblem-readonly.pngbin0 -> 430 bytes
-rw-r--r--static/tango/16x16/emblems/emblem-symbolic-link.pngbin0 -> 459 bytes
-rw-r--r--static/tango/16x16/emblems/emblem-system.pngbin0 -> 629 bytes
-rw-r--r--static/tango/16x16/emblems/emblem-unreadable.pngbin0 -> 518 bytes
-rw-r--r--static/tango/16x16/emotes/Makefile.am26
-rw-r--r--static/tango/16x16/emotes/Makefile.in404
-rw-r--r--static/tango/16x16/emotes/face-angel.pngbin0 -> 992 bytes
-rw-r--r--static/tango/16x16/emotes/face-crying.pngbin0 -> 936 bytes
-rw-r--r--static/tango/16x16/emotes/face-devilish.pngbin0 -> 855 bytes
-rw-r--r--static/tango/16x16/emotes/face-glasses.pngbin0 -> 949 bytes
-rw-r--r--static/tango/16x16/emotes/face-grin.pngbin0 -> 905 bytes
-rw-r--r--static/tango/16x16/emotes/face-kiss.pngbin0 -> 919 bytes
-rw-r--r--static/tango/16x16/emotes/face-monkey.pngbin0 -> 784 bytes
-rw-r--r--static/tango/16x16/emotes/face-plain.pngbin0 -> 894 bytes
-rw-r--r--static/tango/16x16/emotes/face-sad.pngbin0 -> 918 bytes
-rw-r--r--static/tango/16x16/emotes/face-smile-big.pngbin0 -> 896 bytes
-rw-r--r--static/tango/16x16/emotes/face-smile.pngbin0 -> 919 bytes
-rw-r--r--static/tango/16x16/emotes/face-surprise.pngbin0 -> 917 bytes
-rw-r--r--static/tango/16x16/emotes/face-wink.pngbin0 -> 914 bytes
-rw-r--r--static/tango/16x16/mimetypes/Makefile.am34
-rw-r--r--static/tango/16x16/mimetypes/Makefile.in412
-rw-r--r--static/tango/16x16/mimetypes/application-certificate.pngbin0 -> 830 bytes
-rw-r--r--static/tango/16x16/mimetypes/application-x-executable.pngbin0 -> 560 bytes
-rw-r--r--static/tango/16x16/mimetypes/audio-x-generic.pngbin0 -> 419 bytes
-rw-r--r--static/tango/16x16/mimetypes/font-x-generic.pngbin0 -> 627 bytes
-rw-r--r--static/tango/16x16/mimetypes/image-x-generic.pngbin0 -> 558 bytes
-rw-r--r--static/tango/16x16/mimetypes/package-x-generic.pngbin0 -> 540 bytes
-rw-r--r--static/tango/16x16/mimetypes/text-html.pngbin0 -> 709 bytes
-rw-r--r--static/tango/16x16/mimetypes/text-x-generic-template.pngbin0 -> 446 bytes
-rw-r--r--static/tango/16x16/mimetypes/text-x-generic.pngbin0 -> 333 bytes
-rw-r--r--static/tango/16x16/mimetypes/text-x-script.pngbin0 -> 516 bytes
-rw-r--r--static/tango/16x16/mimetypes/video-x-generic.pngbin0 -> 823 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-address-book.pngbin0 -> 753 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-calendar.pngbin0 -> 604 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-document-template.pngbin0 -> 628 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-document.pngbin0 -> 392 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-drawing-template.pngbin0 -> 782 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-drawing.pngbin0 -> 541 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-presentation-template.pngbin0 -> 710 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-presentation.pngbin0 -> 567 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-spreadsheet-template.pngbin0 -> 780 bytes
-rw-r--r--static/tango/16x16/mimetypes/x-office-spreadsheet.pngbin0 -> 704 bytes
-rw-r--r--static/tango/16x16/places/Makefile.am22
-rw-r--r--static/tango/16x16/places/Makefile.in400
-rw-r--r--static/tango/16x16/places/folder-remote.pngbin0 -> 591 bytes
-rw-r--r--static/tango/16x16/places/folder-saved-search.pngbin0 -> 605 bytes
-rw-r--r--static/tango/16x16/places/folder.pngbin0 -> 498 bytes
-rw-r--r--static/tango/16x16/places/network-server.pngbin0 -> 642 bytes
-rw-r--r--static/tango/16x16/places/network-workgroup.pngbin0 -> 517 bytes
-rw-r--r--static/tango/16x16/places/start-here.pngbin0 -> 658 bytes
-rw-r--r--static/tango/16x16/places/user-desktop.pngbin0 -> 722 bytes
-rw-r--r--static/tango/16x16/places/user-home.pngbin0 -> 528 bytes
-rw-r--r--static/tango/16x16/places/user-trash.pngbin0 -> 655 bytes
-rw-r--r--static/tango/16x16/status/Makefile.am48
-rw-r--r--static/tango/16x16/status/Makefile.in426
-rw-r--r--static/tango/16x16/status/audio-volume-high.pngbin0 -> 685 bytes
-rw-r--r--static/tango/16x16/status/audio-volume-low.pngbin0 -> 500 bytes
-rw-r--r--static/tango/16x16/status/audio-volume-medium.pngbin0 -> 592 bytes
-rw-r--r--static/tango/16x16/status/audio-volume-muted.pngbin0 -> 632 bytes
-rw-r--r--static/tango/16x16/status/battery-caution.pngbin0 -> 816 bytes
-rw-r--r--static/tango/16x16/status/dialog-error.pngbin0 -> 653 bytes
-rw-r--r--static/tango/16x16/status/dialog-information.pngbin0 -> 863 bytes
-rw-r--r--static/tango/16x16/status/dialog-warning.pngbin0 -> 603 bytes
-rw-r--r--static/tango/16x16/status/folder-drag-accept.pngbin0 -> 502 bytes
-rw-r--r--static/tango/16x16/status/folder-open.pngbin0 -> 523 bytes
-rw-r--r--static/tango/16x16/status/folder-visiting.pngbin0 -> 456 bytes
-rw-r--r--static/tango/16x16/status/image-loading.pngbin0 -> 481 bytes
-rw-r--r--static/tango/16x16/status/image-missing.pngbin0 -> 427 bytes
-rw-r--r--static/tango/16x16/status/mail-attachment.pngbin0 -> 649 bytes
-rw-r--r--static/tango/16x16/status/network-error.pngbin0 -> 646 bytes
-rw-r--r--static/tango/16x16/status/network-idle.pngbin0 -> 393 bytes
-rw-r--r--static/tango/16x16/status/network-offline.pngbin0 -> 470 bytes
-rw-r--r--static/tango/16x16/status/network-receive.pngbin0 -> 456 bytes
-rw-r--r--static/tango/16x16/status/network-transmit-receive.pngbin0 -> 408 bytes
-rw-r--r--static/tango/16x16/status/network-transmit.pngbin0 -> 455 bytes
-rw-r--r--static/tango/16x16/status/network-wireless-encrypted.pngbin0 -> 971 bytes
-rw-r--r--static/tango/16x16/status/printer-error.pngbin0 -> 652 bytes
-rw-r--r--static/tango/16x16/status/software-update-available.pngbin0 -> 740 bytes
-rw-r--r--static/tango/16x16/status/software-update-urgent.pngbin0 -> 564 bytes
-rw-r--r--static/tango/16x16/status/user-trash-full.pngbin0 -> 786 bytes
-rw-r--r--static/tango/16x16/status/weather-clear-night.pngbin0 -> 961 bytes
-rw-r--r--static/tango/16x16/status/weather-clear.pngbin0 -> 682 bytes
-rw-r--r--static/tango/16x16/status/weather-few-clouds-night.pngbin0 -> 965 bytes
-rw-r--r--static/tango/16x16/status/weather-few-clouds.pngbin0 -> 763 bytes
-rw-r--r--static/tango/16x16/status/weather-overcast.pngbin0 -> 975 bytes
-rw-r--r--static/tango/16x16/status/weather-severe-alert.pngbin0 -> 977 bytes
-rw-r--r--static/tango/16x16/status/weather-showers-scattered.pngbin0 -> 1045 bytes
-rw-r--r--static/tango/16x16/status/weather-showers.pngbin0 -> 959 bytes
-rw-r--r--static/tango/16x16/status/weather-snow.pngbin0 -> 998 bytes
-rw-r--r--static/tango/16x16/status/weather-storm.pngbin0 -> 1031 bytes
-rw-r--r--static/watermark.jpgbin0 -> 5798 bytes
266 files changed, 10505 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..7beeedf
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,62 @@
+APP_NAME=skins
+PACKAGE=acf-$(APP_NAME)
+VERSION=0.1.0
+
+APP_DIST=\
+ static/alpine.jpg\
+ static/alpine_inv.jpg\
+ static/reset.css\
+ static/watermark.jpg\
+ static/prototype.js\
+ static/tango/16x16/categories/applications-internet.png \
+ static/tango/16x16/places/start-here.png \
+ static/tango/16x16/places/network-server.png \
+ static/tango/16x16/status/network*.png \
+ static/tango/16x16/devices/computer.png \
+ static/tango/16x16/devices/network*.png \
+ static/tango/16x16/apps/system-users.png \
+ ice/* \
+ snow/* \
+ clouds/*
+
+
+EXTRA_DIST=README Makefile config.mk
+
+DISTFILES=$(APP_DIST) $(EXTRA_DIST)
+
+TAR=tar
+
+P=$(PACKAGE)-$(VERSION)
+tarball=$(P).tar.bz2
+install_dir=$(DESTDIR)/$(wwwdir)/skins/
+
+all:
+clean:
+ rm -rf $(tarball) $(P)
+
+dist: $(tarball)
+
+install:
+ mkdir -p $(install_dir)
+ for i in $(WWW_DIST); do\
+ dest=`dirname "$(install_dir)/$$i"`;\
+ mkdir -p "$$dest";\
+ cp "$$i" "$$dest";\
+ done
+
+$(tarball): $(DISTFILES)
+ rm -rf $(P)
+ mkdir -p $(P)
+ cp $(DISTFILES) $(P)
+ $(TAR) -jcf $@ $(P)
+ rm -rf $(P)
+
+# target that creates a tar package, unpacks is and install from package
+dist-install: $(tarball)
+ $(TAR) -jxf $(tarball)
+ $(MAKE) -C $(P) install DESTDIR=$(DESTDIR)
+ rm -rf $(P)
+
+include config.mk
+
+.PHONY: all clean dist install dist-install
diff --git a/README b/README
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/README
diff --git a/clouds/clouds.css b/clouds/clouds.css
new file mode 100755
index 0000000..870423f
--- /dev/null
+++ b/clouds/clouds.css
@@ -0,0 +1,423 @@
+/* .css - Alpine ACF */
+
+/*----------------------------------------------------------------------------------
+ * GENERAL
+ *----------------------------------------------------------------------------------
+ */
+
+.hide {
+ display: none;
+}
+
+a {
+ text-decoration: none;
+ color: #072966;
+}
+a:visited {
+ color: #072966;
+}
+a:hover {
+ text-decoration: underline;
+ color: red;
+}
+input {
+ border: 1px solid #ccc;
+}
+hr {
+ background-color: #ffffff;
+ height: 3px;
+}
+.error {
+ font-weight: bold;
+ font-style: italic;
+ color: #f33;
+}
+input.error,select.error,textarea.error {
+ font-weight: normal;
+ font-style: normal;
+}
+
+.mute {
+ color: #777;
+}
+pre {
+ font-family: monospace;
+ font-size: 10pt;
+ padding: 5px;
+}
+.header {
+ background-color: #ddd;
+ color: black;
+ padding: 5px;
+ text-align: left;
+ font-weight: bold;
+}
+/*----------------------------------------------------------------------------------
+ * BODY & PAGE
+ *----------------------------------------------------------------------------------
+ */
+body {
+ margin: 0px;
+ padding: 0px;
+ font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif, Verdana, "Trebuchet MS", SunSans-Regular;
+ font-size: 12pt;
+ background: #eee;
+}
+#page {
+ left: 0px;
+ margin: 20px 5% 20px 5%;
+ background: white;
+ //height: 100%;
+ border: 1px solid black;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > HEADER
+ *----------------------------------------------------------------------------------
+ */
+#header {
+ width: 100%;
+ height: 75px;
+ background-image: url("/static/alpine_inv.jpg");
+ background-repeat: repeat-x;
+/* background: #777; */
+ color: white;
+ border-bottom: 3px solid black;
+}
+
+#header a {
+ color: white;
+ font-weight: bold;
+}
+
+#header p {
+/* float: left; */
+ position: absolute;
+ font-size: 14px;
+ margin-top: 0px;
+ left: 6%;
+ right: 6%;
+ color: white;
+ text-align: right;
+ top: 25px;
+}
+#logo p {
+ text-align: left;
+ color: white;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > HEADER > LOGO
+ *----------------------------------------------------------------------------------
+ */
+#logo h1 {
+ position: absolute;
+ text-align: center;
+ left: 0px;
+ right: 0px;
+ top: 20px;
+ width: 100%;
+ font-size: 40px;
+}
+#logo p {
+/* position: absolute;
+ top: 55px;
+ left: 10px;*/
+ float: left;
+ top: 25px;
+ font-size: 14px;
+ font-weight: bold;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN
+ *----------------------------------------------------------------------------------
+ */
+#main {
+ margin-top: 20px;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > NAV
+ *----------------------------------------------------------------------------------
+ */
+#nav {
+ float: left;
+ width: 180px;
+ margin-left: 5px;
+/* top: 82px;
+ left: 8px;
+ margin: 0px;
+ padding: 0px;
+ display: block;
+ background: white;
+ background-repeat: repeat-y;
+ background-position: right; */
+}
+#nav ul {
+ list-style-type: none;
+}
+#nav ul li {
+/* color: white;
+ font-size: 16px;
+ font-weight: bold;
+ white-space: nowrap;
+ overflow: hidden;
+ background: #6688AA;
+ border-top: 1px solid #7799BB; */
+ padding-left: 5px;
+/* padding-top: 5px;*/
+ background: silver;
+ font-weight: bold;
+ padding-top: 5px
+
+}
+#nav ul li ul {
+/* margin-top: 5px; */
+ background: white;
+ margin-top: 5px;
+}
+#nav ul li ul li {
+ margin-left: -5px;
+ padding: 2px;
+ padding-left: 15px;
+/*
+ padding-bottom: 0px;
+ font-weight: normal;
+ font-size: 10pt;
+ border-bottom: 1px solid #cacaca;
+ border-top: 1px solid #ccc;
+ border-left: 1px solid #ddd;*/
+ white-space: nowrap;
+ overflow: hidden;
+ background: white;
+/* height: 21px;
+ margin: 0px;
+ padding: 0px; */
+}
+#nav ul li ul li a {
+/* clear: right; */
+ display: list-item;
+ height: 20px;
+ font-weight: normal;
+
+/* padding-left: 5px;
+ padding-top: 3px;
+ padding-bottom: 3px; */
+}
+#nav ul li ul li a:hover {
+}
+#nav ul li ul li.selected a {
+ font-weight: bold;
+ text-decoration: underline;
+}
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > POSTNAV
+ *----------------------------------------------------------------------------------
+ */
+#postnav h2 {
+ display: none;
+}
+#postnav p {
+ display: none;
+}
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > SUBNAV
+ *----------------------------------------------------------------------------------
+ */
+#subnav {
+ position: absolute;
+ top: 71px;
+ right: 5%;
+ padding-top: 2px;
+ margin-bottom: 10px;
+/* background: blue; */
+ height: 14px;
+
+/* border: 2px solid blue; */
+}
+#subnav a {
+/* height: 20px; */
+/* margin: 0px 0px 5px 0px;
+ padding: 3px 5px 2px 5px; */
+ float: left;
+ padding: 5px;
+ margin-right: 10px;
+ margin-top: 0px;
+ font-size: 12px;
+/* background-image: url(menu_item.png); */
+ border: 1px solid #7799BB;
+ border-bottom: none;
+ background: #ccc;
+ height: 100%;
+}
+
+#subnav a.selected {
+ border: 2px solid #7799BB;
+ border-bottom: none;
+ font-weight: bold;
+ background: white;
+ text-decoration: underline;
+}
+#subnav .tailer {
+ display: none;
+ position: absolute;
+ background: blue;
+ top: 25px;
+ left: 0;
+ height: 30px;
+ width: 100%;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > CONTENT
+ *----------------------------------------------------------------------------------
+ */
+#content {
+ padding: 5px;
+ padding-top: 0px;
+ margin-left: 200px;
+ margin-right: 10px;
+
+/* margin-left: 200px; */
+}
+#content h1,h2,h3,h4,h5 {
+ margin-left: 0px;
+ text-align: left;
+ text-transform: uppercase;
+ color: #55d;
+ font-size: 10pt;
+ font-family: verdana;
+ font-weight: bold;
+ clear: right;
+ width: auto;
+ margin-right: 10px;
+ border-bottom: 2px solid #ddd;
+ margin-top: 5px;
+
+
+}
+#content h1 {
+ border: 1px solid #777;
+ border-left: none;
+ border-top: none;
+ font-size: 12pt;
+ background: #ccc;
+ padding: 5px;
+ color: black;
+ margin-right: 10px;
+}
+
+#content h2 {
+ padding-left: 10px;
+}
+#content h3 {
+ padding-left: 20px;
+ text-transform: capitalize;
+}
+/*
+
+#content .descr {
+ clear: both;
+}
+
+#content .value {
+ display: inline;
+ padding-left: 200px;
+}
+*/
+#content dl {
+ border: 1px dashed #ddd;
+ margin: 0px;
+ padding: 0px;
+ margin-bottom: 10px;
+ margin-top: 2px;
+ width: 98%;
+ display: block;
+ clear: right;
+}
+#content dt {
+ width: 220px;
+ font-size: 12px;
+ text-align: left;
+ font-weight: bold;
+ margin-top: 1px;
+ margin-left: 0px;
+ padding-left: 5px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+#content dd {
+ margin-top: -17px;
+ font-size: 12px;
+ margin-left: 230px;
+ padding-bottom: 5px;
+}
+#content .submit {
+ width: 100px;
+ border-right: 1px solid #cacaca;
+ border-bottom: 1px solid #cacaca;
+ background: #eee;
+}
+#content textarea {
+ border-right: 1px solid #cacaca;
+ border-bottom: 1px solid #cacaca;
+}
+#content table input.text,table select,table textarea,table input.password, textarea {
+ width: 97%;
+}
+
+#content dd input.text ,dd select,dd textarea,dd input.password {
+ width: 97%;
+}
+#content p,table,hr {
+ width: 97%;
+}
+#content p {
+ border-bottom: none;
+ margin-bottom: 5px;
+/* margin: 7px;
+ margin-left: 0px;
+ margin-right: 0px; */
+ padding: 0px;
+ padding-right: 15px;
+
+}
+
+#content p.descr {
+/* margin-left: 20px; */
+ display: inline;
+ width: auto;
+}
+#content textarea {
+ height: 300px;
+}
+#content dd textarea {
+ height: 100px;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > FOOTER
+ *----------------------------------------------------------------------------------
+ */
+
+#footer {
+/* float: right; */
+ margin: 10px;
+ margin-top: 60px;
+ padding: 5px;
+ margin-left: 200px;
+ margin-right: 20px;
+ clear: both;
+ text-align: center;
+ border-top: 1px solid #d6d6d6;
+ font-size: 10px;
+ color: #aaa;
+
+/* position: relative;
+ clear: both;
+ width: 100%;
+ padding: 5px 0px 5px 0px;
+ margin: 15px 0px 0px 10px; */
+}
+
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000..45f4d21
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,10 @@
+prefix=/usr
+datadir=${prefix}/share
+sysconfdir=${prefix}/etc
+localstatedir=${prefix}/var
+acfdir=${datadir}/acf
+wwwdir=${acfdir}/www
+cgibindir=${acfdir}/cgi-bin
+appdir=${acfdir}/app
+acflibdir=${acfdir}/lib
+sessionsdir=${localstatedir}/lib/acf/sessions
diff --git a/ice/h1.png b/ice/h1.png
new file mode 100644
index 0000000..f8cffd8
--- /dev/null
+++ b/ice/h1.png
Binary files differ
diff --git a/ice/h2.png b/ice/h2.png
new file mode 100644
index 0000000..4b25139
--- /dev/null
+++ b/ice/h2.png
Binary files differ
diff --git a/ice/h3.png b/ice/h3.png
new file mode 100644
index 0000000..87d62cd
--- /dev/null
+++ b/ice/h3.png
Binary files differ
diff --git a/ice/ice-ie.css b/ice/ice-ie.css
new file mode 100644
index 0000000..cb607fc
--- /dev/null
+++ b/ice/ice-ie.css
@@ -0,0 +1,5 @@
+#nav ul li ul li {
+ margin-top: -3px;
+ margin-bottom: -3px;
+}
+
diff --git a/ice/ice.css b/ice/ice.css
new file mode 100644
index 0000000..3a4f66e
--- /dev/null
+++ b/ice/ice.css
@@ -0,0 +1,407 @@
+/*----------------------------------------------------------------------------------
+ * IMPORT
+ *----------------------------------------------------------------------------------
+ */
+
+@import url("ice_general.cssxxx");
+@import url("ice_ie.css");
+/*@import url("ice_ff.css"); */
+
+
+/* .css - Alpine ACF */
+
+/*----------------------------------------------------------------------------------
+ * GENERAL
+ *----------------------------------------------------------------------------------
+ */
+
+.hide {
+ display: none;
+}
+
+a {
+ text-decoration: none;
+ color: #072966;
+}
+a:visited {
+ color: #072966;
+}
+a:hover {
+ color: red;
+}
+input {
+ border: 1px solid #ccc;
+}
+hr {
+ background-color: white;
+ height: 3px;
+}
+.error {
+ font-weight: bold;
+ font-style: italic;
+ color: #f33;
+}
+input.error,select.error,textarea.error {
+ font-weight: normal;
+ font-style: normal;
+}
+
+.mute {
+ color: #777;
+}
+.header {
+ background: #eee;
+ border-bottom: 3px double #999;
+ font-weight: bold;
+ vertical-align: bottom;
+}
+pre {
+ font-family: monospace;
+ font-size: 10pt;
+ padding: 5px;
+}
+input[type=text][disabled] {
+ color: #755;
+ background: #eee;
+}
+/*----------------------------------------------------------------------------------
+ * BODY & PAGE
+ *----------------------------------------------------------------------------------
+ */
+body {
+ margin: 0px 0px 0px 0px;
+ padding: 0px 0px 0px 0px;
+ font-family: Liberation Sans, Helvetica, Geneva, Arial, SunSans-Regular, sans-serif, Verdana, "Trebuchet MS", SunSans-Regular;
+ font-size: 12pt;
+ background-image: url("/static/watermark.jpg");
+ background-repeat: no-repeat;
+ background-position: 400px 140px;
+}
+#page {
+ position: relative;
+ left: 0px;
+ top: 0px;
+ margin: 10px 5% 0% 5%;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > HEADER
+ *----------------------------------------------------------------------------------
+ */
+#header {
+ width: 100%;
+ height: 75px;
+ margin: 0px 0px 0px 0px;
+ padding: 0px 0px 0px 0px;
+
+ background-image: url("/static/alpine.jpg");
+ background-repeat: repeat-x;
+ border: 1px solid #ddd;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+#header p {
+ float: right;
+ font-size: 14px;
+ padding: 0px 0px 0px 0px;
+ margin-right: 5px;
+ margin-top: 5px;
+}
+#header .tailer {
+ position: absolute;
+ background-image: url(shadow-top.png);
+ background-repeat: repeat-x;
+ top: 76px;
+ height: 10px;
+ width: 100%;
+ margin: 0px 0px 0px 0px;
+ padding: 0px 0px 0px 0px;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > HEADER > LOGO
+ *----------------------------------------------------------------------------------
+ */
+#logo h1 {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ font-size: 40px;
+}
+#logo p {
+ position: absolute;
+ top: 55px;
+ left: 10px;
+ font-size: 14px;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN
+ *----------------------------------------------------------------------------------
+ */
+#main {
+ clear: both;
+ margin-top: 20px;
+ margin-left: 200px;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > NAV
+ *----------------------------------------------------------------------------------
+ */
+#nav {
+ position: absolute;
+ top: 97px;
+ left: 0px;
+ width: 180px;
+ margin: 0px 0px 0px 9px;
+ padding: 0px 10px 0px 0px;
+ background: white;
+ background-image: url(shadow-side.png);
+ background-repeat: repeat-y;
+ background-position: right;
+}
+#nav ul {
+ list-style-type: none;
+}
+#nav ul li {
+ color: white;
+ font-size: 16px;
+ font-weight: bold;
+ white-space: nowrap;
+ overflow: hidden;
+ background: #6688AA;
+ border-top: 1px solid #7799BB;
+}
+#nav ul li ul {
+ margin-top: 5px;
+}
+#nav ul li ul li {
+ padding-bottom: 0px;
+ height: 21px;
+ font-weight: normal;
+ font-size: 10pt;
+ white-space: nowrap;
+ overflow: hidden;
+ border-bottom: 1px solid #cacaca;
+ border-top: 1px solid #ccc;
+ border-left: 1px solid #ddd;
+ background-image: url(menu_item.png);
+}
+#nav ul li ul li.selected {
+ background: #dff;
+ font-weight: bold;
+}
+#nav ul li ul li a {
+ clear: right;
+ display: list-item;
+ padding-left: 5px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+}
+#nav ul li ul li a:hover {
+ background-image: url(menu_item_hover.png);
+}
+#nav ul li ul li.selected a:hover {
+ background-image: none;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > POSTNAV
+ *----------------------------------------------------------------------------------
+ */
+#postnav h2 {
+ clear: both;
+ padding: 2px 0px 2px 5px;
+ background: #6688AA;
+ color: white;
+ font-size: 16px;
+ font-weight: bold;
+ white-space: nowrap;
+ overflow: hidden;
+ background-image: url(shadow-side.png);
+ background-repeat: repeat-y;
+ background-position: right;
+ border: none;
+ margin-right: 0px;
+}
+#postnav p {
+ position: absolute;
+ top: 80px;
+ left: 0px;
+ width: 100%;
+ color: #999;
+ font-size: 11px;
+ font-weight: verdana, arial;
+ font-weight: bold;
+ white-space: nowrap;
+ overflow: hidden;
+ background: transparent;
+ padding: 0px 5px 0px 10px;
+}
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > SUBNAV
+ *----------------------------------------------------------------------------------
+ */
+#subnav {
+ position: absolute;
+ top: 55px;
+ height: 40px;
+ left: 200px;
+ padding-top: 2px;
+}
+#subnav a {
+ height: 40px;
+ margin: 0px 0px 5px 0px;
+ padding: 3px 5px 2px 5px;
+ font-size: 12px;
+ background-image: url(menu_item.png);
+ border: 1px solid #bbb;
+ border-bottom: none;
+}
+
+#subnav a.selected {
+ background: #dff;
+}
+
+/*----------------------------------------------------------------------------------
+ * PAGE > MAIN > CONTENT
+ *----------------------------------------------------------------------------------
+ */
+#content {
+ background-image: url(shadow-side.png);
+ background-repeat: repeat-y;
+ background-position: right;
+ margin-top: -20px;
+ padding-right: 10px;
+ border-left: 1px solid #cacaca;
+}
+#content h1,h2,h3,h4,h5 {
+ clear: both;
+ padding-top: 3px;
+ border-bottom: 1px solid #cacaca;
+ border-top: 1px solid #cacaca;
+ font-weight: bold;
+ font-size: 14px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+#content h1 {
+ margin-top: 20px;
+ height: 17px;
+ background-image: url(h1.png);
+ padding-left: 5px;
+}
+#content h2 {
+ height: 18px;
+ background-image: url(h2.png);
+ padding-left: 10px;
+}
+#content h3 {
+ height: 14px;
+ background-image: url(h3.png);
+ font-size: 12px;
+ padding-left: 15px;
+}
+#content .descr {
+ clear: both;
+}
+
+#content .value {
+ display: inline;
+ padding-left: 200px;
+}
+#content dl {
+ margin: 0px;
+ padding: 0px;
+ margin-bottom: 10px;
+ margin-top: 2px;
+ width: 98%;
+ display: block;
+ clear: right;
+}
+#content dt {
+ width: 220px;
+ font-size: 12px;
+ text-align: left;
+ font-weight: bold;
+ margin-top: 1px;
+ margin-left: 0px;
+ padding-left: 5px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ border-top: 1px solid #ddd;
+}
+#content dd {
+ margin-top: -17px;
+ font-size: 12px;
+ margin-left: 230px;
+ padding-bottom: 5px;
+}
+#content .tailer {
+ clear: both;
+ border-bottom: 3px solid #cacaca;
+ margin-left: 0px;
+}
+#content .submit {
+ width: 100px;
+ border-right: 1px solid #cacaca;
+ border-bottom: 1px solid #cacaca;
+ background: #eee;
+}
+#content textarea {
+ border-right: 1px solid #cacaca;
+ border-bottom: 1px solid #cacaca;
+}
+#content p,input.text,select,textarea,input.password {
+ width: 97%;
+}
+#content table {
+ width: 100%;
+}
+#content input.short {
+ width: 200px;
+ margin-right: 10px;
+ display: inline;
+}
+
+#content textarea {
+ height: 300px;
+}
+#content dd textarea {
+ height: 100px;
+}
+#content form select.radio {
+ border: none;
+}
+#content table td {
+ padding-right: 10px;
+ white-space: normal;
+ border-bottom: 1px solid #ccc;
+}
+
+
+/*----------------------------------------------------------------------------------
+ * PAGE > FOOTER
+ *----------------------------------------------------------------------------------
+ */
+
+#footer {
+/* float: right; */
+ margin-top: 20px;
+ margin-left: 200px;
+ margin-right: 10px;
+ padding: 5px;
+ clear: both;
+ text-align: center;
+ border-top: 1px solid #d6d6d6;
+ font-size: 10px;
+ color: #aaa;
+
+/* position: relative;
+ clear: both;
+ width: 100%;
+ padding: 5px 0px 5px 0px;
+ margin: 15px 0px 0px 10px; */
+}
+
diff --git a/ice/menu_item.png b/ice/menu_item.png
new file mode 100644
index 0000000..e56a394
--- /dev/null
+++ b/ice/menu_item.png
Binary files differ
diff --git a/ice/menu_item_hover.png b/ice/menu_item_hover.png
new file mode 100644
index 0000000..1ddac37
--- /dev/null
+++ b/ice/menu_item_hover.png
Binary files differ
diff --git a/ice/shadow-side.png b/ice/shadow-side.png
new file mode 100644
index 0000000..bae16f4
--- /dev/null
+++ b/ice/shadow-side.png
Binary files differ
diff --git a/ice/shadow-top.png b/ice/shadow-top.png
new file mode 100644
index 0000000..68b17fa
--- /dev/null
+++ b/ice/shadow-top.png
Binary files differ
diff --git a/ice/watermark.jpg b/ice/watermark.jpg
new file mode 100644
index 0000000..e76142e
--- /dev/null
+++ b/ice/watermark.jpg
Binary files differ
diff --git a/snow/alpine.jpg b/snow/alpine.jpg
new file mode 100644
index 0000000..c792250
--- /dev/null
+++ b/snow/alpine.jpg
Binary files differ
diff --git a/snow/g-bottom.png b/snow/g-bottom.png
new file mode 100644
index 0000000..2ed3c2f
--- /dev/null
+++ b/snow/g-bottom.png
Binary files differ
diff --git a/snow/g-top.png b/snow/g-top.png
new file mode 100644
index 0000000..1b9c710
--- /dev/null
+++ b/snow/g-top.png
Binary files differ
diff --git a/snow/icicles.gif b/snow/icicles.gif
new file mode 100644
index 0000000..382f226
--- /dev/null
+++ b/snow/icicles.gif
Binary files differ
diff --git a/snow/logo-135x135.png b/snow/logo-135x135.png
new file mode 100644
index 0000000..c58f300
--- /dev/null
+++ b/snow/logo-135x135.png
Binary files differ
diff --git a/snow/logo-190x64.png b/snow/logo-190x64.png
new file mode 100644
index 0000000..b4f2ee3
--- /dev/null
+++ b/snow/logo-190x64.png
Binary files differ
diff --git a/snow/orange.png b/snow/orange.png
new file mode 100644
index 0000000..898aac5
--- /dev/null
+++ b/snow/orange.png
Binary files differ
diff --git a/snow/selected.png b/snow/selected.png
new file mode 100644
index 0000000..4edbaa4
--- /dev/null
+++ b/snow/selected.png
Binary files differ
diff --git a/snow/snow.css b/snow/snow.css
new file mode 100644
index 0000000..48ba8cb
--- /dev/null
+++ b/snow/snow.css
@@ -0,0 +1,344 @@
+/* "Snow" - a css for Alpine Configuration Framework -
+ * N. Angelacos 2007 - GPL2 */
+
+
+/*
+ * -----------------------------------------------------------------------
+ * Debug Definitons
+ * -----------------------------------------------------------------------
+ */
+
+/*
+ * -----------------------------------------------------------------------
+ * General Definitons
+ * -----------------------------------------------------------------------
+ */
+
+.hide {
+ display: none;
+ }
+
+a, a:visited {
+ text-decoration: underline;
+ color: #072966;
+ }
+
+a:hover {
+ background-color: #4871b3;
+ color: #fff;
+ }
+
+
+body {
+ background: url("/static/alpine.jpg") no-repeat;
+ background-position: top center;
+ font-family: Arial, "Trebuchet MS",Geneva, Helvetica, sans-serif;
+ font-size: 90%;
+ width: 100%;
+ }
+
+
+.leader {
+ float: left;
+ height: 0;
+ clear: both;
+ }
+
+.tailer {
+ float: left;
+ height: 0;
+ clear: both;
+ }
+/*--------------------------------------------------------------------------------*/
+#page {
+ position: relative;
+ }
+
+/*--------------------------------------------------------------------------------*/
+#header {
+ width: 100%;
+ }
+
+
+#header .mute {
+ display: inline;
+ float: right;
+ font-size: 80%;
+ margin: 8px 32px 0 0;
+ font-weight: bold;
+ }
+
+#header .leader {
+ display: none;
+ }
+
+#header .tailer {
+ clear: both;
+ display: none;
+ }
+
+
+/*--------------------------------------------------------------------------------*/
+
+#logo {
+ float: left;
+ width: 30%;
+ display: inline;
+ margin: .25em;
+ background: url("logo-190x64.png") no-repeat;
+ }
+
+#logo .leader {
+ display: none;
+ height: 0;
+ }
+
+#logo .tailer {
+ display: none;
+ height: 0;
+ }
+
+#logo h1 {
+ font-size: 200%;
+ display: none;
+ }
+
+#logo p {
+ /* position: absolute; */
+ display: block;
+ clear: both;
+ width: 100%;
+ left: .25em;
+ font-size: 100%;
+ padding-top: 70px;
+ }
+
+
+/*--------------------------------------------------------------------------------*/
+/* The .nav class is taken from suckerfish css dropdowns
+ see http: http://www.alistapart.com/articles/dropdowns */
+
+#nav {
+ float: right;
+ display: inline;
+ background: url("g-bottom.png") repeat-x bottom;
+ width: 100%;
+ line-height: 1;
+ border-top: 1px solid #ccc;
+ }
+
+#nav ul {
+ margin-right: 10em;
+ list-style: none;
+ float: left;
+ }
+
+#nav li { /* all list items */
+ float: left;
+ padding: 0em 2em 2px 2em;
+ color: #072966;
+ font-size: 125%;
+ font-weight: bold;
+ color: #248;
+ }
+
+#nav li ul { /* second-level lists - hidden */
+ position: absolute;
+ font-size: 65%;
+ width: 15em;
+ left: -999em;
+ }
+
+#nav li ul ul { /* third-and-above-level lists */
+ margin: -1em 0 0 20em;
+ }
+
+#nav li ul li {
+ border: none;
+ background: transparent;
+ padding: 0;
+ color: #248;
+ }
+
+#nav li:hover ul ul {
+ left: -999em;
+ }
+
+#nav li:hover ul { /* lists nested under hovered list items */
+ left: auto;
+ font-size: 65%;
+ background: url("orange.png");
+ border-left: 1px solid #777;
+ border-top: 1px solid #777;
+ border-bottom: 1px solid #777;
+ /* next line is for IE only */
+ // margin-top: 1.25em;
+ }
+
+#nav a {
+ display: block;
+ padding: 2px;
+ font-size: 75%;
+ width: 15em;
+ }
+
+
+/* End suckerfish */
+
+/*--------------------------------------------------------------------------------*/
+#main {
+ clear: both;
+ position: relative;
+ display: block;
+ margin: 0;
+ border: 0;
+ width: 100%;
+ }
+
+/*--------------------------------------------------------------------------------*/
+#postnav {
+ display: block;
+ clear: both;
+ font-size: 75%;
+ color: #248;
+ border-top: 1px solid #fff;
+ margin: 0 0;
+ }
+
+#postnav h2 {
+ font-size: 200%;
+ margin: 1.5em 10%;
+ }
+
+#postnav .tailer {
+ clear: both;
+ display: block;
+ }
+
+
+
+/*--------------------------------------------------------------------------------*/
+#subnav {
+ padding: 0 10%;
+ font-weight: bold;
+ }
+
+#subnav a {
+ /* display: inline; */
+ padding: .25em .25em 0 .25em;
+ border: 1px solid #ccc;
+ color: #fff;
+ border-bottom: none;
+ background: #ccc;
+ text-decoration: none;
+ }
+
+#subnav a:hover {
+ color: #fff;
+ background-color: #248;
+ }
+
+#subnav .selected {
+ background: #fff;
+ color: #248;
+ }
+
+/*--------------------------------------------------------------------------------*/
+
+#content {
+ border: 1px solid #ccc;
+ font-size: 85%;
+ line-height: 1.5;
+ width: 80%;
+ margin-left: 10%;
+ padding: 2em 2em;
+ }
+
+#content p {
+ clear: both;
+ display: block;
+ }
+
+
+#content h1 {
+ display: block;
+ font-size: 200%;
+ background: url("g-top.png") repeat-x top;
+ border-bottom: 1px dotted #248;
+ font-weight: bold;
+ color: #248;
+ padding: 0 1em;
+ margin-bottom: .5em;
+ }
+
+
+#content h2 {
+ font-size: 150%;
+ font-weight: bold;
+ display: block;
+ clear: both;
+ padding: 0 1em;
+ margin-bottom: .5em;
+ border-top: 1px dotted #ccc;
+ background: url("g-bottom.png") repeat-x bottom;
+ }
+
+#content h3 {
+ font-size: 125%;
+ font-weight: bold;
+ width: 100%;
+ display: block;
+ clear: both;
+ padding: 0 2px;
+ line-height: 1;
+ margin-bottom: .25em;
+ border-bottom: 1px dotted #248;
+ border-top: 1px dotted #248;
+ }
+
+#content dl {
+ display: block;
+ width: 100%;
+ clear: both;
+ color: #00f;
+ border: 1px solid green;
+ height: 1px;
+ }
+
+
+#content dt {
+ margin-top: 1em;
+ margin-right: 2em;
+ float: left;
+ clear: left;
+ width: 30%;
+ border-top: 1px dashed #ccc;
+ border-right: 1px dashed #ccc;
+ display: inline;
+ border: 1px solid red;
+ }
+
+
+#content dd {
+ padding-top: 1em;
+ margin-bottom: 1em;
+ background: #ccc;
+ display: block;
+ float: left;
+ border: 1px solid blue;
+ clear: right;
+ }
+
+
+#footer {
+ clear: both;
+ border-top: 1px solid #d6d6d6;
+ position: relative;
+ padding-top: 5px;
+ margin-top: 15px;
+ margin-bottom: 10px;
+ font-size: 10px;
+ text-align: left;
+ color: #aaa;
+}
+
diff --git a/snow/snowcap.gif b/snow/snowcap.gif
new file mode 100644
index 0000000..99e7193
--- /dev/null
+++ b/snow/snowcap.gif
Binary files differ
diff --git a/static/alpine.jpg b/static/alpine.jpg
new file mode 100644
index 0000000..c792250
--- /dev/null
+++ b/static/alpine.jpg
Binary files differ
diff --git a/static/alpine_inv.jpg b/static/alpine_inv.jpg
new file mode 100755
index 0000000..6cd62c3
--- /dev/null
+++ b/static/alpine_inv.jpg
Binary files differ
diff --git a/static/prototype.js b/static/prototype.js
new file mode 100644
index 0000000..6385503
--- /dev/null
+++ b/static/prototype.js
@@ -0,0 +1,4221 @@
+/* Prototype JavaScript framework, version 1.6.0.2
+ * (c) 2005-2008 Sam Stephenson
+ *
+ * Prototype is freely distributable under the terms of an MIT-style license.
+ * For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+ *--------------------------------------------------------------------------*/
+
+var Prototype = {
+ Version: '1.6.0.2',
+
+ Browser: {
+ IE: !!(window.attachEvent && !window.opera),
+ Opera: !!window.opera,
+ WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+ Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
+ MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
+ },
+
+ BrowserFeatures: {
+ XPath: !!document.evaluate,
+ ElementExtensions: !!window.HTMLElement,
+ SpecificElementExtensions:
+ document.createElement('div').__proto__ &&
+ document.createElement('div').__proto__ !==
+ document.createElement('form').__proto__
+ },
+
+ ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+ JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+ emptyFunction: function() { },
+ K: function(x) { return x }
+};
+
+if (Prototype.Browser.MobileSafari)
+ Prototype.BrowserFeatures.SpecificElementExtensions = false;
+
+
+/* Based on Alex Arnell's inheritance implementation. */
+var Class = {
+ create: function() {
+ var parent = null, properties = $A(arguments);
+ if (Object.isFunction(properties[0]))
+ parent = properties.shift();
+
+ function klass() {
+ this.initialize.apply(this, arguments);
+ }
+
+ Object.extend(klass, Class.Methods);
+ klass.superclass = parent;
+ klass.subclasses = [];
+
+ if (parent) {
+ var subclass = function() { };
+ subclass.prototype = parent.prototype;
+ klass.prototype = new subclass;
+ parent.subclasses.push(klass);
+ }
+
+ for (var i = 0; i < properties.length; i++)
+ klass.addMethods(properties[i]);
+
+ if (!klass.prototype.initialize)
+ klass.prototype.initialize = Prototype.emptyFunction;
+
+ klass.prototype.constructor = klass;
+
+ return klass;
+ }
+};
+
+Class.Methods = {
+ addMethods: function(source) {
+ var ancestor = this.superclass && this.superclass.prototype;
+ var properties = Object.keys(source);
+
+ if (!Object.keys({ toString: true }).length)
+ properties.push("toString", "valueOf");
+
+ for (var i = 0, length = properties.length; i < length; i++) {
+ var property = properties[i], value = source[property];
+ if (ancestor && Object.isFunction(value) &&
+ value.argumentNames().first() == "$super") {
+ var method = value, value = Object.extend((function(m) {
+ return function() { return ancestor[m].apply(this, arguments) };
+ })(property).wrap(method), {
+ valueOf: function() { return method },
+ toString: function() { return method.toString() }
+ });
+ }
+ this.prototype[property] = value;
+ }
+
+ return this;
+ }
+};
+
+var Abstract = { };
+
+Object.extend = function(destination, source) {
+ for (var property in source)
+ destination[property] = source[property];
+ return destination;
+};
+
+Object.extend(Object, {
+ inspect: function(object) {
+ try {
+ if (Object.isUndefined(object)) return 'undefined';
+ if (object === null) return 'null';
+ return object.inspect ? object.inspect() : String(object);
+ } catch (e) {
+ if (e instanceof RangeError) return '...';
+ throw e;
+ }
+ },
+
+ toJSON: function(object) {
+ var type = typeof object;
+ switch (type) {
+ case 'undefined':
+ case 'function':
+ case 'unknown': return;
+ case 'boolean': return object.toString();
+ }
+
+ if (object === null) return 'null';
+ if (object.toJSON) return object.toJSON();
+ if (Object.isElement(object)) return;
+
+ var results = [];
+ for (var property in object) {
+ var value = Object.toJSON(object[property]);
+ if (!Object.isUndefined(value))
+ results.push(property.toJSON() + ': ' + value);
+ }
+
+ return '{' + results.join(', ') + '}';
+ },
+
+ toQueryString: function(object) {
+ return $H(object).toQueryString();
+ },
+
+ toHTML: function(object) {
+ return object && object.toHTML ? object.toHTML() : String.interpret(object);
+ },
+
+ keys: function(object) {
+ var keys = [];
+ for (var property in object)
+ keys.push(property);
+ return keys;
+ },
+
+ values: function(object) {
+ var values = [];
+ for (var property in object)
+ values.push(object[property]);
+ return values;
+ },
+
+ clone: function(object) {
+ return Object.extend({ }, object);
+ },
+
+ isElement: function(object) {
+ return object && object.nodeType == 1;
+ },
+
+ isArray: function(object) {
+ return object != null && typeof object == "object" &&
+ 'splice' in object && 'join' in object;
+ },
+
+ isHash: function(object) {
+ return object instanceof Hash;
+ },
+
+ isFunction: function(object) {
+ return typeof object == "function";
+ },
+
+ isString: function(object) {
+ return typeof object == "string";
+ },
+
+ isNumber: function(object) {
+ return typeof object == "number";
+ },
+
+ isUndefined: function(object) {
+ return typeof object == "undefined";
+ }
+});
+
+Object.extend(Function.prototype, {
+ argumentNames: function() {
+ var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip");
+ return names.length == 1 && !names[0] ? [] : names;
+ },
+
+ bind: function() {
+ if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function() {
+ return __method.apply(object, args.concat($A(arguments)));
+ }
+ },
+
+ bindAsEventListener: function() {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function(event) {
+ return __method.apply(object, [event || window.event].concat(args));
+ }
+ },
+
+ curry: function() {
+ if (!arguments.length) return this;
+ var __method = this, args = $A(arguments);
+ return function() {
+ return __method.apply(this, args.concat($A(arguments)));
+ }
+ },
+
+ delay: function() {
+ var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
+ return window.setTimeout(function() {
+ return __method.apply(__method, args);
+ }, timeout);
+ },
+
+ wrap: function(wrapper) {
+ var __method = this;
+ return function() {
+ return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
+ }
+ },
+
+ methodize: function() {
+ if (this._methodized) return this._methodized;
+ var __method = this;
+ return this._methodized = function() {
+ return __method.apply(null, [this].concat($A(arguments)));
+ };
+ }
+});
+
+Function.prototype.defer = Function.prototype.delay.curry(0.01);
+
+Date.prototype.toJSON = function() {
+ return '"' + this.getUTCFullYear() + '-' +
+ (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+ this.getUTCDate().toPaddedString(2) + 'T' +
+ this.getUTCHours().toPaddedString(2) + ':' +
+ this.getUTCMinutes().toPaddedString(2) + ':' +
+ this.getUTCSeconds().toPaddedString(2) + 'Z"';
+};
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) { }
+ }
+
+ return returnValue;
+ }
+};
+
+RegExp.prototype.match = RegExp.prototype.test;
+
+RegExp.escape = function(str) {
+ return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+};
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create({
+ initialize: function(callback, frequency) {
+ this.callback = callback;
+ this.frequency = frequency;
+ this.currentlyExecuting = false;
+
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ execute: function() {
+ this.callback(this);
+ },
+
+ stop: function() {
+ if (!this.timer) return;
+ clearInterval(this.timer);
+ this.timer = null;
+ },
+
+ onTimerEvent: function() {
+ if (!this.currentlyExecuting) {
+ try {
+ this.currentlyExecuting = true;
+ this.execute();
+ } finally {
+ this.currentlyExecuting = false;
+ }
+ }
+ }
+});
+Object.extend(String, {
+ interpret: function(value) {
+ return value == null ? '' : String(value);
+ },
+ specialChar: {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '\\': '\\\\'
+ }
+});
+
+Object.extend(String.prototype, {
+ gsub: function(pattern, replacement) {
+ var result = '', source = this, match;
+ replacement = arguments.callee.prepareReplacement(replacement);
+
+ while (source.length > 0) {
+ if (match = source.match(pattern)) {
+ result += source.slice(0, match.index);
+ result += String.interpret(replacement(match));
+ source = source.slice(match.index + match[0].length);
+ } else {
+ result += source, source = '';
+ }
+ }
+ return result;
+ },
+
+ sub: function(pattern, replacement, count) {
+ replacement = this.gsub.prepareReplacement(replacement);
+ count = Object.isUndefined(count) ? 1 : count;
+
+ return this.gsub(pattern, function(match) {
+ if (--count < 0) return match[0];
+ return replacement(match);
+ });
+ },
+
+ scan: function(pattern, iterator) {
+ this.gsub(pattern, iterator);
+ return String(this);
+ },
+
+ truncate: function(length, truncation) {
+ length = length || 30;
+ truncation = Object.isUndefined(truncation) ? '...' : truncation;
+ return this.length > length ?
+ this.slice(0, length - truncation.length) + truncation : String(this);
+ },
+
+ strip: function() {
+ return this.replace(/^\s+/, '').replace(/\s+$/, '');
+ },
+
+ stripTags: function() {
+ return this.replace(/<\/?[^>]+>/gi, '');
+ },
+
+ stripScripts: function() {
+ return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+ },
+
+ extractScripts: function() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+ var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ return (this.match(matchAll) || []).map(function(scriptTag) {
+ return (scriptTag.match(matchOne) || ['', ''])[1];
+ });
+ },
+
+ evalScripts: function() {
+ return this.extractScripts().map(function(script) { return eval(script) });
+ },
+
+ escapeHTML: function() {
+ var self = arguments.callee;
+ self.text.data = this;
+ return self.div.innerHTML;
+ },
+
+ unescapeHTML: function() {
+ var div = new Element('div');
+ div.innerHTML = this.stripTags();
+ return div.childNodes[0] ? (div.childNodes.length > 1 ?
+ $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
+ div.childNodes[0].nodeValue) : '';
+ },
+
+ toQueryParams: function(separator) {
+ var match = this.strip().match(/([^?#]*)(#.*)?$/);
+ if (!match) return { };
+
+ return match[1].split(separator || '&').inject({ }, function(hash, pair) {
+ if ((pair = pair.split('='))[0]) {
+ var key = decodeURIComponent(pair.shift());
+ var value = pair.length > 1 ? pair.join('=') : pair[0];
+ if (value != undefined) value = decodeURIComponent(value);
+
+ if (key in hash) {
+ if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
+ hash[key].push(value);
+ }
+ else hash[key] = value;
+ }
+ return hash;
+ });
+ },
+
+ toArray: function() {
+ return this.split('');
+ },
+
+ succ: function() {
+ return this.slice(0, this.length - 1) +
+ String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+ },
+
+ times: function(count) {
+ return count < 1 ? '' : new Array(count + 1).join(this);
+ },
+
+ camelize: function() {
+ var parts = this.split('-'), len = parts.length;
+ if (len == 1) return parts[0];
+
+ var camelized = this.charAt(0) == '-'
+ ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+ : parts[0];
+
+ for (var i = 1; i < len; i++)
+ camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+ return camelized;
+ },
+
+ capitalize: function() {
+ return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+ },
+
+ underscore: function() {
+ return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+ },
+
+ dasherize: function() {
+ return this.gsub(/_/,'-');
+ },
+
+ inspect: function(useDoubleQuotes) {
+ var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
+ var character = String.specialChar[match[0]];
+ return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+ });
+ if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+ return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+ },
+
+ toJSON: function() {
+ return this.inspect(true);
+ },
+
+ unfilterJSON: function(filter) {
+ return this.sub(filter || Prototype.JSONFilter, '#{1}');
+ },
+
+ isJSON: function() {
+ var str = this;
+ if (str.blank()) return false;
+ str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+ return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+ },
+
+ evalJSON: function(sanitize) {
+ var json = this.unfilterJSON();
+ try {
+ if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+ } catch (e) { }
+ throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+ },
+
+ include: function(pattern) {
+ return this.indexOf(pattern) > -1;
+ },
+
+ startsWith: function(pattern) {
+ return this.indexOf(pattern) === 0;
+ },
+
+ endsWith: function(pattern) {
+ var d = this.length - pattern.length;
+ return d >= 0 && this.lastIndexOf(pattern) === d;
+ },
+
+ empty: function() {
+ return this == '';
+ },
+
+ blank: function() {
+ return /^\s*$/.test(this);
+ },
+
+ interpolate: function(object, pattern) {
+ return new Template(this, pattern).evaluate(object);
+ }
+});
+
+if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
+ escapeHTML: function() {
+ return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+ },
+ unescapeHTML: function() {
+ return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
+ }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+ if (Object.isFunction(replacement)) return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+};
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+Object.extend(String.prototype.escapeHTML, {
+ div: document.createElement('div'),
+ text: document.createTextNode('')
+});
+
+with (String.prototype.escapeHTML) div.appendChild(text);
+
+var Template = Class.create({
+ initialize: function(template, pattern) {
+ this.template = template.toString();
+ this.pattern = pattern || Template.Pattern;
+ },
+
+ evaluate: function(object) {
+ if (Object.isFunction(object.toTemplateReplacements))
+ object = object.toTemplateReplacements();
+
+ return this.template.gsub(this.pattern, function(match) {
+ if (object == null) return '';
+
+ var before = match[1] || '';
+ if (before == '\\') return match[2];
+
+ var ctx = object, expr = match[3];
+ var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
+ match = pattern.exec(expr);
+ if (match == null) return before;
+
+ while (match != null) {
+ var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
+ ctx = ctx[comp];
+ if (null == ctx || '' == match[3]) break;
+ expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
+ match = pattern.exec(expr);
+ }
+
+ return before + String.interpret(ctx);
+ });
+ }
+});
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+
+var $break = { };
+
+var Enumerable = {
+ each: function(iterator, context) {
+ var index = 0;
+ iterator = iterator.bind(context);
+ try {
+ this._each(function(value) {
+ iterator(value, index++);
+ });
+ } catch (e) {
+ if (e != $break) throw e;
+ }
+ return this;
+ },
+
+ eachSlice: function(number, iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var index = -number, slices = [], array = this.toArray();
+ while ((index += number) < array.length)
+ slices.push(array.slice(index, index+number));
+ return slices.collect(iterator, context);
+ },
+
+ all: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result = true;
+ this.each(function(value, index) {
+ result = result && !!iterator(value, index);
+ if (!result) throw $break;
+ });
+ return result;
+ },
+
+ any: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result = false;
+ this.each(function(value, index) {
+ if (result = !!iterator(value, index))
+ throw $break;
+ });
+ return result;
+ },
+
+ collect: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var results = [];
+ this.each(function(value, index) {
+ results.push(iterator(value, index));
+ });
+ return results;
+ },
+
+ detect: function(iterator, context) {
+ iterator = iterator.bind(context);
+ var result;
+ this.each(function(value, index) {
+ if (iterator(value, index)) {
+ result = value;
+ throw $break;
+ }
+ });
+ return result;
+ },
+
+ findAll: function(iterator, context) {
+ iterator = iterator.bind(context);
+ var results = [];
+ this.each(function(value, index) {
+ if (iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ grep: function(filter, iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var results = [];
+
+ if (Object.isString(filter))
+ filter = new RegExp(filter);
+
+ this.each(function(value, index) {
+ if (filter.match(value))
+ results.push(iterator(value, index));
+ });
+ return results;
+ },
+
+ include: function(object) {
+ if (Object.isFunction(this.indexOf))
+ if (this.indexOf(object) != -1) return true;
+
+ var found = false;
+ this.each(function(value) {
+ if (value == object) {
+ found = true;
+ throw $break;
+ }
+ });
+ return found;
+ },
+
+ inGroupsOf: function(number, fillWith) {
+ fillWith = Object.isUndefined(fillWith) ? null : fillWith;
+ return this.eachSlice(number, function(slice) {
+ while(slice.length < number) slice.push(fillWith);
+ return slice;
+ });
+ },
+
+ inject: function(memo, iterator, context) {
+ iterator = iterator.bind(context);
+ this.each(function(value, index) {
+ memo = iterator(memo, value, index);
+ });
+ return memo;
+ },
+
+ invoke: function(method) {
+ var args = $A(arguments).slice(1);
+ return this.map(function(value) {
+ return value[method].apply(value, args);
+ });
+ },
+
+ max: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator(value, index);
+ if (result == null || value >= result)
+ result = value;
+ });
+ return result;
+ },
+
+ min: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator(value, index);
+ if (result == null || value < result)
+ result = value;
+ });
+ return result;
+ },
+
+ partition: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var trues = [], falses = [];
+ this.each(function(value, index) {
+ (iterator(value, index) ?
+ trues : falses).push(value);
+ });
+ return [trues, falses];
+ },
+
+ pluck: function(property) {
+ var results = [];
+ this.each(function(value) {
+ results.push(value[property]);
+ });
+ return results;
+ },
+
+ reject: function(iterator, context) {
+ iterator = iterator.bind(context);
+ var results = [];
+ this.each(function(value, index) {
+ if (!iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ sortBy: function(iterator, context) {
+ iterator = iterator.bind(context);
+ return this.map(function(value, index) {
+ return {value: value, criteria: iterator(value, index)};
+ }).sort(function(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }).pluck('value');
+ },
+
+ toArray: function() {
+ return this.map();
+ },
+
+ zip: function() {
+ var iterator = Prototype.K, args = $A(arguments);
+ if (Object.isFunction(args.last()))
+ iterator = args.pop();
+
+ var collections = [this].concat(args).map($A);
+ return this.map(function(value, index) {
+ return iterator(collections.pluck(index));
+ });
+ },
+
+ size: function() {
+ return this.toArray().length;
+ },
+
+ inspect: function() {
+ return '#<Enumerable:' + this.toArray().inspect() + '>';
+ }
+};
+
+Object.extend(Enumerable, {
+ map: Enumerable.collect,
+ find: Enumerable.detect,
+ select: Enumerable.findAll,
+ filter: Enumerable.findAll,
+ member: Enumerable.include,
+ entries: Enumerable.toArray,
+ every: Enumerable.all,
+ some: Enumerable.any
+});
+function $A(iterable) {
+ if (!iterable) return [];
+ if (iterable.toArray) return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+}
+
+if (Prototype.Browser.WebKit) {
+ $A = function(iterable) {
+ if (!iterable) return [];
+ if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') &&
+ iterable.toArray) return iterable.toArray();
+ var length = iterable.length || 0, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+ };
+}
+
+Array.from = $A;
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+ _each: function(iterator) {
+ for (var i = 0, length = this.length; i < length; i++)
+ iterator(this[i]);
+ },
+
+ clear: function() {
+ this.length = 0;
+ return this;
+ },
+
+ first: function() {
+ return this[0];
+ },
+
+ last: function() {
+ return this[this.length - 1];
+ },
+
+ compact: function() {
+ return this.select(function(value) {
+ return value != null;
+ });
+ },
+
+ flatten: function() {
+ return this.inject([], function(array, value) {
+ return array.concat(Object.isArray(value) ?
+ value.flatten() : [value]);
+ });
+ },
+
+ without: function() {
+ var values = $A(arguments);
+ return this.select(function(value) {
+ return !values.include(value);
+ });
+ },
+
+ reverse: function(inline) {
+ return (inline !== false ? this : this.toArray())._reverse();
+ },
+
+ reduce: function() {
+ return this.length > 1 ? this : this[0];
+ },
+
+ uniq: function(sorted) {
+ return this.inject([], function(array, value, index) {
+ if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+ array.push(value);
+ return array;
+ });
+ },
+
+ intersect: function(array) {
+ return this.uniq().findAll(function(item) {
+ return array.detect(function(value) { return item === value });
+ });
+ },
+
+ clone: function() {
+ return [].concat(this);
+ },
+
+ size: function() {
+ return this.length;
+ },
+
+ inspect: function() {
+ return '[' + this.map(Object.inspect).join(', ') + ']';
+ },
+
+ toJSON: function() {
+ var results = [];
+ this.each(function(object) {
+ var value = Object.toJSON(object);
+ if (!Object.isUndefined(value)) results.push(value);
+ });
+ return '[' + results.join(', ') + ']';
+ }
+});
+
+// use native browser JS 1.6 implementation if available
+if (Object.isFunction(Array.prototype.forEach))
+ Array.prototype._each = Array.prototype.forEach;
+
+if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
+ i || (i = 0);
+ var length = this.length;
+ if (i < 0) i = length + i;
+ for (; i < length; i++)
+ if (this[i] === item) return i;
+ return -1;
+};
+
+if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
+ i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+ var n = this.slice(0, i).reverse().indexOf(item);
+ return (n < 0) ? n : i - n - 1;
+};
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string) {
+ if (!Object.isString(string)) return [];
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
+}
+
+if (Prototype.Browser.Opera){
+ Array.prototype.concat = function() {
+ var array = [];
+ for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ if (Object.isArray(arguments[i])) {
+ for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+ array.push(arguments[i][j]);
+ } else {
+ array.push(arguments[i]);
+ }
+ }
+ return array;
+ };
+}
+Object.extend(Number.prototype, {
+ toColorPart: function() {
+ return this.toPaddedString(2, 16);
+ },
+
+ succ: function() {
+ return this + 1;
+ },
+
+ times: function(iterator) {
+ $R(0, this, true).each(iterator);
+ return this;
+ },
+
+ toPaddedString: function(length, radix) {
+ var string = this.toString(radix || 10);
+ return '0'.times(length - string.length) + string;
+ },
+
+ toJSON: function() {
+ return isFinite(this) ? this.toString() : 'null';
+ }
+});
+
+$w('abs round ceil floor').each(function(method){
+ Number.prototype[method] = Math[method].methodize();
+});
+function $H(object) {
+ return new Hash(object);
+};
+
+var Hash = Class.create(Enumerable, (function() {
+
+ function toQueryPair(key, value) {
+ if (Object.isUndefined(value)) return key;
+ return key + '=' + encodeURIComponent(String.interpret(value));
+ }
+
+ return {
+ initialize: function(object) {
+ this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
+ },
+
+ _each: function(iterator) {
+ for (var key in this._object) {
+ var value = this._object[key], pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ },
+
+ set: function(key, value) {
+ return this._object[key] = value;
+ },
+
+ get: function(key) {
+ return this._object[key];
+ },
+
+ unset: function(key) {
+ var value = this._object[key];
+ delete this._object[key];
+ return value;
+ },
+
+ toObject: function() {
+ return Object.clone(this._object);
+ },
+
+ keys: function() {
+ return this.pluck('key');
+ },
+
+ values: function() {
+ return this.pluck('value');
+ },
+
+ index: function(value) {
+ var match = this.detect(function(pair) {
+ return pair.value === value;
+ });
+ return match && match.key;
+ },
+
+ merge: function(object) {
+ return this.clone().update(object);
+ },
+
+ update: function(object) {
+ return new Hash(object).inject(this, function(result, pair) {
+ result.set(pair.key, pair.value);
+ return result;
+ });
+ },
+
+ toQueryString: function() {
+ return this.map(function(pair) {
+ var key = encodeURIComponent(pair.key), values = pair.value;
+
+ if (values && typeof values == 'object') {
+ if (Object.isArray(values))
+ return values.map(toQueryPair.curry(key)).join('&');
+ }
+ return toQueryPair(key, values);
+ }).join('&');
+ },
+
+ inspect: function() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ },
+
+ toJSON: function() {
+ return Object.toJSON(this.toObject());
+ },
+
+ clone: function() {
+ return new Hash(this);
+ }
+ }
+})());
+
+Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
+Hash.from = $H;
+var ObjectRange = Class.create(Enumerable, {
+ initialize: function(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ },
+
+ _each: function(iterator) {
+ var value = this.start;
+ while (this.include(value)) {
+ iterator(value);
+ value = value.succ();
+ }
+ },
+
+ include: function(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+});
+
+var $R = function(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+};
+
+var Ajax = {
+ getTransport: function() {
+ return Try.these(
+ function() {return new XMLHttpRequest()},
+ function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+ ) || false;
+ },
+
+ activeRequestCount: 0
+};
+
+Ajax.Responders = {
+ responders: [],
+
+ _each: function(iterator) {
+ this.responders._each(iterator);
+ },
+
+ register: function(responder) {
+ if (!this.include(responder))
+ this.responders.push(responder);
+ },
+
+ unregister: function(responder) {
+ this.responders = this.responders.without(responder);
+ },
+
+ dispatch: function(callback, request, transport, json) {
+ this.each(function(responder) {
+ if (Object.isFunction(responder[callback])) {
+ try {
+ responder[callback].apply(responder, [request, transport, json]);
+ } catch (e) { }
+ }
+ });
+ }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+ onCreate: function() { Ajax.activeRequestCount++ },
+ onComplete: function() { Ajax.activeRequestCount-- }
+});
+
+Ajax.Base = Class.create({
+ initialize: function(options) {
+ this.options = {
+ method: 'post',
+ asynchronous: true,
+ contentType: 'application/x-www-form-urlencoded',
+ encoding: 'UTF-8',
+ parameters: '',
+ evalJSON: true,
+ evalJS: true
+ };
+ Object.extend(this.options, options || { });
+
+ this.options.method = this.options.method.toLowerCase();
+
+ if (Object.isString(this.options.parameters))
+ this.options.parameters = this.options.parameters.toQueryParams();
+ else if (Object.isHash(this.options.parameters))
+ this.options.parameters = this.options.parameters.toObject();
+ }
+});
+
+Ajax.Request = Class.create(Ajax.Base, {
+ _complete: false,
+
+ initialize: function($super, url, options) {
+ $super(options);
+ this.transport = Ajax.getTransport();
+ this.request(url);
+ },
+
+ request: function(url) {
+ this.url = url;
+ this.method = this.options.method;
+ var params = Object.clone(this.options.parameters);
+
+ if (!['get', 'post'].include(this.method)) {
+ // simulate other verbs over post
+ params['_method'] = this.method;
+ this.method = 'post';
+ }
+
+ this.parameters = params;
+
+ if (params = Object.toQueryString(params)) {
+ // when GET, append parameters to URL
+ if (this.method == 'get')
+ this.url += (this.url.include('?') ? '&' : '?') + params;
+ else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+ params += '&_=';
+ }
+
+ try {
+ var response = new Ajax.Response(this);
+ if (this.options.onCreate) this.options.onCreate(response);
+ Ajax.Responders.dispatch('onCreate', this, response);
+
+ this.transport.open(this.method.toUpperCase(), this.url,
+ this.options.asynchronous);
+
+ if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
+
+ this.transport.onreadystatechange = this.onStateChange.bind(this);
+ this.setRequestHeaders();
+
+ this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+ this.transport.send(this.body);
+
+ /* Force Firefox to handle ready state 4 for synchronous requests */
+ if (!this.options.asynchronous && this.transport.overrideMimeType)
+ this.onStateChange();
+
+ }
+ catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ onStateChange: function() {
+ var readyState = this.transport.readyState;
+ if (readyState > 1 && !((readyState == 4) && this._complete))
+ this.respondToReadyState(this.transport.readyState);
+ },
+
+ setRequestHeaders: function() {
+ var headers = {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'X-Prototype-Version': Prototype.Version,
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ };
+
+ if (this.method == 'post') {
+ headers['Content-type'] = this.options.contentType +
+ (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+ /* Force "Connection: close" for older Mozilla browsers to work
+ * around a bug where XMLHttpRequest sends an incorrect
+ * Content-length header. See Mozilla Bugzilla #246651.
+ */
+ if (this.transport.overrideMimeType &&
+ (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+ headers['Connection'] = 'close';
+ }
+
+ // user-defined headers
+ if (typeof this.options.requestHeaders == 'object') {
+ var extras = this.options.requestHeaders;
+
+ if (Object.isFunction(extras.push))
+ for (var i = 0, length = extras.length; i < length; i += 2)
+ headers[extras[i]] = extras[i+1];
+ else
+ $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+ }
+
+ for (var name in headers)
+ this.transport.setRequestHeader(name, headers[name]);
+ },
+
+ success: function() {
+ var status = this.getStatus();
+ return !status || (status >= 200 && status < 300);
+ },
+
+ getStatus: function() {
+ try {
+ return this.transport.status || 0;
+ } catch (e) { return 0 }
+ },
+
+ respondToReadyState: function(readyState) {
+ var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
+
+ if (state == 'Complete') {
+ try {
+ this._complete = true;
+ (this.options['on' + response.status]
+ || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+ || Prototype.emptyFunction)(response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ var contentType = response.getHeader('Content-type');
+ if (this.options.evalJS == 'force'
+ || (this.options.evalJS && this.isSameOrigin() && contentType
+ && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
+ this.evalResponse();
+ }
+
+ try {
+ (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
+ Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if (state == 'Complete') {
+ // avoid memory leak in MSIE: clean up
+ this.transport.onreadystatechange = Prototype.emptyFunction;
+ }
+ },
+
+ isSameOrigin: function() {
+ var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
+ return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
+ protocol: location.protocol,
+ domain: document.domain,
+ port: location.port ? ':' + location.port : ''
+ }));
+ },
+
+ getHeader: function(name) {
+ try {
+ return this.transport.getResponseHeader(name) || null;
+ } catch (e) { return null }
+ },
+
+ evalResponse: function() {
+ try {
+ return eval((this.transport.responseText || '').unfilterJSON());
+ } catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ dispatchException: function(exception) {
+ (this.options.onException || Prototype.emptyFunction)(this, exception);
+ Ajax.Responders.dispatch('onException', this, exception);
+ }
+});
+
+Ajax.Request.Events =
+ ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Response = Class.create({
+ initialize: function(request){
+ this.request = request;
+ var transport = this.transport = request.transport,
+ readyState = this.readyState = transport.readyState;
+
+ if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+ this.status = this.getStatus();
+ this.statusText = this.getStatusText();
+ this.responseText = String.interpret(transport.responseText);
+ this.headerJSON = this._getHeaderJSON();
+ }
+
+ if(readyState == 4) {
+ var xml = transport.responseXML;
+ this.responseXML = Object.isUndefined(xml) ? null : xml;
+ this.responseJSON = this._getResponseJSON();
+ }
+ },
+
+ status: 0,
+ statusText: '',
+
+ getStatus: Ajax.Request.prototype.getStatus,
+
+ getStatusText: function() {
+ try {
+ return this.transport.statusText || '';
+ } catch (e) { return '' }
+ },
+
+ getHeader: Ajax.Request.prototype.getHeader,
+
+ getAllHeaders: function() {
+ try {
+ return this.getAllResponseHeaders();
+ } catch (e) { return null }
+ },
+
+ getResponseHeader: function(name) {
+ return this.transport.getResponseHeader(name);
+ },
+
+ getAllResponseHeaders: function() {
+ return this.transport.getAllResponseHeaders();
+ },
+
+ _getHeaderJSON: function() {
+ var json = this.getHeader('X-JSON');
+ if (!json) return null;
+ json = decodeURIComponent(escape(json));
+ try {
+ return json.evalJSON(this.request.options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ },
+
+ _getResponseJSON: function() {
+ var options = this.request.options;
+ if (!options.evalJSON || (options.evalJSON != 'force' &&
+ !(this.getHeader('Content-type') || '').include('application/json')) ||
+ this.responseText.blank())
+ return null;
+ try {
+ return this.responseText.evalJSON(options.sanitizeJSON ||
+ !this.request.isSameOrigin());
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ }
+});
+
+Ajax.Updater = Class.create(Ajax.Request, {
+ initialize: function($super, container, url, options) {
+ this.container = {
+ success: (container.success || container),
+ failure: (container.failure || (container.success ? null : container))
+ };
+
+ options = Object.clone(options);
+ var onComplete = options.onComplete;
+ options.onComplete = (function(response, json) {
+ this.updateContent(response.responseText);
+ if (Object.isFunction(onComplete)) onComplete(response, json);
+ }).bind(this);
+
+ $super(url, options);
+ },
+
+ updateContent: function(responseText) {
+ var receiver = this.container[this.success() ? 'success' : 'failure'],
+ options = this.options;
+
+ if (!options.evalScripts) responseText = responseText.stripScripts();
+
+ if (receiver = $(receiver)) {
+ if (options.insertion) {
+ if (Object.isString(options.insertion)) {
+ var insertion = { }; insertion[options.insertion] = responseText;
+ receiver.insert(insertion);
+ }
+ else options.insertion(receiver, responseText);
+ }
+ else receiver.update(responseText);
+ }
+ }
+});
+
+Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
+ initialize: function($super, container, url, options) {
+ $super(options);
+ this.onComplete = this.options.onComplete;
+
+ this.frequency = (this.options.frequency || 2);
+ this.decay = (this.options.decay || 1);
+
+ this.updater = { };
+ this.container = container;
+ this.url = url;
+
+ this.start();
+ },
+
+ start: function() {
+ this.options.onComplete = this.updateComplete.bind(this);
+ this.onTimerEvent();
+ },
+
+ stop: function() {
+ this.updater.options.onComplete = undefined;
+ clearTimeout(this.timer);
+ (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+ },
+
+ updateComplete: function(response) {
+ if (this.options.decay) {
+ this.decay = (response.responseText == this.lastText ?
+ this.decay * this.options.decay : 1);
+
+ this.lastText = response.responseText;
+ }
+ this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
+ },
+
+ onTimerEvent: function() {
+ this.updater = new Ajax.Updater(this.container, this.url, this.options);
+ }
+});
+function $(element) {
+ if (arguments.length > 1) {
+ for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+ elements.push($(arguments[i]));
+ return elements;
+ }
+ if (Object.isString(element))
+ element = document.getElementById(element);
+ return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+ document._getElementsByXPath = function(expression, parentElement) {
+ var results = [];
+ var query = document.evaluate(expression, $(parentElement) || document,
+ null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, length = query.snapshotLength; i < length; i++)
+ results.push(Element.extend(query.snapshotItem(i)));
+ return results;
+ };
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Node) var Node = { };
+
+if (!Node.ELEMENT_NODE) {
+ // DOM level 2 ECMAScript Language Binding
+ Object.extend(Node, {
+ 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
+ });
+}
+
+(function() {
+ var element = this.Element;
+ this.Element = function(tagName, attributes) {
+ attributes = attributes || { };
+ tagName = tagName.toLowerCase();
+ var cache = Element.cache;
+ if (Prototype.Browser.IE && attributes.name) {
+ tagName = '<' + tagName + ' name="' + attributes.name + '">';
+ delete attributes.name;
+ return Element.writeAttribute(document.createElement(tagName), attributes);
+ }
+ if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
+ return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
+ };
+ Object.extend(this.Element, element || { });
+}).call(window);
+
+Element.cache = { };
+
+Element.Methods = {
+ visible: function(element) {
+ return $(element).style.display != 'none';
+ },
+
+ toggle: function(element) {
+ element = $(element);
+ Element[Element.visible(element) ? 'hide' : 'show'](element);
+ return element;
+ },
+
+ hide: function(element) {
+ $(element).style.display = 'none';
+ return element;
+ },
+
+ show: function(element) {
+ $(element).style.display = '';
+ return element;
+ },
+
+ remove: function(element) {
+ element = $(element);
+ element.parentNode.removeChild(element);
+ return element;
+ },
+
+ update: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+ content = Object.toHTML(content);
+ element.innerHTML = content.stripScripts();
+ content.evalScripts.bind(content).defer();
+ return element;
+ },
+
+ replace: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ else if (!Object.isElement(content)) {
+ content = Object.toHTML(content);
+ var range = element.ownerDocument.createRange();
+ range.selectNode(element);
+ content.evalScripts.bind(content).defer();
+ content = range.createContextualFragment(content.stripScripts());
+ }
+ element.parentNode.replaceChild(content, element);
+ return element;
+ },
+
+ insert: function(element, insertions) {
+ element = $(element);
+
+ if (Object.isString(insertions) || Object.isNumber(insertions) ||
+ Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+ insertions = {bottom:insertions};
+
+ var content, insert, tagName, childNodes;
+
+ for (var position in insertions) {
+ content = insertions[position];
+ position = position.toLowerCase();
+ insert = Element._insertionTranslations[position];
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ insert(element, content);
+ continue;
+ }
+
+ content = Object.toHTML(content);
+
+ tagName = ((position == 'before' || position == 'after')
+ ? element.parentNode : element).tagName.toUpperCase();
+
+ childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+
+ if (position == 'top' || position == 'after') childNodes.reverse();
+ childNodes.each(insert.curry(element));
+
+ content.evalScripts.bind(content).defer();
+ }
+
+ return element;
+ },
+
+ wrap: function(element, wrapper, attributes) {
+ element = $(element);
+ if (Object.isElement(wrapper))
+ $(wrapper).writeAttribute(attributes || { });
+ else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
+ else wrapper = new Element('div', wrapper);
+ if (element.parentNode)
+ element.parentNode.replaceChild(wrapper, element);
+ wrapper.appendChild(element);
+ return wrapper;
+ },
+
+ inspect: function(element) {
+ element = $(element);
+ var result = '<' + element.tagName.toLowerCase();
+ $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+ var property = pair.first(), attribute = pair.last();
+ var value = (element[property] || '').toString();
+ if (value) result += ' ' + attribute + '=' + value.inspect(true);
+ });
+ return result + '>';
+ },
+
+ recursivelyCollect: function(element, property) {
+ element = $(element);
+ var elements = [];
+ while (element = element[property])
+ if (element.nodeType == 1)
+ elements.push(Element.extend(element));
+ return elements;
+ },
+
+ ancestors: function(element) {
+ return $(element).recursivelyCollect('parentNode');
+ },
+
+ descendants: function(element) {
+ return $(element).select("*");
+ },
+
+ firstDescendant: function(element) {
+ element = $(element).firstChild;
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ return $(element);
+ },
+
+ immediateDescendants: function(element) {
+ if (!(element = $(element).firstChild)) return [];
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ if (element) return [element].concat($(element).nextSiblings());
+ return [];
+ },
+
+ previousSiblings: function(element) {
+ return $(element).recursivelyCollect('previousSibling');
+ },
+
+ nextSiblings: function(element) {
+ return $(element).recursivelyCollect('nextSibling');
+ },
+
+ siblings: function(element) {
+ element = $(element);
+ return element.previousSiblings().reverse().concat(element.nextSiblings());
+ },
+
+ match: function(element, selector) {
+ if (Object.isString(selector))
+ selector = new Selector(selector);
+ return selector.match($(element));
+ },
+
+ up: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(element.parentNode);
+ var ancestors = element.ancestors();
+ return Object.isNumber(expression) ? ancestors[expression] :
+ Selector.findElement(ancestors, expression, index);
+ },
+
+ down: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return element.firstDescendant();
+ return Object.isNumber(expression) ? element.descendants()[expression] :
+ element.select(expression)[index || 0];
+ },
+
+ previous: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+ var previousSiblings = element.previousSiblings();
+ return Object.isNumber(expression) ? previousSiblings[expression] :
+ Selector.findElement(previousSiblings, expression, index);
+ },
+
+ next: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+ var nextSiblings = element.nextSiblings();
+ return Object.isNumber(expression) ? nextSiblings[expression] :
+ Selector.findElement(nextSiblings, expression, index);
+ },
+
+ select: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element, args);
+ },
+
+ adjacent: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element.parentNode, args).without(element);
+ },
+
+ identify: function(element) {
+ element = $(element);
+ var id = element.readAttribute('id'), self = arguments.callee;
+ if (id) return id;
+ do { id = 'anonymous_element_' + self.counter++ } while ($(id));
+ element.writeAttribute('id', id);
+ return id;
+ },
+
+ readAttribute: function(element, name) {
+ element = $(element);
+ if (Prototype.Browser.IE) {
+ var t = Element._attributeTranslations.read;
+ if (t.values[name]) return t.values[name](element, name);
+ if (t.names[name]) name = t.names[name];
+ if (name.include(':')) {
+ return (!element.attributes || !element.attributes[name]) ? null :
+ element.attributes[name].value;
+ }
+ }
+ return element.getAttribute(name);
+ },
+
+ writeAttribute: function(element, name, value) {
+ element = $(element);
+ var attributes = { }, t = Element._attributeTranslations.write;
+
+ if (typeof name == 'object') attributes = name;
+ else attributes[name] = Object.isUndefined(value) ? true : value;
+
+ for (var attr in attributes) {
+ name = t.names[attr] || attr;
+ value = attributes[attr];
+ if (t.values[attr]) name = t.values[attr](element, value);
+ if (value === false || value === null)
+ element.removeAttribute(name);
+ else if (value === true)
+ element.setAttribute(name, name);
+ else element.setAttribute(name, value);
+ }
+ return element;
+ },
+
+ getHeight: function(element) {
+ return $(element).getDimensions().height;
+ },
+
+ getWidth: function(element) {
+ return $(element).getDimensions().width;
+ },
+
+ classNames: function(element) {
+ return new Element.ClassNames(element);
+ },
+
+ hasClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ var elementClassName = element.className;
+ return (elementClassName.length > 0 && (elementClassName == className ||
+ new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
+ },
+
+ addClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ if (!element.hasClassName(className))
+ element.className += (element.className ? ' ' : '') + className;
+ return element;
+ },
+
+ removeClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ element.className = element.className.replace(
+ new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
+ return element;
+ },
+
+ toggleClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ return element[element.hasClassName(className) ?
+ 'removeClassName' : 'addClassName'](className);
+ },
+
+ // removes whitespace-only text node children
+ cleanWhitespace: function(element) {
+ element = $(element);
+ var node = element.firstChild;
+ while (node) {
+ var nextNode = node.nextSibling;
+ if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+ element.removeChild(node);
+ node = nextNode;
+ }
+ return element;
+ },
+
+ empty: function(element) {
+ return $(element).innerHTML.blank();
+ },
+
+ descendantOf: function(element, ancestor) {
+ element = $(element), ancestor = $(ancestor);
+ var originalAncestor = ancestor;
+
+ if (element.compareDocumentPosition)
+ return (element.compareDocumentPosition(ancestor) & 8) === 8;
+
+ if (element.sourceIndex && !Prototype.Browser.Opera) {
+ var e = element.sourceIndex, a = ancestor.sourceIndex,
+ nextAncestor = ancestor.nextSibling;
+ if (!nextAncestor) {
+ do { ancestor = ancestor.parentNode; }
+ while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);
+ }
+ if (nextAncestor && nextAncestor.sourceIndex)
+ return (e > a && e < nextAncestor.sourceIndex);
+ }
+
+ while (element = element.parentNode)
+ if (element == originalAncestor) return true;
+ return false;
+ },
+
+ scrollTo: function(element) {
+ element = $(element);
+ var pos = element.cumulativeOffset();
+ window.scrollTo(pos[0], pos[1]);
+ return element;
+ },
+
+ getStyle: function(element, style) {
+ element = $(element);
+ style = style == 'float' ? 'cssFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value) {
+ var css = document.defaultView.getComputedStyle(element, null);
+ value = css ? css[style] : null;
+ }
+ if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+ return value == 'auto' ? null : value;
+ },
+
+ getOpacity: function(element) {
+ return $(element).getStyle('opacity');
+ },
+
+ setStyle: function(element, styles) {
+ element = $(element);
+ var elementStyle = element.style, match;
+ if (Object.isString(styles)) {
+ element.style.cssText += ';' + styles;
+ return styles.include('opacity') ?
+ element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
+ }
+ for (var property in styles)
+ if (property == 'opacity') element.setOpacity(styles[property]);
+ else
+ elementStyle[(property == 'float' || property == 'cssFloat') ?
+ (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
+ property] = styles[property];
+
+ return element;
+ },
+
+ setOpacity: function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+ return element;
+ },
+
+ getDimensions: function(element) {
+ element = $(element);
+ var display = $(element).getStyle('display');
+ if (display != 'none' && display != null) // Safari bug
+ return {width: element.offsetWidth, height: element.offsetHeight};
+
+ // All *Width and *Height properties give 0 on elements with display none,
+ // so enable the element temporarily
+ var els = element.style;
+ var originalVisibility = els.visibility;
+ var originalPosition = els.position;
+ var originalDisplay = els.display;
+ els.visibility = 'hidden';
+ els.position = 'absolute';
+ els.display = 'block';
+ var originalWidth = element.clientWidth;
+ var originalHeight = element.clientHeight;
+ els.display = originalDisplay;
+ els.position = originalPosition;
+ els.visibility = originalVisibility;
+ return {width: originalWidth, height: originalHeight};
+ },
+
+ makePositioned: function(element) {
+ element = $(element);
+ var pos = Element.getStyle(element, 'position');
+ if (pos == 'static' || !pos) {
+ element._madePositioned = true;
+ element.style.position = 'relative';
+ // Opera returns the offset relative to the positioning context, when an
+ // element is position relative but top and left have not been defined
+ if (window.opera) {
+ element.style.top = 0;
+ element.style.left = 0;
+ }
+ }
+ return element;
+ },
+
+ undoPositioned: function(element) {
+ element = $(element);
+ if (element._madePositioned) {
+ element._madePositioned = undefined;
+ element.style.position =
+ element.style.top =
+ element.style.left =
+ element.style.bottom =
+ element.style.right = '';
+ }
+ return element;
+ },
+
+ makeClipping: function(element) {
+ element = $(element);
+ if (element._overflow) return element;
+ element._overflow = Element.getStyle(element, 'overflow') || 'auto';
+ if (element._overflow !== 'hidden')
+ element.style.overflow = 'hidden';
+ return element;
+ },
+
+ undoClipping: function(element) {
+ element = $(element);
+ if (!element._overflow) return element;
+ element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+ element._overflow = null;
+ return element;
+ },
+
+ cumulativeOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ positionedOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if (element.tagName == 'BODY') break;
+ var p = Element.getStyle(element, 'position');
+ if (p !== 'static') break;
+ }
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ absolutize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'absolute') return;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ var offsets = element.positionedOffset();
+ var top = offsets[1];
+ var left = offsets[0];
+ var width = element.clientWidth;
+ var height = element.clientHeight;
+
+ element._originalLeft = left - parseFloat(element.style.left || 0);
+ element._originalTop = top - parseFloat(element.style.top || 0);
+ element._originalWidth = element.style.width;
+ element._originalHeight = element.style.height;
+
+ element.style.position = 'absolute';
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.width = width + 'px';
+ element.style.height = height + 'px';
+ return element;
+ },
+
+ relativize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'relative') return;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ element.style.position = 'relative';
+ var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
+ var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.height = element._originalHeight;
+ element.style.width = element._originalWidth;
+ return element;
+ },
+
+ cumulativeScrollOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ getOffsetParent: function(element) {
+ if (element.offsetParent) return $(element.offsetParent);
+ if (element == document.body) return $(element);
+
+ while ((element = element.parentNode) && element != document.body)
+ if (Element.getStyle(element, 'position') != 'static')
+ return $(element);
+
+ return $(document.body);
+ },
+
+ viewportOffset: function(forElement) {
+ var valueT = 0, valueL = 0;
+
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+
+ // Safari fix
+ if (element.offsetParent == document.body &&
+ Element.getStyle(element, 'position') == 'absolute') break;
+
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (!Prototype.Browser.Opera || element.tagName == 'BODY') {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
+ }
+ } while (element = element.parentNode);
+
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ clonePosition: function(element, source) {
+ var options = Object.extend({
+ setLeft: true,
+ setTop: true,
+ setWidth: true,
+ setHeight: true,
+ offsetTop: 0,
+ offsetLeft: 0
+ }, arguments[2] || { });
+
+ // find page position of source
+ source = $(source);
+ var p = source.viewportOffset();
+
+ // find coordinate system to use
+ element = $(element);
+ var delta = [0, 0];
+ var parent = null;
+ // delta [0,0] will do fine with position: fixed elements,
+ // position:absolute needs offsetParent deltas
+ if (Element.getStyle(element, 'position') == 'absolute') {
+ parent = element.getOffsetParent();
+ delta = parent.viewportOffset();
+ }
+
+ // correct by body offsets (fixes Safari)
+ if (parent == document.body) {
+ delta[0] -= document.body.offsetLeft;
+ delta[1] -= document.body.offsetTop;
+ }
+
+ // set position
+ if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+ if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
+ if (options.setWidth) element.style.width = source.offsetWidth + 'px';
+ if (options.setHeight) element.style.height = source.offsetHeight + 'px';
+ return element;
+ }
+};
+
+Element.Methods.identify.counter = 1;
+
+Object.extend(Element.Methods, {
+ getElementsBySelector: Element.Methods.select,
+ childElements: Element.Methods.immediateDescendants
+});
+
+Element._attributeTranslations = {
+ write: {
+ names: {
+ className: 'class',
+ htmlFor: 'for'
+ },
+ values: { }
+ }
+};
+
+if (Prototype.Browser.Opera) {
+ Element.Methods.getStyle = Element.Methods.getStyle.wrap(
+ function(proceed, element, style) {
+ switch (style) {
+ case 'left': case 'top': case 'right': case 'bottom':
+ if (proceed(element, 'position') === 'static') return null;
+ case 'height': case 'width':
+ // returns '0px' for hidden elements; we want it to return null
+ if (!Element.visible(element)) return null;
+
+ // returns the border-box dimensions rather than the content-box
+ // dimensions, so we subtract padding and borders from the value
+ var dim = parseInt(proceed(element, style), 10);
+
+ if (dim !== element['offset' + style.capitalize()])
+ return dim + 'px';
+
+ var properties;
+ if (style === 'height') {
+ properties = ['border-top-width', 'padding-top',
+ 'padding-bottom', 'border-bottom-width'];
+ }
+ else {
+ properties = ['border-left-width', 'padding-left',
+ 'padding-right', 'border-right-width'];
+ }
+ return properties.inject(dim, function(memo, property) {
+ var val = proceed(element, property);
+ return val === null ? memo : memo - parseInt(val, 10);
+ }) + 'px';
+ default: return proceed(element, style);
+ }
+ }
+ );
+
+ Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
+ function(proceed, element, attribute) {
+ if (attribute === 'title') return element.title;
+ return proceed(element, attribute);
+ }
+ );
+}
+
+else if (Prototype.Browser.IE) {
+ // IE doesn't report offsets correctly for static elements, so we change them
+ // to "relative" to get the values, then change them back.
+ Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
+ function(proceed, element) {
+ element = $(element);
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+
+ $w('positionedOffset viewportOffset').each(function(method) {
+ Element.Methods[method] = Element.Methods[method].wrap(
+ function(proceed, element) {
+ element = $(element);
+ var position = element.getStyle('position');
+ if (position !== 'static') return proceed(element);
+ // Trigger hasLayout on the offset parent so that IE6 reports
+ // accurate offsetTop and offsetLeft values for position: fixed.
+ var offsetParent = element.getOffsetParent();
+ if (offsetParent && offsetParent.getStyle('position') === 'fixed')
+ offsetParent.setStyle({ zoom: 1 });
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+ });
+
+ Element.Methods.getStyle = function(element, style) {
+ element = $(element);
+ style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value && element.currentStyle) value = element.currentStyle[style];
+
+ if (style == 'opacity') {
+ if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+ if (value[1]) return parseFloat(value[1]) / 100;
+ return 1.0;
+ }
+
+ if (value == 'auto') {
+ if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+ return element['offset' + style.capitalize()] + 'px';
+ return null;
+ }
+ return value;
+ };
+
+ Element.Methods.setOpacity = function(element, value) {
+ function stripAlpha(filter){
+ return filter.replace(/alpha\([^\)]*\)/gi,'');
+ }
+ element = $(element);
+ var currentStyle = element.currentStyle;
+ if ((currentStyle && !currentStyle.hasLayout) ||
+ (!currentStyle && element.style.zoom == 'normal'))
+ element.style.zoom = 1;
+
+ var filter = element.getStyle('filter'), style = element.style;
+ if (value == 1 || value === '') {
+ (filter = stripAlpha(filter)) ?
+ style.filter = filter : style.removeAttribute('filter');
+ return element;
+ } else if (value < 0.00001) value = 0;
+ style.filter = stripAlpha(filter) +
+ 'alpha(opacity=' + (value * 100) + ')';
+ return element;
+ };
+
+ Element._attributeTranslations = {
+ read: {
+ names: {
+ 'class': 'className',
+ 'for': 'htmlFor'
+ },
+ values: {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+ _getAttrNode: function(element, attribute) {
+ var node = element.getAttributeNode(attribute);
+ return node ? node.value : "";
+ },
+ _getEv: function(element, attribute) {
+ attribute = element.getAttribute(attribute);
+ return attribute ? attribute.toString().slice(23, -2) : null;
+ },
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+ title: function(element) {
+ return element.title;
+ }
+ }
+ }
+ };
+
+ Element._attributeTranslations.write = {
+ names: Object.extend({
+ cellpadding: 'cellPadding',
+ cellspacing: 'cellSpacing'
+ }, Element._attributeTranslations.read.names),
+ values: {
+ checked: function(element, value) {
+ element.checked = !!value;
+ },
+
+ style: function(element, value) {
+ element.style.cssText = value ? value : '';
+ }
+ }
+ };
+
+ Element._attributeTranslations.has = {};
+
+ $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
+ 'encType maxLength readOnly longDesc').each(function(attr) {
+ Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
+ Element._attributeTranslations.has[attr.toLowerCase()] = attr;
+ });
+
+ (function(v) {
+ Object.extend(v, {
+ href: v._getAttr,
+ src: v._getAttr,
+ type: v._getAttr,
+ action: v._getAttrNode,
+ disabled: v._flag,
+ checked: v._flag,
+ readonly: v._flag,
+ multiple: v._flag,
+ onload: v._getEv,
+ onunload: v._getEv,
+ onclick: v._getEv,
+ ondblclick: v._getEv,
+ onmousedown: v._getEv,
+ onmouseup: v._getEv,
+ onmouseover: v._getEv,
+ onmousemove: v._getEv,
+ onmouseout: v._getEv,
+ onfocus: v._getEv,
+ onblur: v._getEv,
+ onkeypress: v._getEv,
+ onkeydown: v._getEv,
+ onkeyup: v._getEv,
+ onsubmit: v._getEv,
+ onreset: v._getEv,
+ onselect: v._getEv,
+ onchange: v._getEv
+ });
+ })(Element._attributeTranslations.read.values);
+}
+
+else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1) ? 0.999999 :
+ (value === '') ? '' : (value < 0.00001) ? 0 : value;
+ return element;
+ };
+}
+
+else if (Prototype.Browser.WebKit) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+
+ if (value == 1)
+ if(element.tagName == 'IMG' && element.width) {
+ element.width++; element.width--;
+ } else try {
+ var n = document.createTextNode(' ');
+ element.appendChild(n);
+ element.removeChild(n);
+ } catch (e) { }
+
+ return element;
+ };
+
+ // Safari returns margins on body which is incorrect if the child is absolutely
+ // positioned. For performance reasons, redefine Element#cumulativeOffset for
+ // KHTML/WebKit only.
+ Element.Methods.cumulativeOffset = function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element, 'position') == 'absolute') break;
+
+ element = element.offsetParent;
+ } while (element);
+
+ return Element._returnOffset(valueL, valueT);
+ };
+}
+
+if (Prototype.Browser.IE || Prototype.Browser.Opera) {
+ // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
+ Element.Methods.update = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+
+ content = Object.toHTML(content);
+ var tagName = element.tagName.toUpperCase();
+
+ if (tagName in Element._insertionTranslations.tags) {
+ $A(element.childNodes).each(function(node) { element.removeChild(node) });
+ Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+ .each(function(node) { element.appendChild(node) });
+ }
+ else element.innerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+if ('outerHTML' in document.createElement('div')) {
+ Element.Methods.replace = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ element.parentNode.replaceChild(content, element);
+ return element;
+ }
+
+ content = Object.toHTML(content);
+ var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
+
+ if (Element._insertionTranslations.tags[tagName]) {
+ var nextSibling = element.next();
+ var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+ parent.removeChild(element);
+ if (nextSibling)
+ fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
+ else
+ fragments.each(function(node) { parent.appendChild(node) });
+ }
+ else element.outerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+Element._returnOffset = function(l, t) {
+ var result = [l, t];
+ result.left = l;
+ result.top = t;
+ return result;
+};
+
+Element._getContentFromAnonymousElement = function(tagName, html) {
+ var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
+ if (t) {
+ div.innerHTML = t[0] + html + t[1];
+ t[2].times(function() { div = div.firstChild });
+ } else div.innerHTML = html;
+ return $A(div.childNodes);
+};
+
+Element._insertionTranslations = {
+ before: function(element, node) {
+ element.parentNode.insertBefore(node, element);
+ },
+ top: function(element, node) {
+ element.insertBefore(node, element.firstChild);
+ },
+ bottom: function(element, node) {
+ element.appendChild(node);
+ },
+ after: function(element, node) {
+ element.parentNode.insertBefore(node, element.nextSibling);
+ },
+ tags: {
+ TABLE: ['<table>', '</table>', 1],
+ TBODY: ['<table><tbody>', '</tbody></table>', 2],
+ TR: ['<table><tbody><tr>', '</tr></tbody></table>', 3],
+ TD: ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
+ SELECT: ['<select>', '</select>', 1]
+ }
+};
+
+(function() {
+ Object.extend(this.tags, {
+ THEAD: this.tags.TBODY,
+ TFOOT: this.tags.TBODY,
+ TH: this.tags.TD
+ });
+}).call(Element._insertionTranslations);
+
+Element.Methods.Simulated = {
+ hasAttribute: function(element, attribute) {
+ attribute = Element._attributeTranslations.has[attribute] || attribute;
+ var node = $(element).getAttributeNode(attribute);
+ return node && node.specified;
+ }
+};
+
+Element.Methods.ByTag = { };
+
+Object.extend(Element, Element.Methods);
+
+if (!Prototype.BrowserFeatures.ElementExtensions &&
+ document.createElement('div').__proto__) {
+ window.HTMLElement = { };
+ window.HTMLElement.prototype = document.createElement('div').__proto__;
+ Prototype.BrowserFeatures.ElementExtensions = true;
+}
+
+Element.extend = (function() {
+ if (Prototype.BrowserFeatures.SpecificElementExtensions)
+ return Prototype.K;
+
+ var Methods = { }, ByTag = Element.Methods.ByTag;
+
+ var extend = Object.extend(function(element) {
+ if (!element || element._extendedByPrototype ||
+ element.nodeType != 1 || element == window) return element;
+
+ var methods = Object.clone(Methods),
+ tagName = element.tagName, property, value;
+
+ // extend methods for specific tags
+ if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
+
+ for (property in methods) {
+ value = methods[property];
+ if (Object.isFunction(value) && !(property in element))
+ element[property] = value.methodize();
+ }
+
+ element._extendedByPrototype = Prototype.emptyFunction;
+ return element;
+
+ }, {
+ refresh: function() {
+ // extend methods for all tags (Safari doesn't need this)
+ if (!Prototype.BrowserFeatures.ElementExtensions) {
+ Object.extend(Methods, Element.Methods);
+ Object.extend(Methods, Element.Methods.Simulated);
+ }
+ }
+ });
+
+ extend.refresh();
+ return extend;
+})();
+
+Element.hasAttribute = function(element, attribute) {
+ if (element.hasAttribute) return element.hasAttribute(attribute);
+ return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+ var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+ if (!methods) {
+ Object.extend(Form, Form.Methods);
+ Object.extend(Form.Element, Form.Element.Methods);
+ Object.extend(Element.Methods.ByTag, {
+ "FORM": Object.clone(Form.Methods),
+ "INPUT": Object.clone(Form.Element.Methods),
+ "SELECT": Object.clone(Form.Element.Methods),
+ "TEXTAREA": Object.clone(Form.Element.Methods)
+ });
+ }
+
+ if (arguments.length == 2) {
+ var tagName = methods;
+ methods = arguments[1];
+ }
+
+ if (!tagName) Object.extend(Element.Methods, methods || { });
+ else {
+ if (Object.isArray(tagName)) tagName.each(extend);
+ else extend(tagName);
+ }
+
+ function extend(tagName) {
+ tagName = tagName.toUpperCase();
+ if (!Element.Methods.ByTag[tagName])
+ Element.Methods.ByTag[tagName] = { };
+ Object.extend(Element.Methods.ByTag[tagName], methods);
+ }
+
+ function copy(methods, destination, onlyIfAbsent) {
+ onlyIfAbsent = onlyIfAbsent || false;
+ for (var property in methods) {
+ var value = methods[property];
+ if (!Object.isFunction(value)) continue;
+ if (!onlyIfAbsent || !(property in destination))
+ destination[property] = value.methodize();
+ }
+ }
+
+ function findDOMClass(tagName) {
+ var klass;
+ var trans = {
+ "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+ "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+ "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+ "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+ "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+ "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+ "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+ "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+ "FrameSet", "IFRAME": "IFrame"
+ };
+ if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName.capitalize() + 'Element';
+ if (window[klass]) return window[klass];
+
+ window[klass] = { };
+ window[klass].prototype = document.createElement(tagName).__proto__;
+ return window[klass];
+ }
+
+ if (F.ElementExtensions) {
+ copy(Element.Methods, HTMLElement.prototype);
+ copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+ }
+
+ if (F.SpecificElementExtensions) {
+ for (var tag in Element.Methods.ByTag) {
+ var klass = findDOMClass(tag);
+ if (Object.isUndefined(klass)) continue;
+ copy(T[tag], klass.prototype);
+ }
+ }
+
+ Object.extend(Element, Element.Methods);
+ delete Element.ByTag;
+
+ if (Element.extend.refresh) Element.extend.refresh();
+ Element.cache = { };
+};
+
+document.viewport = {
+ getDimensions: function() {
+ var dimensions = { };
+ var B = Prototype.Browser;
+ $w('width height').each(function(d) {
+ var D = d.capitalize();
+ dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] :
+ (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D];
+ });
+ return dimensions;
+ },
+
+ getWidth: function() {
+ return this.getDimensions().width;
+ },
+
+ getHeight: function() {
+ return this.getDimensions().height;
+ },
+
+ getScrollOffsets: function() {
+ return Element._returnOffset(
+ window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
+ window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
+ }
+};
+/* Portions of the Selector class are derived from Jack Slocum’s DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license. Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create({
+ initialize: function(expression) {
+ this.expression = expression.strip();
+ this.compileMatcher();
+ },
+
+ shouldUseXPath: function() {
+ if (!Prototype.BrowserFeatures.XPath) return false;
+
+ var e = this.expression;
+
+ // Safari 3 chokes on :*-of-type and :empty
+ if (Prototype.Browser.WebKit &&
+ (e.include("-of-type") || e.include(":empty")))
+ return false;
+
+ // XPath can't do namespaced attributes, nor can it read
+ // the "checked" property from DOM nodes
+ if ((/(\[[\w-]*?:|:checked)/).test(this.expression))
+ return false;
+
+ return true;
+ },
+
+ compileMatcher: function() {
+ if (this.shouldUseXPath())
+ return this.compileXPathMatcher();
+
+ var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+ c = Selector.criteria, le, p, m;
+
+ if (Selector._cache[e]) {
+ this.matcher = Selector._cache[e];
+ return;
+ }
+
+ this.matcher = ["this.matcher = function(root) {",
+ "var r = root, h = Selector.handlers, c = false, n;"];
+
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
+ new Template(c[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.matcher.push("return h.unique(n);\n}");
+ eval(this.matcher.join('\n'));
+ Selector._cache[this.expression] = this.matcher;
+ },
+
+ compileXPathMatcher: function() {
+ var e = this.expression, ps = Selector.patterns,
+ x = Selector.xpath, le, m;
+
+ if (Selector._cache[e]) {
+ this.xpath = Selector._cache[e]; return;
+ }
+
+ this.matcher = ['.//*'];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ if (m = e.match(ps[i])) {
+ this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
+ new Template(x[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.xpath = this.matcher.join('');
+ Selector._cache[this.expression] = this.xpath;
+ },
+
+ findElements: function(root) {
+ root = root || document;
+ if (this.xpath) return document._getElementsByXPath(this.xpath, root);
+ return this.matcher(root);
+ },
+
+ match: function(element) {
+ this.tokens = [];
+
+ var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
+ var le, p, m;
+
+ while (e && le !== e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ // use the Selector.assertions methods unless the selector
+ // is too complex.
+ if (as[i]) {
+ this.tokens.push([i, Object.clone(m)]);
+ e = e.replace(m[0], '');
+ } else {
+ // reluctantly do a document-wide search
+ // and look for a match in the array
+ return this.findElements(document).include(element);
+ }
+ }
+ }
+ }
+
+ var match = true, name, matches;
+ for (var i = 0, token; token = this.tokens[i]; i++) {
+ name = token[0], matches = token[1];
+ if (!Selector.assertions[name](element, matches)) {
+ match = false; break;
+ }
+ }
+
+ return match;
+ },
+
+ toString: function() {
+ return this.expression;
+ },
+
+ inspect: function() {
+ return "#<Selector:" + this.expression.inspect() + ">";
+ }
+});
+
+Object.extend(Selector, {
+ _cache: { },
+
+ xpath: {
+ descendant: "//*",
+ child: "/*",
+ adjacent: "/following-sibling::*[1]",
+ laterSibling: '/following-sibling::*',
+ tagName: function(m) {
+ if (m[1] == '*') return '';
+ return "[local-name()='" + m[1].toLowerCase() +
+ "' or local-name()='" + m[1].toUpperCase() + "']";
+ },
+ className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+ id: "[@id='#{1}']",
+ attrPresence: function(m) {
+ m[1] = m[1].toLowerCase();
+ return new Template("[@#{1}]").evaluate(m);
+ },
+ attr: function(m) {
+ m[1] = m[1].toLowerCase();
+ m[3] = m[5] || m[6];
+ return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+ },
+ pseudo: function(m) {
+ var h = Selector.xpath.pseudos[m[1]];
+ if (!h) return '';
+ if (Object.isFunction(h)) return h(m);
+ return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+ },
+ operators: {
+ '=': "[@#{1}='#{3}']",
+ '!=': "[@#{1}!='#{3}']",
+ '^=': "[starts-with(@#{1}, '#{3}')]",
+ '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+ '*=': "[contains(@#{1}, '#{3}')]",
+ '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+ '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+ },
+ pseudos: {
+ 'first-child': '[not(preceding-sibling::*)]',
+ 'last-child': '[not(following-sibling::*)]',
+ 'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
+ 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",
+ 'checked': "[@checked]",
+ 'disabled': "[@disabled]",
+ 'enabled': "[not(@disabled)]",
+ 'not': function(m) {
+ var e = m[6], p = Selector.patterns,
+ x = Selector.xpath, le, v;
+
+ var exclusion = [];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in p) {
+ if (m = e.match(p[i])) {
+ v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
+ exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+ return "[not(" + exclusion.join(" and ") + ")]";
+ },
+ 'nth-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+ },
+ 'nth-last-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+ },
+ 'nth-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("position() ", m);
+ },
+ 'nth-last-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+ },
+ 'first-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+ },
+ 'last-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+ },
+ 'only-of-type': function(m) {
+ var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+ },
+ nth: function(fragment, m) {
+ var mm, formula = m[6], predicate;
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ if (mm = formula.match(/^(\d+)$/)) // digit only
+ return '[' + fragment + "= " + mm[1] + ']';
+ if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (mm[1] == "-") mm[1] = -1;
+ var a = mm[1] ? Number(mm[1]) : 1;
+ var b = mm[2] ? Number(mm[2]) : 0;
+ predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+ "((#{fragment} - #{b}) div #{a} >= 0)]";
+ return new Template(predicate).evaluate({
+ fragment: fragment, a: a, b: b });
+ }
+ }
+ }
+ },
+
+ criteria: {
+ tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
+ className: 'n = h.className(n, r, "#{1}", c); c = false;',
+ id: 'n = h.id(n, r, "#{1}", c); c = false;',
+ attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
+ attr: function(m) {
+ m[3] = (m[5] || m[6]);
+ return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
+ },
+ pseudo: function(m) {
+ if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+ return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+ },
+ descendant: 'c = "descendant";',
+ child: 'c = "child";',
+ adjacent: 'c = "adjacent";',
+ laterSibling: 'c = "laterSibling";'
+ },
+
+ patterns: {
+ // combinators must be listed first
+ // (and descendant needs to be last combinator)
+ laterSibling: /^\s*~\s*/,
+ child: /^\s*>\s*/,
+ adjacent: /^\s*\+\s*/,
+ descendant: /^\s/,
+
+ // selectors follow
+ tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,
+ id: /^#([\w\-\*]+)(\b|$)/,
+ className: /^\.([\w\-\*]+)(\b|$)/,
+ pseudo:
+/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
+ attrPresence: /^\[([\w]+)\]/,
+ attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
+ },
+
+ // for Selector.match and Element#match
+ assertions: {
+ tagName: function(element, matches) {
+ return matches[1].toUpperCase() == element.tagName.toUpperCase();
+ },
+
+ className: function(element, matches) {
+ return Element.hasClassName(element, matches[1]);
+ },
+
+ id: function(element, matches) {
+ return element.id === matches[1];
+ },
+
+ attrPresence: function(element, matches) {
+ return Element.hasAttribute(element, matches[1]);
+ },
+
+ attr: function(element, matches) {
+ var nodeValue = Element.readAttribute(element, matches[1]);
+ return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
+ }
+ },
+
+ handlers: {
+ // UTILITY FUNCTIONS
+ // joins two collections
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ a.push(node);
+ return a;
+ },
+
+ // marks an array of nodes for counting
+ mark: function(nodes) {
+ var _true = Prototype.emptyFunction;
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._countedByPrototype = _true;
+ return nodes;
+ },
+
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._countedByPrototype = undefined;
+ return nodes;
+ },
+
+ // mark each child node with its position (for nth calls)
+ // "ofType" flag indicates whether we're indexing for nth-of-type
+ // rather than nth-child
+ index: function(parentNode, reverse, ofType) {
+ parentNode._countedByPrototype = Prototype.emptyFunction;
+ if (reverse) {
+ for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+ var node = nodes[i];
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+ }
+ } else {
+ for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+ if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
+ }
+ },
+
+ // filters out duplicates and extends all nodes
+ unique: function(nodes) {
+ if (nodes.length == 0) return nodes;
+ var results = [], n;
+ for (var i = 0, l = nodes.length; i < l; i++)
+ if (!(n = nodes[i])._countedByPrototype) {
+ n._countedByPrototype = Prototype.emptyFunction;
+ results.push(Element.extend(n));
+ }
+ return Selector.handlers.unmark(results);
+ },
+
+ // COMBINATOR FUNCTIONS
+ descendant: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName('*'));
+ return results;
+ },
+
+ child: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ for (var j = 0, child; child = node.childNodes[j]; j++)
+ if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+ }
+ return results;
+ },
+
+ adjacent: function(nodes) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ var next = this.nextElementSibling(node);
+ if (next) results.push(next);
+ }
+ return results;
+ },
+
+ laterSibling: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, Element.nextSiblings(node));
+ return results;
+ },
+
+ nextElementSibling: function(node) {
+ while (node = node.nextSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ previousElementSibling: function(node) {
+ while (node = node.previousSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ // TOKEN FUNCTIONS
+ tagName: function(nodes, root, tagName, combinator) {
+ var uTagName = tagName.toUpperCase();
+ var results = [], h = Selector.handlers;
+ if (nodes) {
+ if (combinator) {
+ // fastlane for ordinary descendant combinators
+ if (combinator == "descendant") {
+ for (var i = 0, node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName(tagName));
+ return results;
+ } else nodes = this[combinator](nodes);
+ if (tagName == "*") return nodes;
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.tagName.toUpperCase() === uTagName) results.push(node);
+ return results;
+ } else return root.getElementsByTagName(tagName);
+ },
+
+ id: function(nodes, root, id, combinator) {
+ var targetNode = $(id), h = Selector.handlers;
+ if (!targetNode) return [];
+ if (!nodes && root == document) return [targetNode];
+ if (nodes) {
+ if (combinator) {
+ if (combinator == 'child') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (targetNode.parentNode == node) return [targetNode];
+ } else if (combinator == 'descendant') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.descendantOf(targetNode, node)) return [targetNode];
+ } else if (combinator == 'adjacent') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Selector.handlers.previousElementSibling(targetNode) == node)
+ return [targetNode];
+ } else nodes = h[combinator](nodes);
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node == targetNode) return [targetNode];
+ return [];
+ }
+ return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+ },
+
+ className: function(nodes, root, className, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ return Selector.handlers.byClassName(nodes, root, className);
+ },
+
+ byClassName: function(nodes, root, className) {
+ if (!nodes) nodes = Selector.handlers.descendant([root]);
+ var needle = ' ' + className + ' ';
+ for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+ nodeClassName = node.className;
+ if (nodeClassName.length == 0) continue;
+ if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+ results.push(node);
+ }
+ return results;
+ },
+
+ attrPresence: function(nodes, root, attr, combinator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ var results = [];
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.hasAttribute(node, attr)) results.push(node);
+ return results;
+ },
+
+ attr: function(nodes, root, attr, value, operator, combinator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ var handler = Selector.operators[operator], results = [];
+ for (var i = 0, node; node = nodes[i]; i++) {
+ var nodeValue = Element.readAttribute(node, attr);
+ if (nodeValue === null) continue;
+ if (handler(nodeValue, value)) results.push(node);
+ }
+ return results;
+ },
+
+ pseudo: function(nodes, name, value, root, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ return Selector.pseudos[name](nodes, value, root);
+ }
+ },
+
+ pseudos: {
+ 'first-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.previousElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'last-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.nextElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'only-child': function(nodes, value, root) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+ results.push(node);
+ return results;
+ },
+ 'nth-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root);
+ },
+ 'nth-last-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true);
+ },
+ 'nth-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, false, true);
+ },
+ 'nth-last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true, true);
+ },
+ 'first-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, false, true);
+ },
+ 'last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, true, true);
+ },
+ 'only-of-type': function(nodes, formula, root) {
+ var p = Selector.pseudos;
+ return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+ },
+
+ // handles the an+b logic
+ getIndices: function(a, b, total) {
+ if (a == 0) return b > 0 ? [b] : [];
+ return $R(1, total).inject([], function(memo, i) {
+ if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+ return memo;
+ });
+ },
+
+ // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
+ nth: function(nodes, formula, root, reverse, ofType) {
+ if (nodes.length == 0) return [];
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ var h = Selector.handlers, results = [], indexed = [], m;
+ h.mark(nodes);
+ for (var i = 0, node; node = nodes[i]; i++) {
+ if (!node.parentNode._countedByPrototype) {
+ h.index(node.parentNode, reverse, ofType);
+ indexed.push(node.parentNode);
+ }
+ }
+ if (formula.match(/^\d+$/)) { // just a number
+ formula = Number(formula);
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.nodeIndex == formula) results.push(node);
+ } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (m[1] == "-") m[1] = -1;
+ var a = m[1] ? Number(m[1]) : 1;
+ var b = m[2] ? Number(m[2]) : 0;
+ var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+ for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+ for (var j = 0; j < l; j++)
+ if (node.nodeIndex == indices[j]) results.push(node);
+ }
+ }
+ h.unmark(nodes);
+ h.unmark(indexed);
+ return results;
+ },
+
+ 'empty': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ // IE treats comments as element nodes
+ if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue;
+ results.push(node);
+ }
+ return results;
+ },
+
+ 'not': function(nodes, selector, root) {
+ var h = Selector.handlers, selectorType, m;
+ var exclusions = new Selector(selector).findElements(root);
+ h.mark(exclusions);
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node._countedByPrototype) results.push(node);
+ h.unmark(exclusions);
+ return results;
+ },
+
+ 'enabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node.disabled) results.push(node);
+ return results;
+ },
+
+ 'disabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.disabled) results.push(node);
+ return results;
+ },
+
+ 'checked': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.checked) results.push(node);
+ return results;
+ }
+ },
+
+ operators: {
+ '=': function(nv, v) { return nv == v; },
+ '!=': function(nv, v) { return nv != v; },
+ '^=': function(nv, v) { return nv.startsWith(v); },
+ '$=': function(nv, v) { return nv.endsWith(v); },
+ '*=': function(nv, v) { return nv.include(v); },
+ '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+ '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
+ },
+
+ split: function(expression) {
+ var expressions = [];
+ expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+ expressions.push(m[1].strip());
+ });
+ return expressions;
+ },
+
+ matchElements: function(elements, expression) {
+ var matches = $$(expression), h = Selector.handlers;
+ h.mark(matches);
+ for (var i = 0, results = [], element; element = elements[i]; i++)
+ if (element._countedByPrototype) results.push(element);
+ h.unmark(matches);
+ return results;
+ },
+
+ findElement: function(elements, expression, index) {
+ if (Object.isNumber(expression)) {
+ index = expression; expression = false;
+ }
+ return Selector.matchElements(elements, expression || '*')[index || 0];
+ },
+
+ findChildElements: function(element, expressions) {
+ expressions = Selector.split(expressions.join(','));
+ var results = [], h = Selector.handlers;
+ for (var i = 0, l = expressions.length, selector; i < l; i++) {
+ selector = new Selector(expressions[i].strip());
+ h.concat(results, selector.findElements(element));
+ }
+ return (l > 1) ? h.unique(results) : results;
+ }
+});
+
+if (Prototype.Browser.IE) {
+ Object.extend(Selector.handlers, {
+ // IE returns comment nodes on getElementsByTagName("*").
+ // Filter them out.
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ if (node.tagName !== "!") a.push(node);
+ return a;
+ },
+
+ // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node.removeAttribute('_countedByPrototype');
+ return nodes;
+ }
+ });
+}
+
+function $$() {
+ return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+ reset: function(form) {
+ $(form).reset();
+ return form;
+ },
+
+ serializeElements: function(elements, options) {
+ if (typeof options != 'object') options = { hash: !!options };
+ else if (Object.isUndefined(options.hash)) options.hash = true;
+ var key, value, submitted = false, submit = options.submit;
+
+ var data = elements.inject({ }, function(result, element) {
+ if (!element.disabled && element.name) {
+ key = element.name; value = $(element).getValue();
+ if (value != null && (element.type != 'submit' || (!submitted &&
+ submit !== false && (!submit || key == submit) && (submitted = true)))) {
+ if (key in result) {
+ // a key is already present; construct an array of values
+ if (!Object.isArray(result[key])) result[key] = [result[key]];
+ result[key].push(value);
+ }
+ else result[key] = value;
+ }
+ }
+ return result;
+ });
+
+ return options.hash ? data : Object.toQueryString(data);
+ }
+};
+
+Form.Methods = {
+ serialize: function(form, options) {
+ return Form.serializeElements(Form.getElements(form), options);
+ },
+
+ getElements: function(form) {
+ return $A($(form).getElementsByTagName('*')).inject([],
+ function(elements, child) {
+ if (Form.Element.Serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ }
+ );
+ },
+
+ getInputs: function(form, typeName, name) {
+ form = $(form);
+ var inputs = form.getElementsByTagName('input');
+
+ if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+ for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+ var input = inputs[i];
+ if ((typeName && input.type != typeName) || (name && input.name != name))
+ continue;
+ matchingInputs.push(Element.extend(input));
+ }
+
+ return matchingInputs;
+ },
+
+ disable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('disable');
+ return form;
+ },
+
+ enable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('enable');
+ return form;
+ },
+
+ findFirstElement: function(form) {
+ var elements = $(form).getElements().findAll(function(element) {
+ return 'hidden' != element.type && !element.disabled;
+ });
+ var firstByIndex = elements.findAll(function(element) {
+ return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
+ }).sortBy(function(element) { return element.tabIndex }).first();
+
+ return firstByIndex ? firstByIndex : elements.find(function(element) {
+ return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+ });
+ },
+
+ focusFirstElement: function(form) {
+ form = $(form);
+ form.findFirstElement().activate();
+ return form;
+ },
+
+ request: function(form, options) {
+ form = $(form), options = Object.clone(options || { });
+
+ var params = options.parameters, action = form.readAttribute('action') || '';
+ if (action.blank()) action = window.location.href;
+ options.parameters = form.serialize(true);
+
+ if (params) {
+ if (Object.isString(params)) params = params.toQueryParams();
+ Object.extend(options.parameters, params);
+ }
+
+ if (form.hasAttribute('method') && !options.method)
+ options.method = form.method;
+
+ return new Ajax.Request(action, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+ focus: function(element) {
+ $(element).focus();
+ return element;
+ },
+
+ select: function(element) {
+ $(element).select();
+ return element;
+ }
+};
+
+Form.Element.Methods = {
+ serialize: function(element) {
+ element = $(element);
+ if (!element.disabled && element.name) {
+ var value = element.getValue();
+ if (value != undefined) {
+ var pair = { };
+ pair[element.name] = value;
+ return Object.toQueryString(pair);
+ }
+ }
+ return '';
+ },
+
+ getValue: function(element) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ return Form.Element.Serializers[method](element);
+ },
+
+ setValue: function(element, value) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ Form.Element.Serializers[method](element, value);
+ return element;
+ },
+
+ clear: function(element) {
+ $(element).value = '';
+ return element;
+ },
+
+ present: function(element) {
+ return $(element).value != '';
+ },
+
+ activate: function(element) {
+ element = $(element);
+ try {
+ element.focus();
+ if (element.select && (element.tagName.toLowerCase() != 'input' ||
+ !['button', 'reset', 'submit'].include(element.type)))
+ element.select();
+ } catch (e) { }
+ return element;
+ },
+
+ disable: function(element) {
+ element = $(element);
+ element.blur();
+ element.disabled = true;
+ return element;
+ },
+
+ enable: function(element) {
+ element = $(element);
+ element.disabled = false;
+ return element;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+ input: function(element, value) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ return Form.Element.Serializers.inputSelector(element, value);
+ default:
+ return Form.Element.Serializers.textarea(element, value);
+ }
+ },
+
+ inputSelector: function(element, value) {
+ if (Object.isUndefined(value)) return element.checked ? element.value : null;
+ else element.checked = !!value;
+ },
+
+ textarea: function(element, value) {
+ if (Object.isUndefined(value)) return element.value;
+ else element.value = value;
+ },
+
+ select: function(element, index) {
+ if (Object.isUndefined(index))
+ return this[element.type == 'select-one' ?
+ 'selectOne' : 'selectMany'](element);
+ else {
+ var opt, value, single = !Object.isArray(index);
+ for (var i = 0, length = element.length; i < length; i++) {
+ opt = element.options[i];
+ value = this.optionValue(opt);
+ if (single) {
+ if (value == index) {
+ opt.selected = true;
+ return;
+ }
+ }
+ else opt.selected = index.include(value);
+ }
+ }
+ },
+
+ selectOne: function(element) {
+ var index = element.selectedIndex;
+ return index >= 0 ? this.optionValue(element.options[index]) : null;
+ },
+
+ selectMany: function(element) {
+ var values, length = element.length;
+ if (!length) return null;
+
+ for (var i = 0, values = []; i < length; i++) {
+ var opt = element.options[i];
+ if (opt.selected) values.push(this.optionValue(opt));
+ }
+ return values;
+ },
+
+ optionValue: function(opt) {
+ // extend element because hasAttribute may not be native
+ return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
+ initialize: function($super, element, frequency, callback) {
+ $super(callback, frequency);
+ this.element = $(element);
+ this.lastValue = this.getValue();
+ },
+
+ execute: function() {
+ var value = this.getValue();
+ if (Object.isString(this.lastValue) && Object.isString(value) ?
+ this.lastValue != value : String(this.lastValue) != String(value)) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ }
+});
+
+Form.Element.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = Class.create({
+ initialize: function(element, callback) {
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ if (this.element.tagName.toLowerCase() == 'form')
+ this.registerFormCallbacks();
+ else
+ this.registerCallback(this.element);
+ },
+
+ onElementEvent: function() {
+ var value = this.getValue();
+ if (this.lastValue != value) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ },
+
+ registerFormCallbacks: function() {
+ Form.getElements(this.element).each(this.registerCallback, this);
+ },
+
+ registerCallback: function(element) {
+ if (element.type) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ Event.observe(element, 'click', this.onElementEvent.bind(this));
+ break;
+ default:
+ Event.observe(element, 'change', this.onElementEvent.bind(this));
+ break;
+ }
+ }
+ }
+});
+
+Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+if (!window.Event) var Event = { };
+
+Object.extend(Event, {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+ KEY_INSERT: 45,
+
+ cache: { },
+
+ relatedTarget: function(event) {
+ var element;
+ switch(event.type) {
+ case 'mouseover': element = event.fromElement; break;
+ case 'mouseout': element = event.toElement; break;
+ default: return null;
+ }
+ return Element.extend(element);
+ }
+});
+
+Event.Methods = (function() {
+ var isButton;
+
+ if (Prototype.Browser.IE) {
+ var buttonMap = { 0: 1, 1: 4, 2: 2 };
+ isButton = function(event, code) {
+ return event.button == buttonMap[code];
+ };
+
+ } else if (Prototype.Browser.WebKit) {
+ isButton = function(event, code) {
+ switch (code) {
+ case 0: return event.which == 1 && !event.metaKey;
+ case 1: return event.which == 1 && event.metaKey;
+ default: return false;
+ }
+ };
+
+ } else {
+ isButton = function(event, code) {
+ return event.which ? (event.which === code + 1) : (event.button === code);
+ };
+ }
+
+ return {
+ isLeftClick: function(event) { return isButton(event, 0) },
+ isMiddleClick: function(event) { return isButton(event, 1) },
+ isRightClick: function(event) { return isButton(event, 2) },
+
+ element: function(event) {
+ var node = Event.extend(event).target;
+ return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node);
+ },
+
+ findElement: function(event, expression) {
+ var element = Event.element(event);
+ if (!expression) return element;
+ var elements = [element].concat(element.ancestors());
+ return Selector.findElement(elements, expression, 0);
+ },
+
+ pointer: function(event) {
+ return {
+ x: event.pageX || (event.clientX +
+ (document.documentElement.scrollLeft || document.body.scrollLeft)),
+ y: event.pageY || (event.clientY +
+ (document.documentElement.scrollTop || document.body.scrollTop))
+ };
+ },
+
+ pointerX: function(event) { return Event.pointer(event).x },
+ pointerY: function(event) { return Event.pointer(event).y },
+
+ stop: function(event) {
+ Event.extend(event);
+ event.preventDefault();
+ event.stopPropagation();
+ event.stopped = true;
+ }
+ };
+})();
+
+Event.extend = (function() {
+ var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
+ m[name] = Event.Methods[name].methodize();
+ return m;
+ });
+
+ if (Prototype.Browser.IE) {
+ Object.extend(methods, {
+ stopPropagation: function() { this.cancelBubble = true },
+ preventDefault: function() { this.returnValue = false },
+ inspect: function() { return "[object Event]" }
+ });
+
+ return function(event) {
+ if (!event) return false;
+ if (event._extendedByPrototype) return event;
+
+ event._extendedByPrototype = Prototype.emptyFunction;
+ var pointer = Event.pointer(event);
+ Object.extend(event, {
+ target: event.srcElement,
+ relatedTarget: Event.relatedTarget(event),
+ pageX: pointer.x,
+ pageY: pointer.y
+ });
+ return Object.extend(event, methods);
+ };
+
+ } else {
+ Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__;
+ Object.extend(Event.prototype, methods);
+ return Prototype.K;
+ }
+})();
+
+Object.extend(Event, (function() {
+ var cache = Event.cache;
+
+ function getEventID(element) {
+ if (element._prototypeEventID) return element._prototypeEventID[0];
+ arguments.callee.id = arguments.callee.id || 1;
+ return element._prototypeEventID = [++arguments.callee.id];
+ }
+
+ function getDOMEventName(eventName) {
+ if (eventName && eventName.include(':')) return "dataavailable";
+ return eventName;
+ }
+
+ function getCacheForID(id) {
+ return cache[id] = cache[id] || { };
+ }
+
+ function getWrappersForEventName(id, eventName) {
+ var c = getCacheForID(id);
+ return c[eventName] = c[eventName] || [];
+ }
+
+ function createWrapper(element, eventName, handler) {
+ var id = getEventID(element);
+ var c = getWrappersForEventName(id, eventName);
+ if (c.pluck("handler").include(handler)) return false;
+
+ var wrapper = function(event) {
+ if (!Event || !Event.extend ||
+ (event.eventName && event.eventName != eventName))
+ return false;
+
+ Event.extend(event);
+ handler.call(element, event);
+ };
+
+ wrapper.handler = handler;
+ c.push(wrapper);
+ return wrapper;
+ }
+
+ function findWrapper(id, eventName, handler) {
+ var c = getWrappersForEventName(id, eventName);
+ return c.find(function(wrapper) { return wrapper.handler == handler });
+ }
+
+ function destroyWrapper(id, eventName, handler) {
+ var c = getCacheForID(id);
+ if (!c[eventName]) return false;
+ c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
+ }
+
+ function destroyCache() {
+ for (var id in cache)
+ for (var eventName in cache[id])
+ cache[id][eventName] = null;
+ }
+
+ if (window.attachEvent) {
+ window.attachEvent("onunload", destroyCache);
+ }
+
+ return {
+ observe: function(element, eventName, handler) {
+ element = $(element);
+ var name = getDOMEventName(eventName);
+
+ var wrapper = createWrapper(element, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.addEventListener) {
+ element.addEventListener(name, wrapper, false);
+ } else {
+ element.attachEvent("on" + name, wrapper);
+ }
+
+ return element;
+ },
+
+ stopObserving: function(element, eventName, handler) {
+ element = $(element);
+ var id = getEventID(element), name = getDOMEventName(eventName);
+
+ if (!handler && eventName) {
+ getWrappersForEventName(id, eventName).each(function(wrapper) {
+ element.stopObserving(eventName, wrapper.handler);
+ });
+ return element;
+
+ } else if (!eventName) {
+ Object.keys(getCacheForID(id)).each(function(eventName) {
+ element.stopObserving(eventName);
+ });
+ return element;
+ }
+
+ var wrapper = findWrapper(id, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.removeEventListener) {
+ element.removeEventListener(name, wrapper, false);
+ } else {
+ element.detachEvent("on" + name, wrapper);
+ }
+
+ destroyWrapper(id, eventName, handler);
+
+ return element;
+ },
+
+ fire: function(element, eventName, memo) {
+ element = $(element);
+ if (element == document && document.createEvent && !element.dispatchEvent)
+ element = document.documentElement;
+
+ var event;
+ if (document.createEvent) {
+ event = document.createEvent("HTMLEvents");
+ event.initEvent("dataavailable", true, true);
+ } else {
+ event = document.createEventObject();
+ event.eventType = "ondataavailable";
+ }
+
+ event.eventName = eventName;
+ event.memo = memo || { };
+
+ if (document.createEvent) {
+ element.dispatchEvent(event);
+ } else {
+ element.fireEvent(event.eventType, event);
+ }
+
+ return Event.extend(event);
+ }
+ };
+})());
+
+Object.extend(Event, Event.Methods);
+
+Element.addMethods({
+ fire: Event.fire,
+ observe: Event.observe,
+ stopObserving: Event.stopObserving
+});
+
+Object.extend(document, {
+ fire: Element.Methods.fire.methodize(),
+ observe: Element.Methods.observe.methodize(),
+ stopObserving: Element.Methods.stopObserving.methodize(),
+ loaded: false
+});
+
+(function() {
+ /* Support for the DOMContentLoaded event is based on work by Dan Webb,
+ Matthias Miller, Dean Edwards and John Resig. */
+
+ var timer;
+
+ function fireContentLoadedEvent() {
+ if (document.loaded) return;
+ if (timer) window.clearInterval(timer);
+ document.fire("dom:loaded");
+ document.loaded = true;
+ }
+
+ if (document.addEventListener) {
+ if (Prototype.Browser.WebKit) {
+ timer = window.setInterval(function() {
+ if (/loaded|complete/.test(document.readyState))
+ fireContentLoadedEvent();
+ }, 0);
+
+ Event.observe(window, "load", fireContentLoadedEvent);
+
+ } else {
+ document.addEventListener("DOMContentLoaded",
+ fireContentLoadedEvent, false);
+ }
+
+ } else {
+ document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
+ $("__onDOMContentLoaded").onreadystatechange = function() {
+ if (this.readyState == "complete") {
+ this.onreadystatechange = null;
+ fireContentLoadedEvent();
+ }
+ };
+ }
+})();
+/*------------------------------- DEPRECATED -------------------------------*/
+
+Hash.toQueryString = Object.toQueryString;
+
+var Toggle = { display: Element.toggle };
+
+Element.Methods.childOf = Element.Methods.descendantOf;
+
+var Insertion = {
+ Before: function(element, content) {
+ return Element.insert(element, {before:content});
+ },
+
+ Top: function(element, content) {
+ return Element.insert(element, {top:content});
+ },
+
+ Bottom: function(element, content) {
+ return Element.insert(element, {bottom:content});
+ },
+
+ After: function(element, content) {
+ return Element.insert(element, {after:content});
+ }
+};
+
+var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+// This should be moved to script.aculo.us; notice the deprecated methods
+// further below, that map to the newer Element methods.
+var Position = {
+ // set to true if needed, warning: firefox performance problems
+ // NOT neeeded for page scrolling, only if draggable contained in
+ // scrollable elements
+ includeScrollOffsets: false,
+
+ // must be called before calling withinIncludingScrolloffset, every time the
+ // page is scrolled
+ prepare: function() {
+ this.deltaX = window.pageXOffset
+ || document.documentElement.scrollLeft
+ || document.body.scrollLeft
+ || 0;
+ this.deltaY = window.pageYOffset
+ || document.documentElement.scrollTop
+ || document.body.scrollTop
+ || 0;
+ },
+
+ // caches x/y coordinate pair to use with overlap
+ within: function(element, x, y) {
+ if (this.includeScrollOffsets)
+ return this.withinIncludingScrolloffsets(element, x, y);
+ this.xcomp = x;
+ this.ycomp = y;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (y >= this.offset[1] &&
+ y < this.offset[1] + element.offsetHeight &&
+ x >= this.offset[0] &&
+ x < this.offset[0] + element.offsetWidth);
+ },
+
+ withinIncludingScrolloffsets: function(element, x, y) {
+ var offsetcache = Element.cumulativeScrollOffset(element);
+
+ this.xcomp = x + offsetcache[0] - this.deltaX;
+ this.ycomp = y + offsetcache[1] - this.deltaY;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (this.ycomp >= this.offset[1] &&
+ this.ycomp < this.offset[1] + element.offsetHeight &&
+ this.xcomp >= this.offset[0] &&
+ this.xcomp < this.offset[0] + element.offsetWidth);
+ },
+
+ // within must be called directly before
+ overlap: function(mode, element) {
+ if (!mode) return 0;
+ if (mode == 'vertical')
+ return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+ element.offsetHeight;
+ if (mode == 'horizontal')
+ return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+ element.offsetWidth;
+ },
+
+ // Deprecation layer -- use newer Element methods now (1.5.2).
+
+ cumulativeOffset: Element.Methods.cumulativeOffset,
+
+ positionedOffset: Element.Methods.positionedOffset,
+
+ absolutize: function(element) {
+ Position.prepare();
+ return Element.absolutize(element);
+ },
+
+ relativize: function(element) {
+ Position.prepare();
+ return Element.relativize(element);
+ },
+
+ realOffset: Element.Methods.cumulativeScrollOffset,
+
+ offsetParent: Element.Methods.getOffsetParent,
+
+ page: Element.Methods.viewportOffset,
+
+ clone: function(source, target, options) {
+ options = options || { };
+ return Element.clonePosition(target, source, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
+ function iter(name) {
+ return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
+ }
+
+ instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
+ function(element, className) {
+ className = className.toString().strip();
+ var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
+ return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
+ } : function(element, className) {
+ className = className.toString().strip();
+ var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
+ if (!classNames && !className) return elements;
+
+ var nodes = $(element).getElementsByTagName('*');
+ className = ' ' + className + ' ';
+
+ for (var i = 0, child, cn; child = nodes[i]; i++) {
+ if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
+ (classNames && classNames.all(function(name) {
+ return !name.toString().blank() && cn.include(' ' + name + ' ');
+ }))))
+ elements.push(Element.extend(child));
+ }
+ return elements;
+ };
+
+ return function(className, parentElement) {
+ return $(parentElement || document.body).getElementsByClassName(className);
+ };
+}(Element.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+ initialize: function(element) {
+ this.element = $(element);
+ },
+
+ _each: function(iterator) {
+ this.element.className.split(/\s+/).select(function(name) {
+ return name.length > 0;
+ })._each(iterator);
+ },
+
+ set: function(className) {
+ this.element.className = className;
+ },
+
+ add: function(classNameToAdd) {
+ if (this.include(classNameToAdd)) return;
+ this.set($A(this).concat(classNameToAdd).join(' '));
+ },
+
+ remove: function(classNameToRemove) {
+ if (!this.include(classNameToRemove)) return;
+ this.set($A(this).without(classNameToRemove).join(' '));
+ },
+
+ toString: function() {
+ return $A(this).join(' ');
+ }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+
+/*--------------------------------------------------------------------------*/
+
+Element.addMethods(); \ No newline at end of file
diff --git a/static/reset.css b/static/reset.css
new file mode 100644
index 0000000..9b6e153
--- /dev/null
+++ b/static/reset.css
@@ -0,0 +1,51 @@
+/* reset.css - to reset all browsers to a known default state
+ this stylesheet from
+ http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/ */
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-weight: inherit;
+ font-style: inherit;
+ font-size: 100%;
+ font-family: inherit;
+ vertical-align: baseline;
+}
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+body {
+ line-height: 1;
+ color: black;
+ background: white;
+}
+ol, ul {
+ list-style: none;
+}
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: separate;
+ border-spacing: 0;
+}
+caption, th, td {
+ text-align: left;
+ font-weight: normal;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: "";
+}
+blockquote, q {
+ quotes: "" "";
+}
+
diff --git a/static/tango/16x16/Makefile.am b/static/tango/16x16/Makefile.am
new file mode 100644
index 0000000..df51ba8
--- /dev/null
+++ b/static/tango/16x16/Makefile.am
@@ -0,0 +1,3 @@
+
+SUBDIRS = actions animations apps categories devices emblems emotes mimetypes places status
+
diff --git a/static/tango/16x16/Makefile.in b/static/tango/16x16/Makefile.in
new file mode 100644
index 0000000..9a3f334
--- /dev/null
+++ b/static/tango/16x16/Makefile.in
@@ -0,0 +1,509 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = actions animations apps categories devices emblems emotes mimetypes places status
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic ctags \
+ ctags-recursive distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+ tags-recursive uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/actions/Makefile.am b/static/tango/16x16/actions/Makefile.am
new file mode 100644
index 0000000..4fb6083
--- /dev/null
+++ b/static/tango/16x16/actions/Makefile.am
@@ -0,0 +1,82 @@
+
+size = 16x16
+context = actions
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ address-book-new.png \
+ appointment-new.png \
+ bookmark-new.png \
+ contact-new.png \
+ document-new.png \
+ document-open.png \
+ document-print.png \
+ document-print-preview.png \
+ document-properties.png \
+ document-save.png \
+ document-save-as.png \
+ edit-clear.png \
+ edit-copy.png \
+ edit-cut.png \
+ edit-delete.png \
+ edit-find.png \
+ edit-find-replace.png \
+ edit-paste.png \
+ edit-redo.png \
+ edit-select-all.png \
+ edit-undo.png \
+ folder-new.png \
+ format-indent-less.png \
+ format-indent-more.png \
+ format-justify-center.png \
+ format-justify-fill.png \
+ format-justify-left.png \
+ format-justify-right.png \
+ format-text-bold.png \
+ format-text-italic.png \
+ format-text-strikethrough.png \
+ format-text-underline.png \
+ go-bottom.png \
+ go-down.png \
+ go-first.png \
+ go-home.png \
+ go-jump.png \
+ go-last.png \
+ go-next.png \
+ go-previous.png \
+ go-top.png \
+ go-up.png \
+ list-add.png \
+ list-remove.png \
+ mail-forward.png \
+ mail-message-new.png \
+ mail-mark-junk.png \
+ mail-mark-not-junk.png \
+ mail-reply-all.png \
+ mail-reply-sender.png \
+ mail-send-receive.png \
+ media-eject.png \
+ media-playback-pause.png \
+ media-playback-start.png \
+ media-playback-stop.png \
+ media-record.png \
+ media-seek-backward.png \
+ media-seek-forward.png \
+ media-skip-backward.png \
+ media-skip-forward.png \
+ process-stop.png \
+ system-lock-screen.png \
+ system-log-out.png \
+ system-search.png \
+ system-shutdown.png \
+ tab-new.png \
+ view-fullscreen.png \
+ view-refresh.png \
+ window-new.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/actions/Makefile.in b/static/tango/16x16/actions/Makefile.in
new file mode 100644
index 0000000..3edae4d
--- /dev/null
+++ b/static/tango/16x16/actions/Makefile.in
@@ -0,0 +1,460 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/actions
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = actions
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ address-book-new.png \
+ appointment-new.png \
+ bookmark-new.png \
+ contact-new.png \
+ document-new.png \
+ document-open.png \
+ document-print.png \
+ document-print-preview.png \
+ document-properties.png \
+ document-save.png \
+ document-save-as.png \
+ edit-clear.png \
+ edit-copy.png \
+ edit-cut.png \
+ edit-delete.png \
+ edit-find.png \
+ edit-find-replace.png \
+ edit-paste.png \
+ edit-redo.png \
+ edit-select-all.png \
+ edit-undo.png \
+ folder-new.png \
+ format-indent-less.png \
+ format-indent-more.png \
+ format-justify-center.png \
+ format-justify-fill.png \
+ format-justify-left.png \
+ format-justify-right.png \
+ format-text-bold.png \
+ format-text-italic.png \
+ format-text-strikethrough.png \
+ format-text-underline.png \
+ go-bottom.png \
+ go-down.png \
+ go-first.png \
+ go-home.png \
+ go-jump.png \
+ go-last.png \
+ go-next.png \
+ go-previous.png \
+ go-top.png \
+ go-up.png \
+ list-add.png \
+ list-remove.png \
+ mail-forward.png \
+ mail-message-new.png \
+ mail-mark-junk.png \
+ mail-mark-not-junk.png \
+ mail-reply-all.png \
+ mail-reply-sender.png \
+ mail-send-receive.png \
+ media-eject.png \
+ media-playback-pause.png \
+ media-playback-start.png \
+ media-playback-stop.png \
+ media-record.png \
+ media-seek-backward.png \
+ media-seek-forward.png \
+ media-skip-backward.png \
+ media-skip-forward.png \
+ process-stop.png \
+ system-lock-screen.png \
+ system-log-out.png \
+ system-search.png \
+ system-shutdown.png \
+ tab-new.png \
+ view-fullscreen.png \
+ view-refresh.png \
+ window-new.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/actions/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/actions/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/actions/address-book-new.png b/static/tango/16x16/actions/address-book-new.png
new file mode 100644
index 0000000..2098cfd
--- /dev/null
+++ b/static/tango/16x16/actions/address-book-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/appointment-new.png b/static/tango/16x16/actions/appointment-new.png
new file mode 100644
index 0000000..18b7c67
--- /dev/null
+++ b/static/tango/16x16/actions/appointment-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/bookmark-new.png b/static/tango/16x16/actions/bookmark-new.png
new file mode 100644
index 0000000..6cf6443
--- /dev/null
+++ b/static/tango/16x16/actions/bookmark-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/contact-new.png b/static/tango/16x16/actions/contact-new.png
new file mode 100644
index 0000000..46573ff
--- /dev/null
+++ b/static/tango/16x16/actions/contact-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/document-new.png b/static/tango/16x16/actions/document-new.png
new file mode 100644
index 0000000..4c3efdd
--- /dev/null
+++ b/static/tango/16x16/actions/document-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/document-open.png b/static/tango/16x16/actions/document-open.png
new file mode 100644
index 0000000..69dd8d4
--- /dev/null
+++ b/static/tango/16x16/actions/document-open.png
Binary files differ
diff --git a/static/tango/16x16/actions/document-print-preview.png b/static/tango/16x16/actions/document-print-preview.png
new file mode 100644
index 0000000..ab92a30
--- /dev/null
+++ b/static/tango/16x16/actions/document-print-preview.png
Binary files differ
diff --git a/static/tango/16x16/actions/document-print.png b/static/tango/16x16/actions/document-print.png
new file mode 100644
index 0000000..35c37bd
--- /dev/null
+++ b/static/tango/16x16/actions/document-print.png
Binary files differ
diff --git a/static/tango/16x16/actions/document-properties.png b/static/tango/16x16/actions/document-properties.png
new file mode 100644
index 0000000..ab0e8ea
--- /dev/null
+++ b/static/tango/16x16/actions/document-properties.png
Binary files differ
diff --git a/static/tango/16x16/actions/document-save-as.png b/static/tango/16x16/actions/document-save-as.png
new file mode 100644
index 0000000..9bed143
--- /dev/null
+++ b/static/tango/16x16/actions/document-save-as.png
Binary files differ
diff --git a/static/tango/16x16/actions/document-save.png b/static/tango/16x16/actions/document-save.png
new file mode 100644
index 0000000..22ff495
--- /dev/null
+++ b/static/tango/16x16/actions/document-save.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-clear.png b/static/tango/16x16/actions/edit-clear.png
new file mode 100644
index 0000000..e6c8e8b
--- /dev/null
+++ b/static/tango/16x16/actions/edit-clear.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-copy.png b/static/tango/16x16/actions/edit-copy.png
new file mode 100644
index 0000000..8dd48c4
--- /dev/null
+++ b/static/tango/16x16/actions/edit-copy.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-cut.png b/static/tango/16x16/actions/edit-cut.png
new file mode 100644
index 0000000..dc9eb9a
--- /dev/null
+++ b/static/tango/16x16/actions/edit-cut.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-delete.png b/static/tango/16x16/actions/edit-delete.png
new file mode 100644
index 0000000..ea03150
--- /dev/null
+++ b/static/tango/16x16/actions/edit-delete.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-find-replace.png b/static/tango/16x16/actions/edit-find-replace.png
new file mode 100644
index 0000000..6edbef6
--- /dev/null
+++ b/static/tango/16x16/actions/edit-find-replace.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-find.png b/static/tango/16x16/actions/edit-find.png
new file mode 100644
index 0000000..d072d3c
--- /dev/null
+++ b/static/tango/16x16/actions/edit-find.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-paste.png b/static/tango/16x16/actions/edit-paste.png
new file mode 100644
index 0000000..24588a3
--- /dev/null
+++ b/static/tango/16x16/actions/edit-paste.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-redo.png b/static/tango/16x16/actions/edit-redo.png
new file mode 100644
index 0000000..c3b0df0
--- /dev/null
+++ b/static/tango/16x16/actions/edit-redo.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-select-all.png b/static/tango/16x16/actions/edit-select-all.png
new file mode 100644
index 0000000..f4b0b19
--- /dev/null
+++ b/static/tango/16x16/actions/edit-select-all.png
Binary files differ
diff --git a/static/tango/16x16/actions/edit-undo.png b/static/tango/16x16/actions/edit-undo.png
new file mode 100644
index 0000000..8b0fef9
--- /dev/null
+++ b/static/tango/16x16/actions/edit-undo.png
Binary files differ
diff --git a/static/tango/16x16/actions/folder-new.png b/static/tango/16x16/actions/folder-new.png
new file mode 100644
index 0000000..628f4d5
--- /dev/null
+++ b/static/tango/16x16/actions/folder-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-indent-less.png b/static/tango/16x16/actions/format-indent-less.png
new file mode 100644
index 0000000..1787a7f
--- /dev/null
+++ b/static/tango/16x16/actions/format-indent-less.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-indent-more.png b/static/tango/16x16/actions/format-indent-more.png
new file mode 100644
index 0000000..6bad6bb
--- /dev/null
+++ b/static/tango/16x16/actions/format-indent-more.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-justify-center.png b/static/tango/16x16/actions/format-justify-center.png
new file mode 100644
index 0000000..207dc4c
--- /dev/null
+++ b/static/tango/16x16/actions/format-justify-center.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-justify-fill.png b/static/tango/16x16/actions/format-justify-fill.png
new file mode 100644
index 0000000..663cbad
--- /dev/null
+++ b/static/tango/16x16/actions/format-justify-fill.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-justify-left.png b/static/tango/16x16/actions/format-justify-left.png
new file mode 100644
index 0000000..d9b40a7
--- /dev/null
+++ b/static/tango/16x16/actions/format-justify-left.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-justify-right.png b/static/tango/16x16/actions/format-justify-right.png
new file mode 100644
index 0000000..c301307
--- /dev/null
+++ b/static/tango/16x16/actions/format-justify-right.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-text-bold.png b/static/tango/16x16/actions/format-text-bold.png
new file mode 100644
index 0000000..c9cb630
--- /dev/null
+++ b/static/tango/16x16/actions/format-text-bold.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-text-italic.png b/static/tango/16x16/actions/format-text-italic.png
new file mode 100644
index 0000000..977ea82
--- /dev/null
+++ b/static/tango/16x16/actions/format-text-italic.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-text-strikethrough.png b/static/tango/16x16/actions/format-text-strikethrough.png
new file mode 100644
index 0000000..ccee76e
--- /dev/null
+++ b/static/tango/16x16/actions/format-text-strikethrough.png
Binary files differ
diff --git a/static/tango/16x16/actions/format-text-underline.png b/static/tango/16x16/actions/format-text-underline.png
new file mode 100644
index 0000000..0c48721
--- /dev/null
+++ b/static/tango/16x16/actions/format-text-underline.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-bottom.png b/static/tango/16x16/actions/go-bottom.png
new file mode 100644
index 0000000..2c5a803
--- /dev/null
+++ b/static/tango/16x16/actions/go-bottom.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-down.png b/static/tango/16x16/actions/go-down.png
new file mode 100644
index 0000000..3dd7fcc
--- /dev/null
+++ b/static/tango/16x16/actions/go-down.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-first.png b/static/tango/16x16/actions/go-first.png
new file mode 100644
index 0000000..9c15c09
--- /dev/null
+++ b/static/tango/16x16/actions/go-first.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-home.png b/static/tango/16x16/actions/go-home.png
new file mode 100644
index 0000000..a46fb22
--- /dev/null
+++ b/static/tango/16x16/actions/go-home.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-jump.png b/static/tango/16x16/actions/go-jump.png
new file mode 100644
index 0000000..1d218c3
--- /dev/null
+++ b/static/tango/16x16/actions/go-jump.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-last.png b/static/tango/16x16/actions/go-last.png
new file mode 100644
index 0000000..6e904ef
--- /dev/null
+++ b/static/tango/16x16/actions/go-last.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-next.png b/static/tango/16x16/actions/go-next.png
new file mode 100644
index 0000000..6ef8de7
--- /dev/null
+++ b/static/tango/16x16/actions/go-next.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-previous.png b/static/tango/16x16/actions/go-previous.png
new file mode 100644
index 0000000..659cd90
--- /dev/null
+++ b/static/tango/16x16/actions/go-previous.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-top.png b/static/tango/16x16/actions/go-top.png
new file mode 100644
index 0000000..70f2c99
--- /dev/null
+++ b/static/tango/16x16/actions/go-top.png
Binary files differ
diff --git a/static/tango/16x16/actions/go-up.png b/static/tango/16x16/actions/go-up.png
new file mode 100644
index 0000000..fa9a7d7
--- /dev/null
+++ b/static/tango/16x16/actions/go-up.png
Binary files differ
diff --git a/static/tango/16x16/actions/list-add.png b/static/tango/16x16/actions/list-add.png
new file mode 100644
index 0000000..1aa7f09
--- /dev/null
+++ b/static/tango/16x16/actions/list-add.png
Binary files differ
diff --git a/static/tango/16x16/actions/list-remove.png b/static/tango/16x16/actions/list-remove.png
new file mode 100644
index 0000000..00b654e
--- /dev/null
+++ b/static/tango/16x16/actions/list-remove.png
Binary files differ
diff --git a/static/tango/16x16/actions/mail-forward.png b/static/tango/16x16/actions/mail-forward.png
new file mode 100644
index 0000000..de0199b
--- /dev/null
+++ b/static/tango/16x16/actions/mail-forward.png
Binary files differ
diff --git a/static/tango/16x16/actions/mail-mark-junk.png b/static/tango/16x16/actions/mail-mark-junk.png
new file mode 100644
index 0000000..f12d452
--- /dev/null
+++ b/static/tango/16x16/actions/mail-mark-junk.png
Binary files differ
diff --git a/static/tango/16x16/actions/mail-mark-not-junk.png b/static/tango/16x16/actions/mail-mark-not-junk.png
new file mode 100644
index 0000000..87c425f
--- /dev/null
+++ b/static/tango/16x16/actions/mail-mark-not-junk.png
Binary files differ
diff --git a/static/tango/16x16/actions/mail-message-new.png b/static/tango/16x16/actions/mail-message-new.png
new file mode 100644
index 0000000..7c68cb8
--- /dev/null
+++ b/static/tango/16x16/actions/mail-message-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/mail-reply-all.png b/static/tango/16x16/actions/mail-reply-all.png
new file mode 100644
index 0000000..2017b0a
--- /dev/null
+++ b/static/tango/16x16/actions/mail-reply-all.png
Binary files differ
diff --git a/static/tango/16x16/actions/mail-reply-sender.png b/static/tango/16x16/actions/mail-reply-sender.png
new file mode 100644
index 0000000..a619741
--- /dev/null
+++ b/static/tango/16x16/actions/mail-reply-sender.png
Binary files differ
diff --git a/static/tango/16x16/actions/mail-send-receive.png b/static/tango/16x16/actions/mail-send-receive.png
new file mode 100644
index 0000000..3eb6a9c
--- /dev/null
+++ b/static/tango/16x16/actions/mail-send-receive.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-eject.png b/static/tango/16x16/actions/media-eject.png
new file mode 100644
index 0000000..2084067
--- /dev/null
+++ b/static/tango/16x16/actions/media-eject.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-playback-pause.png b/static/tango/16x16/actions/media-playback-pause.png
new file mode 100644
index 0000000..c8b4fe2
--- /dev/null
+++ b/static/tango/16x16/actions/media-playback-pause.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-playback-start.png b/static/tango/16x16/actions/media-playback-start.png
new file mode 100644
index 0000000..a7de0fe
--- /dev/null
+++ b/static/tango/16x16/actions/media-playback-start.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-playback-stop.png b/static/tango/16x16/actions/media-playback-stop.png
new file mode 100644
index 0000000..ede2815
--- /dev/null
+++ b/static/tango/16x16/actions/media-playback-stop.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-record.png b/static/tango/16x16/actions/media-record.png
new file mode 100644
index 0000000..2f66cde
--- /dev/null
+++ b/static/tango/16x16/actions/media-record.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-seek-backward.png b/static/tango/16x16/actions/media-seek-backward.png
new file mode 100644
index 0000000..ffcac31
--- /dev/null
+++ b/static/tango/16x16/actions/media-seek-backward.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-seek-forward.png b/static/tango/16x16/actions/media-seek-forward.png
new file mode 100644
index 0000000..4d7e2cd
--- /dev/null
+++ b/static/tango/16x16/actions/media-seek-forward.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-skip-backward.png b/static/tango/16x16/actions/media-skip-backward.png
new file mode 100644
index 0000000..94381f5
--- /dev/null
+++ b/static/tango/16x16/actions/media-skip-backward.png
Binary files differ
diff --git a/static/tango/16x16/actions/media-skip-forward.png b/static/tango/16x16/actions/media-skip-forward.png
new file mode 100644
index 0000000..758ec6f
--- /dev/null
+++ b/static/tango/16x16/actions/media-skip-forward.png
Binary files differ
diff --git a/static/tango/16x16/actions/process-stop.png b/static/tango/16x16/actions/process-stop.png
new file mode 100644
index 0000000..ab6808f
--- /dev/null
+++ b/static/tango/16x16/actions/process-stop.png
Binary files differ
diff --git a/static/tango/16x16/actions/system-lock-screen.png b/static/tango/16x16/actions/system-lock-screen.png
new file mode 100644
index 0000000..f7ea0cd
--- /dev/null
+++ b/static/tango/16x16/actions/system-lock-screen.png
Binary files differ
diff --git a/static/tango/16x16/actions/system-log-out.png b/static/tango/16x16/actions/system-log-out.png
new file mode 100644
index 0000000..0010931
--- /dev/null
+++ b/static/tango/16x16/actions/system-log-out.png
Binary files differ
diff --git a/static/tango/16x16/actions/system-search.png b/static/tango/16x16/actions/system-search.png
new file mode 100644
index 0000000..fd7f0b0
--- /dev/null
+++ b/static/tango/16x16/actions/system-search.png
Binary files differ
diff --git a/static/tango/16x16/actions/system-shutdown.png b/static/tango/16x16/actions/system-shutdown.png
new file mode 100644
index 0000000..afe62de
--- /dev/null
+++ b/static/tango/16x16/actions/system-shutdown.png
Binary files differ
diff --git a/static/tango/16x16/actions/tab-new.png b/static/tango/16x16/actions/tab-new.png
new file mode 100644
index 0000000..3e590f6
--- /dev/null
+++ b/static/tango/16x16/actions/tab-new.png
Binary files differ
diff --git a/static/tango/16x16/actions/view-fullscreen.png b/static/tango/16x16/actions/view-fullscreen.png
new file mode 100644
index 0000000..ffdabd4
--- /dev/null
+++ b/static/tango/16x16/actions/view-fullscreen.png
Binary files differ
diff --git a/static/tango/16x16/actions/view-refresh.png b/static/tango/16x16/actions/view-refresh.png
new file mode 100644
index 0000000..3fd71d6
--- /dev/null
+++ b/static/tango/16x16/actions/view-refresh.png
Binary files differ
diff --git a/static/tango/16x16/actions/window-new.png b/static/tango/16x16/actions/window-new.png
new file mode 100644
index 0000000..0e12ef9
--- /dev/null
+++ b/static/tango/16x16/actions/window-new.png
Binary files differ
diff --git a/static/tango/16x16/animations/Makefile.am b/static/tango/16x16/animations/Makefile.am
new file mode 100644
index 0000000..a376a4a
--- /dev/null
+++ b/static/tango/16x16/animations/Makefile.am
@@ -0,0 +1,14 @@
+
+size = 16x16
+context = animations
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ process-working.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/animations/Makefile.in b/static/tango/16x16/animations/Makefile.in
new file mode 100644
index 0000000..9563a21
--- /dev/null
+++ b/static/tango/16x16/animations/Makefile.in
@@ -0,0 +1,392 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/animations
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = animations
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ process-working.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/animations/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/animations/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/animations/process-working.png b/static/tango/16x16/animations/process-working.png
new file mode 100644
index 0000000..984bde4
--- /dev/null
+++ b/static/tango/16x16/animations/process-working.png
Binary files differ
diff --git a/static/tango/16x16/apps/Makefile.am b/static/tango/16x16/apps/Makefile.am
new file mode 100644
index 0000000..4116e37
--- /dev/null
+++ b/static/tango/16x16/apps/Makefile.am
@@ -0,0 +1,41 @@
+
+size = 16x16
+context = apps
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ accessories-calculator.png \
+ accessories-character-map.png \
+ accessories-text-editor.png \
+ help-browser.png \
+ internet-group-chat.png \
+ internet-mail.png \
+ internet-news-reader.png \
+ internet-web-browser.png \
+ office-calendar.png \
+ preferences-desktop-accessibility.png \
+ preferences-desktop-assistive-technology.png \
+ preferences-desktop-font.png \
+ preferences-desktop-keyboard-shortcuts.png \
+ preferences-desktop-locale.png \
+ preferences-desktop-multimedia.png \
+ preferences-desktop-remote-desktop.png \
+ preferences-desktop-screensaver.png \
+ preferences-desktop-theme.png \
+ preferences-desktop-wallpaper.png \
+ preferences-system-network-proxy.png \
+ preferences-system-session.png \
+ preferences-system-windows.png \
+ system-file-manager.png \
+ system-installer.png \
+ system-software-update.png \
+ system-users.png \
+ utilities-system-monitor.png \
+ utilities-terminal.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/apps/Makefile.in b/static/tango/16x16/apps/Makefile.in
new file mode 100644
index 0000000..6b0d433
--- /dev/null
+++ b/static/tango/16x16/apps/Makefile.in
@@ -0,0 +1,419 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/apps
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = apps
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ accessories-calculator.png \
+ accessories-character-map.png \
+ accessories-text-editor.png \
+ help-browser.png \
+ internet-group-chat.png \
+ internet-mail.png \
+ internet-news-reader.png \
+ internet-web-browser.png \
+ office-calendar.png \
+ preferences-desktop-accessibility.png \
+ preferences-desktop-assistive-technology.png \
+ preferences-desktop-font.png \
+ preferences-desktop-keyboard-shortcuts.png \
+ preferences-desktop-locale.png \
+ preferences-desktop-multimedia.png \
+ preferences-desktop-remote-desktop.png \
+ preferences-desktop-screensaver.png \
+ preferences-desktop-theme.png \
+ preferences-desktop-wallpaper.png \
+ preferences-system-network-proxy.png \
+ preferences-system-session.png \
+ preferences-system-windows.png \
+ system-file-manager.png \
+ system-installer.png \
+ system-software-update.png \
+ system-users.png \
+ utilities-system-monitor.png \
+ utilities-terminal.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/apps/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/apps/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/apps/accessories-calculator.png b/static/tango/16x16/apps/accessories-calculator.png
new file mode 100644
index 0000000..9248971
--- /dev/null
+++ b/static/tango/16x16/apps/accessories-calculator.png
Binary files differ
diff --git a/static/tango/16x16/apps/accessories-character-map.png b/static/tango/16x16/apps/accessories-character-map.png
new file mode 100644
index 0000000..5dd1124
--- /dev/null
+++ b/static/tango/16x16/apps/accessories-character-map.png
Binary files differ
diff --git a/static/tango/16x16/apps/accessories-text-editor.png b/static/tango/16x16/apps/accessories-text-editor.png
new file mode 100644
index 0000000..188e1c1
--- /dev/null
+++ b/static/tango/16x16/apps/accessories-text-editor.png
Binary files differ
diff --git a/static/tango/16x16/apps/help-browser.png b/static/tango/16x16/apps/help-browser.png
new file mode 100644
index 0000000..f25fc3f
--- /dev/null
+++ b/static/tango/16x16/apps/help-browser.png
Binary files differ
diff --git a/static/tango/16x16/apps/internet-group-chat.png b/static/tango/16x16/apps/internet-group-chat.png
new file mode 100644
index 0000000..f6e8325
--- /dev/null
+++ b/static/tango/16x16/apps/internet-group-chat.png
Binary files differ
diff --git a/static/tango/16x16/apps/internet-mail.png b/static/tango/16x16/apps/internet-mail.png
new file mode 100644
index 0000000..859251f
--- /dev/null
+++ b/static/tango/16x16/apps/internet-mail.png
Binary files differ
diff --git a/static/tango/16x16/apps/internet-news-reader.png b/static/tango/16x16/apps/internet-news-reader.png
new file mode 100644
index 0000000..a9850ee
--- /dev/null
+++ b/static/tango/16x16/apps/internet-news-reader.png
Binary files differ
diff --git a/static/tango/16x16/apps/internet-web-browser.png b/static/tango/16x16/apps/internet-web-browser.png
new file mode 100644
index 0000000..ac5957a
--- /dev/null
+++ b/static/tango/16x16/apps/internet-web-browser.png
Binary files differ
diff --git a/static/tango/16x16/apps/office-calendar.png b/static/tango/16x16/apps/office-calendar.png
new file mode 100644
index 0000000..106a592
--- /dev/null
+++ b/static/tango/16x16/apps/office-calendar.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-accessibility.png b/static/tango/16x16/apps/preferences-desktop-accessibility.png
new file mode 100644
index 0000000..b365c27
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-accessibility.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-assistive-technology.png b/static/tango/16x16/apps/preferences-desktop-assistive-technology.png
new file mode 100644
index 0000000..513d817
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-assistive-technology.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-font.png b/static/tango/16x16/apps/preferences-desktop-font.png
new file mode 100644
index 0000000..18a0149
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-font.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-keyboard-shortcuts.png b/static/tango/16x16/apps/preferences-desktop-keyboard-shortcuts.png
new file mode 100644
index 0000000..291dc1a
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-keyboard-shortcuts.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-locale.png b/static/tango/16x16/apps/preferences-desktop-locale.png
new file mode 100644
index 0000000..5ef73a6
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-locale.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-multimedia.png b/static/tango/16x16/apps/preferences-desktop-multimedia.png
new file mode 100644
index 0000000..2e5ba43
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-multimedia.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-remote-desktop.png b/static/tango/16x16/apps/preferences-desktop-remote-desktop.png
new file mode 100644
index 0000000..b790f63
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-remote-desktop.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-screensaver.png b/static/tango/16x16/apps/preferences-desktop-screensaver.png
new file mode 100644
index 0000000..dc297db
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-screensaver.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-theme.png b/static/tango/16x16/apps/preferences-desktop-theme.png
new file mode 100644
index 0000000..fbea772
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-theme.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-desktop-wallpaper.png b/static/tango/16x16/apps/preferences-desktop-wallpaper.png
new file mode 100644
index 0000000..e7cc834
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-desktop-wallpaper.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-system-network-proxy.png b/static/tango/16x16/apps/preferences-system-network-proxy.png
new file mode 100644
index 0000000..bdeb79d
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-system-network-proxy.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-system-session.png b/static/tango/16x16/apps/preferences-system-session.png
new file mode 100644
index 0000000..35f8b57
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-system-session.png
Binary files differ
diff --git a/static/tango/16x16/apps/preferences-system-windows.png b/static/tango/16x16/apps/preferences-system-windows.png
new file mode 100644
index 0000000..596caf9
--- /dev/null
+++ b/static/tango/16x16/apps/preferences-system-windows.png
Binary files differ
diff --git a/static/tango/16x16/apps/system-file-manager.png b/static/tango/16x16/apps/system-file-manager.png
new file mode 100644
index 0000000..60cade4
--- /dev/null
+++ b/static/tango/16x16/apps/system-file-manager.png
Binary files differ
diff --git a/static/tango/16x16/apps/system-installer.png b/static/tango/16x16/apps/system-installer.png
new file mode 100644
index 0000000..d16abcb
--- /dev/null
+++ b/static/tango/16x16/apps/system-installer.png
Binary files differ
diff --git a/static/tango/16x16/apps/system-software-update.png b/static/tango/16x16/apps/system-software-update.png
new file mode 100644
index 0000000..58f19c6
--- /dev/null
+++ b/static/tango/16x16/apps/system-software-update.png
Binary files differ
diff --git a/static/tango/16x16/apps/system-users.png b/static/tango/16x16/apps/system-users.png
new file mode 100644
index 0000000..9d2d500
--- /dev/null
+++ b/static/tango/16x16/apps/system-users.png
Binary files differ
diff --git a/static/tango/16x16/apps/utilities-system-monitor.png b/static/tango/16x16/apps/utilities-system-monitor.png
new file mode 100644
index 0000000..8734e77
--- /dev/null
+++ b/static/tango/16x16/apps/utilities-system-monitor.png
Binary files differ
diff --git a/static/tango/16x16/apps/utilities-terminal.png b/static/tango/16x16/apps/utilities-terminal.png
new file mode 100644
index 0000000..c5b797a
--- /dev/null
+++ b/static/tango/16x16/apps/utilities-terminal.png
Binary files differ
diff --git a/static/tango/16x16/categories/Makefile.am b/static/tango/16x16/categories/Makefile.am
new file mode 100644
index 0000000..0a0692e
--- /dev/null
+++ b/static/tango/16x16/categories/Makefile.am
@@ -0,0 +1,25 @@
+
+size = 16x16
+context = categories
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ applications-accessories.png \
+ applications-development.png \
+ applications-games.png \
+ applications-graphics.png \
+ applications-internet.png \
+ applications-multimedia.png \
+ applications-office.png \
+ applications-other.png \
+ applications-system.png \
+ preferences-desktop.png \
+ preferences-desktop-peripherals.png \
+ preferences-system.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/categories/Makefile.in b/static/tango/16x16/categories/Makefile.in
new file mode 100644
index 0000000..c8bac6b
--- /dev/null
+++ b/static/tango/16x16/categories/Makefile.in
@@ -0,0 +1,403 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/categories
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = categories
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ applications-accessories.png \
+ applications-development.png \
+ applications-games.png \
+ applications-graphics.png \
+ applications-internet.png \
+ applications-multimedia.png \
+ applications-office.png \
+ applications-other.png \
+ applications-system.png \
+ preferences-desktop.png \
+ preferences-desktop-peripherals.png \
+ preferences-system.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/categories/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/categories/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/categories/applications-accessories.png b/static/tango/16x16/categories/applications-accessories.png
new file mode 100644
index 0000000..c8d899c
--- /dev/null
+++ b/static/tango/16x16/categories/applications-accessories.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-development.png b/static/tango/16x16/categories/applications-development.png
new file mode 100644
index 0000000..4375227
--- /dev/null
+++ b/static/tango/16x16/categories/applications-development.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-games.png b/static/tango/16x16/categories/applications-games.png
new file mode 100644
index 0000000..4ba874b
--- /dev/null
+++ b/static/tango/16x16/categories/applications-games.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-graphics.png b/static/tango/16x16/categories/applications-graphics.png
new file mode 100644
index 0000000..4bb955f
--- /dev/null
+++ b/static/tango/16x16/categories/applications-graphics.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-internet.png b/static/tango/16x16/categories/applications-internet.png
new file mode 100644
index 0000000..a588968
--- /dev/null
+++ b/static/tango/16x16/categories/applications-internet.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-multimedia.png b/static/tango/16x16/categories/applications-multimedia.png
new file mode 100644
index 0000000..3e4ced5
--- /dev/null
+++ b/static/tango/16x16/categories/applications-multimedia.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-office.png b/static/tango/16x16/categories/applications-office.png
new file mode 100644
index 0000000..f9b3bb9
--- /dev/null
+++ b/static/tango/16x16/categories/applications-office.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-other.png b/static/tango/16x16/categories/applications-other.png
new file mode 100644
index 0000000..0d49f9d
--- /dev/null
+++ b/static/tango/16x16/categories/applications-other.png
Binary files differ
diff --git a/static/tango/16x16/categories/applications-system.png b/static/tango/16x16/categories/applications-system.png
new file mode 100644
index 0000000..d90ab66
--- /dev/null
+++ b/static/tango/16x16/categories/applications-system.png
Binary files differ
diff --git a/static/tango/16x16/categories/preferences-desktop-peripherals.png b/static/tango/16x16/categories/preferences-desktop-peripherals.png
new file mode 100644
index 0000000..2a63cee
--- /dev/null
+++ b/static/tango/16x16/categories/preferences-desktop-peripherals.png
Binary files differ
diff --git a/static/tango/16x16/categories/preferences-desktop.png b/static/tango/16x16/categories/preferences-desktop.png
new file mode 100644
index 0000000..68f916c
--- /dev/null
+++ b/static/tango/16x16/categories/preferences-desktop.png
Binary files differ
diff --git a/static/tango/16x16/categories/preferences-system.png b/static/tango/16x16/categories/preferences-system.png
new file mode 100644
index 0000000..9460dfc
--- /dev/null
+++ b/static/tango/16x16/categories/preferences-system.png
Binary files differ
diff --git a/static/tango/16x16/devices/Makefile.am b/static/tango/16x16/devices/Makefile.am
new file mode 100644
index 0000000..25231e6
--- /dev/null
+++ b/static/tango/16x16/devices/Makefile.am
@@ -0,0 +1,33 @@
+
+size = 16x16
+context = devices
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ audio-card.png \
+ audio-input-microphone.png \
+ battery.png \
+ camera-photo.png \
+ camera-video.png \
+ computer.png \
+ drive-optical.png \
+ drive-harddisk.png \
+ drive-removable-media.png \
+ input-gaming.png \
+ input-keyboard.png \
+ input-mouse.png \
+ media-optical.png \
+ media-floppy.png \
+ media-flash.png \
+ multimedia-player.png \
+ network-wired.png \
+ network-wireless.png \
+ printer.png \
+ video-display.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/devices/Makefile.in b/static/tango/16x16/devices/Makefile.in
new file mode 100644
index 0000000..76f21b2
--- /dev/null
+++ b/static/tango/16x16/devices/Makefile.in
@@ -0,0 +1,411 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/devices
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = devices
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ audio-card.png \
+ audio-input-microphone.png \
+ battery.png \
+ camera-photo.png \
+ camera-video.png \
+ computer.png \
+ drive-optical.png \
+ drive-harddisk.png \
+ drive-removable-media.png \
+ input-gaming.png \
+ input-keyboard.png \
+ input-mouse.png \
+ media-optical.png \
+ media-floppy.png \
+ media-flash.png \
+ multimedia-player.png \
+ network-wired.png \
+ network-wireless.png \
+ printer.png \
+ video-display.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/devices/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/devices/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/devices/audio-card.png b/static/tango/16x16/devices/audio-card.png
new file mode 100644
index 0000000..aaa7907
--- /dev/null
+++ b/static/tango/16x16/devices/audio-card.png
Binary files differ
diff --git a/static/tango/16x16/devices/audio-input-microphone.png b/static/tango/16x16/devices/audio-input-microphone.png
new file mode 100644
index 0000000..53a0393
--- /dev/null
+++ b/static/tango/16x16/devices/audio-input-microphone.png
Binary files differ
diff --git a/static/tango/16x16/devices/battery.png b/static/tango/16x16/devices/battery.png
new file mode 100644
index 0000000..8684e2a
--- /dev/null
+++ b/static/tango/16x16/devices/battery.png
Binary files differ
diff --git a/static/tango/16x16/devices/camera-photo.png b/static/tango/16x16/devices/camera-photo.png
new file mode 100644
index 0000000..1e8e886
--- /dev/null
+++ b/static/tango/16x16/devices/camera-photo.png
Binary files differ
diff --git a/static/tango/16x16/devices/camera-video.png b/static/tango/16x16/devices/camera-video.png
new file mode 100644
index 0000000..98fc211
--- /dev/null
+++ b/static/tango/16x16/devices/camera-video.png
Binary files differ
diff --git a/static/tango/16x16/devices/computer.png b/static/tango/16x16/devices/computer.png
new file mode 100644
index 0000000..c9cc93e
--- /dev/null
+++ b/static/tango/16x16/devices/computer.png
Binary files differ
diff --git a/static/tango/16x16/devices/drive-harddisk.png b/static/tango/16x16/devices/drive-harddisk.png
new file mode 100644
index 0000000..5c3b858
--- /dev/null
+++ b/static/tango/16x16/devices/drive-harddisk.png
Binary files differ
diff --git a/static/tango/16x16/devices/drive-optical.png b/static/tango/16x16/devices/drive-optical.png
new file mode 100644
index 0000000..4ced6fe
--- /dev/null
+++ b/static/tango/16x16/devices/drive-optical.png
Binary files differ
diff --git a/static/tango/16x16/devices/drive-removable-media.png b/static/tango/16x16/devices/drive-removable-media.png
new file mode 100644
index 0000000..9153898
--- /dev/null
+++ b/static/tango/16x16/devices/drive-removable-media.png
Binary files differ
diff --git a/static/tango/16x16/devices/input-gaming.png b/static/tango/16x16/devices/input-gaming.png
new file mode 100644
index 0000000..9d040ee
--- /dev/null
+++ b/static/tango/16x16/devices/input-gaming.png
Binary files differ
diff --git a/static/tango/16x16/devices/input-keyboard.png b/static/tango/16x16/devices/input-keyboard.png
new file mode 100644
index 0000000..29cd639
--- /dev/null
+++ b/static/tango/16x16/devices/input-keyboard.png
Binary files differ
diff --git a/static/tango/16x16/devices/input-mouse.png b/static/tango/16x16/devices/input-mouse.png
new file mode 100644
index 0000000..eeda4db
--- /dev/null
+++ b/static/tango/16x16/devices/input-mouse.png
Binary files differ
diff --git a/static/tango/16x16/devices/media-flash.png b/static/tango/16x16/devices/media-flash.png
new file mode 100644
index 0000000..bef542a
--- /dev/null
+++ b/static/tango/16x16/devices/media-flash.png
Binary files differ
diff --git a/static/tango/16x16/devices/media-floppy.png b/static/tango/16x16/devices/media-floppy.png
new file mode 100644
index 0000000..f1d7a19
--- /dev/null
+++ b/static/tango/16x16/devices/media-floppy.png
Binary files differ
diff --git a/static/tango/16x16/devices/media-optical.png b/static/tango/16x16/devices/media-optical.png
new file mode 100644
index 0000000..760de93
--- /dev/null
+++ b/static/tango/16x16/devices/media-optical.png
Binary files differ
diff --git a/static/tango/16x16/devices/multimedia-player.png b/static/tango/16x16/devices/multimedia-player.png
new file mode 100644
index 0000000..461e9de
--- /dev/null
+++ b/static/tango/16x16/devices/multimedia-player.png
Binary files differ
diff --git a/static/tango/16x16/devices/network-wired.png b/static/tango/16x16/devices/network-wired.png
new file mode 100644
index 0000000..3ac6b35
--- /dev/null
+++ b/static/tango/16x16/devices/network-wired.png
Binary files differ
diff --git a/static/tango/16x16/devices/network-wireless.png b/static/tango/16x16/devices/network-wireless.png
new file mode 100644
index 0000000..2dc6250
--- /dev/null
+++ b/static/tango/16x16/devices/network-wireless.png
Binary files differ
diff --git a/static/tango/16x16/devices/printer.png b/static/tango/16x16/devices/printer.png
new file mode 100644
index 0000000..12a4e39
--- /dev/null
+++ b/static/tango/16x16/devices/printer.png
Binary files differ
diff --git a/static/tango/16x16/devices/video-display.png b/static/tango/16x16/devices/video-display.png
new file mode 100644
index 0000000..a73a169
--- /dev/null
+++ b/static/tango/16x16/devices/video-display.png
Binary files differ
diff --git a/static/tango/16x16/emblems/Makefile.am b/static/tango/16x16/emblems/Makefile.am
new file mode 100644
index 0000000..5ad874f
--- /dev/null
+++ b/static/tango/16x16/emblems/Makefile.am
@@ -0,0 +1,20 @@
+
+size = 16x16
+context = emblems
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ emblem-favorite.png \
+ emblem-important.png \
+ emblem-photos.png \
+ emblem-readonly.png \
+ emblem-symbolic-link.png \
+ emblem-system.png \
+ emblem-unreadable.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/emblems/Makefile.in b/static/tango/16x16/emblems/Makefile.in
new file mode 100644
index 0000000..e34ae06
--- /dev/null
+++ b/static/tango/16x16/emblems/Makefile.in
@@ -0,0 +1,398 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/emblems
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = emblems
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ emblem-favorite.png \
+ emblem-important.png \
+ emblem-photos.png \
+ emblem-readonly.png \
+ emblem-symbolic-link.png \
+ emblem-system.png \
+ emblem-unreadable.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/emblems/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/emblems/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/emblems/emblem-favorite.png b/static/tango/16x16/emblems/emblem-favorite.png
new file mode 100644
index 0000000..3acb57d
--- /dev/null
+++ b/static/tango/16x16/emblems/emblem-favorite.png
Binary files differ
diff --git a/static/tango/16x16/emblems/emblem-important.png b/static/tango/16x16/emblems/emblem-important.png
new file mode 100644
index 0000000..81e9ed2
--- /dev/null
+++ b/static/tango/16x16/emblems/emblem-important.png
Binary files differ
diff --git a/static/tango/16x16/emblems/emblem-photos.png b/static/tango/16x16/emblems/emblem-photos.png
new file mode 100644
index 0000000..ab40463
--- /dev/null
+++ b/static/tango/16x16/emblems/emblem-photos.png
Binary files differ
diff --git a/static/tango/16x16/emblems/emblem-readonly.png b/static/tango/16x16/emblems/emblem-readonly.png
new file mode 100644
index 0000000..0466619
--- /dev/null
+++ b/static/tango/16x16/emblems/emblem-readonly.png
Binary files differ
diff --git a/static/tango/16x16/emblems/emblem-symbolic-link.png b/static/tango/16x16/emblems/emblem-symbolic-link.png
new file mode 100644
index 0000000..800b9e8
--- /dev/null
+++ b/static/tango/16x16/emblems/emblem-symbolic-link.png
Binary files differ
diff --git a/static/tango/16x16/emblems/emblem-system.png b/static/tango/16x16/emblems/emblem-system.png
new file mode 100644
index 0000000..259ed26
--- /dev/null
+++ b/static/tango/16x16/emblems/emblem-system.png
Binary files differ
diff --git a/static/tango/16x16/emblems/emblem-unreadable.png b/static/tango/16x16/emblems/emblem-unreadable.png
new file mode 100644
index 0000000..93edaf0
--- /dev/null
+++ b/static/tango/16x16/emblems/emblem-unreadable.png
Binary files differ
diff --git a/static/tango/16x16/emotes/Makefile.am b/static/tango/16x16/emotes/Makefile.am
new file mode 100644
index 0000000..cee11ca
--- /dev/null
+++ b/static/tango/16x16/emotes/Makefile.am
@@ -0,0 +1,26 @@
+
+size = 16x16
+context = emotes
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ face-angel.png \
+ face-crying.png \
+ face-devilish.png \
+ face-glasses.png \
+ face-grin.png \
+ face-kiss.png \
+ face-monkey.png \
+ face-plain.png \
+ face-sad.png \
+ face-smile.png \
+ face-smile-big.png \
+ face-surprise.png \
+ face-wink.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/emotes/Makefile.in b/static/tango/16x16/emotes/Makefile.in
new file mode 100644
index 0000000..ce631cf
--- /dev/null
+++ b/static/tango/16x16/emotes/Makefile.in
@@ -0,0 +1,404 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/emotes
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = emotes
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ face-angel.png \
+ face-crying.png \
+ face-devilish.png \
+ face-glasses.png \
+ face-grin.png \
+ face-kiss.png \
+ face-monkey.png \
+ face-plain.png \
+ face-sad.png \
+ face-smile.png \
+ face-smile-big.png \
+ face-surprise.png \
+ face-wink.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/emotes/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/emotes/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/emotes/face-angel.png b/static/tango/16x16/emotes/face-angel.png
new file mode 100644
index 0000000..d2c5e94
--- /dev/null
+++ b/static/tango/16x16/emotes/face-angel.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-crying.png b/static/tango/16x16/emotes/face-crying.png
new file mode 100644
index 0000000..a7e3f49
--- /dev/null
+++ b/static/tango/16x16/emotes/face-crying.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-devilish.png b/static/tango/16x16/emotes/face-devilish.png
new file mode 100644
index 0000000..8e2cd45
--- /dev/null
+++ b/static/tango/16x16/emotes/face-devilish.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-glasses.png b/static/tango/16x16/emotes/face-glasses.png
new file mode 100644
index 0000000..d13f2c8
--- /dev/null
+++ b/static/tango/16x16/emotes/face-glasses.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-grin.png b/static/tango/16x16/emotes/face-grin.png
new file mode 100644
index 0000000..d15cf2d
--- /dev/null
+++ b/static/tango/16x16/emotes/face-grin.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-kiss.png b/static/tango/16x16/emotes/face-kiss.png
new file mode 100644
index 0000000..809c1cf
--- /dev/null
+++ b/static/tango/16x16/emotes/face-kiss.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-monkey.png b/static/tango/16x16/emotes/face-monkey.png
new file mode 100644
index 0000000..69db8fa
--- /dev/null
+++ b/static/tango/16x16/emotes/face-monkey.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-plain.png b/static/tango/16x16/emotes/face-plain.png
new file mode 100644
index 0000000..a6761bd
--- /dev/null
+++ b/static/tango/16x16/emotes/face-plain.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-sad.png b/static/tango/16x16/emotes/face-sad.png
new file mode 100644
index 0000000..fa25895
--- /dev/null
+++ b/static/tango/16x16/emotes/face-sad.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-smile-big.png b/static/tango/16x16/emotes/face-smile-big.png
new file mode 100644
index 0000000..4cebcff
--- /dev/null
+++ b/static/tango/16x16/emotes/face-smile-big.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-smile.png b/static/tango/16x16/emotes/face-smile.png
new file mode 100644
index 0000000..01e0117
--- /dev/null
+++ b/static/tango/16x16/emotes/face-smile.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-surprise.png b/static/tango/16x16/emotes/face-surprise.png
new file mode 100644
index 0000000..863f304
--- /dev/null
+++ b/static/tango/16x16/emotes/face-surprise.png
Binary files differ
diff --git a/static/tango/16x16/emotes/face-wink.png b/static/tango/16x16/emotes/face-wink.png
new file mode 100644
index 0000000..46be685
--- /dev/null
+++ b/static/tango/16x16/emotes/face-wink.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/Makefile.am b/static/tango/16x16/mimetypes/Makefile.am
new file mode 100644
index 0000000..6fdaa98
--- /dev/null
+++ b/static/tango/16x16/mimetypes/Makefile.am
@@ -0,0 +1,34 @@
+
+size = 16x16
+context = mimetypes
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ application-certificate.png \
+ application-x-executable.png \
+ audio-x-generic.png \
+ font-x-generic.png \
+ image-x-generic.png \
+ package-x-generic.png \
+ text-html.png \
+ text-x-generic.png \
+ text-x-generic-template.png \
+ text-x-script.png \
+ video-x-generic.png \
+ x-office-address-book.png \
+ x-office-calendar.png \
+ x-office-document.png \
+ x-office-document-template.png \
+ x-office-drawing.png \
+ x-office-drawing-template.png \
+ x-office-presentation.png \
+ x-office-presentation-template.png \
+ x-office-spreadsheet.png \
+ x-office-spreadsheet-template.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/mimetypes/Makefile.in b/static/tango/16x16/mimetypes/Makefile.in
new file mode 100644
index 0000000..4517965
--- /dev/null
+++ b/static/tango/16x16/mimetypes/Makefile.in
@@ -0,0 +1,412 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/mimetypes
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = mimetypes
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ application-certificate.png \
+ application-x-executable.png \
+ audio-x-generic.png \
+ font-x-generic.png \
+ image-x-generic.png \
+ package-x-generic.png \
+ text-html.png \
+ text-x-generic.png \
+ text-x-generic-template.png \
+ text-x-script.png \
+ video-x-generic.png \
+ x-office-address-book.png \
+ x-office-calendar.png \
+ x-office-document.png \
+ x-office-document-template.png \
+ x-office-drawing.png \
+ x-office-drawing-template.png \
+ x-office-presentation.png \
+ x-office-presentation-template.png \
+ x-office-spreadsheet.png \
+ x-office-spreadsheet-template.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/mimetypes/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/mimetypes/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/mimetypes/application-certificate.png b/static/tango/16x16/mimetypes/application-certificate.png
new file mode 100644
index 0000000..486913d
--- /dev/null
+++ b/static/tango/16x16/mimetypes/application-certificate.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/application-x-executable.png b/static/tango/16x16/mimetypes/application-x-executable.png
new file mode 100644
index 0000000..003ded2
--- /dev/null
+++ b/static/tango/16x16/mimetypes/application-x-executable.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/audio-x-generic.png b/static/tango/16x16/mimetypes/audio-x-generic.png
new file mode 100644
index 0000000..fd877cb
--- /dev/null
+++ b/static/tango/16x16/mimetypes/audio-x-generic.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/font-x-generic.png b/static/tango/16x16/mimetypes/font-x-generic.png
new file mode 100644
index 0000000..bdbc1a8
--- /dev/null
+++ b/static/tango/16x16/mimetypes/font-x-generic.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/image-x-generic.png b/static/tango/16x16/mimetypes/image-x-generic.png
new file mode 100644
index 0000000..68da502
--- /dev/null
+++ b/static/tango/16x16/mimetypes/image-x-generic.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/package-x-generic.png b/static/tango/16x16/mimetypes/package-x-generic.png
new file mode 100644
index 0000000..9015426
--- /dev/null
+++ b/static/tango/16x16/mimetypes/package-x-generic.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/text-html.png b/static/tango/16x16/mimetypes/text-html.png
new file mode 100644
index 0000000..53014ab
--- /dev/null
+++ b/static/tango/16x16/mimetypes/text-html.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/text-x-generic-template.png b/static/tango/16x16/mimetypes/text-x-generic-template.png
new file mode 100644
index 0000000..a0cc462
--- /dev/null
+++ b/static/tango/16x16/mimetypes/text-x-generic-template.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/text-x-generic.png b/static/tango/16x16/mimetypes/text-x-generic.png
new file mode 100644
index 0000000..2d7f2d6
--- /dev/null
+++ b/static/tango/16x16/mimetypes/text-x-generic.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/text-x-script.png b/static/tango/16x16/mimetypes/text-x-script.png
new file mode 100644
index 0000000..c923098
--- /dev/null
+++ b/static/tango/16x16/mimetypes/text-x-script.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/video-x-generic.png b/static/tango/16x16/mimetypes/video-x-generic.png
new file mode 100644
index 0000000..64e7a30
--- /dev/null
+++ b/static/tango/16x16/mimetypes/video-x-generic.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-address-book.png b/static/tango/16x16/mimetypes/x-office-address-book.png
new file mode 100644
index 0000000..f3b5d9d
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-address-book.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-calendar.png b/static/tango/16x16/mimetypes/x-office-calendar.png
new file mode 100644
index 0000000..f6978d7
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-calendar.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-document-template.png b/static/tango/16x16/mimetypes/x-office-document-template.png
new file mode 100644
index 0000000..d1d9e7c
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-document-template.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-document.png b/static/tango/16x16/mimetypes/x-office-document.png
new file mode 100644
index 0000000..d18082e
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-document.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-drawing-template.png b/static/tango/16x16/mimetypes/x-office-drawing-template.png
new file mode 100644
index 0000000..dc384db
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-drawing-template.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-drawing.png b/static/tango/16x16/mimetypes/x-office-drawing.png
new file mode 100644
index 0000000..ffbb9e4
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-drawing.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-presentation-template.png b/static/tango/16x16/mimetypes/x-office-presentation-template.png
new file mode 100644
index 0000000..d90d034
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-presentation-template.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-presentation.png b/static/tango/16x16/mimetypes/x-office-presentation.png
new file mode 100644
index 0000000..f7ea302
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-presentation.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-spreadsheet-template.png b/static/tango/16x16/mimetypes/x-office-spreadsheet-template.png
new file mode 100644
index 0000000..e8bf570
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-spreadsheet-template.png
Binary files differ
diff --git a/static/tango/16x16/mimetypes/x-office-spreadsheet.png b/static/tango/16x16/mimetypes/x-office-spreadsheet.png
new file mode 100644
index 0000000..a6b1268
--- /dev/null
+++ b/static/tango/16x16/mimetypes/x-office-spreadsheet.png
Binary files differ
diff --git a/static/tango/16x16/places/Makefile.am b/static/tango/16x16/places/Makefile.am
new file mode 100644
index 0000000..29cf028
--- /dev/null
+++ b/static/tango/16x16/places/Makefile.am
@@ -0,0 +1,22 @@
+
+size = 16x16
+context = places
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ folder.png \
+ folder-remote.png \
+ folder-saved-search.png \
+ network-server.png \
+ network-workgroup.png \
+ start-here.png \
+ user-desktop.png \
+ user-home.png \
+ user-trash.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/places/Makefile.in b/static/tango/16x16/places/Makefile.in
new file mode 100644
index 0000000..c18d188
--- /dev/null
+++ b/static/tango/16x16/places/Makefile.in
@@ -0,0 +1,400 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/places
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = places
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ folder.png \
+ folder-remote.png \
+ folder-saved-search.png \
+ network-server.png \
+ network-workgroup.png \
+ start-here.png \
+ user-desktop.png \
+ user-home.png \
+ user-trash.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/places/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/places/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/places/folder-remote.png b/static/tango/16x16/places/folder-remote.png
new file mode 100644
index 0000000..8f1f0a9
--- /dev/null
+++ b/static/tango/16x16/places/folder-remote.png
Binary files differ
diff --git a/static/tango/16x16/places/folder-saved-search.png b/static/tango/16x16/places/folder-saved-search.png
new file mode 100644
index 0000000..a55601d
--- /dev/null
+++ b/static/tango/16x16/places/folder-saved-search.png
Binary files differ
diff --git a/static/tango/16x16/places/folder.png b/static/tango/16x16/places/folder.png
new file mode 100644
index 0000000..901edc9
--- /dev/null
+++ b/static/tango/16x16/places/folder.png
Binary files differ
diff --git a/static/tango/16x16/places/network-server.png b/static/tango/16x16/places/network-server.png
new file mode 100644
index 0000000..068ffeb
--- /dev/null
+++ b/static/tango/16x16/places/network-server.png
Binary files differ
diff --git a/static/tango/16x16/places/network-workgroup.png b/static/tango/16x16/places/network-workgroup.png
new file mode 100644
index 0000000..5c140d8
--- /dev/null
+++ b/static/tango/16x16/places/network-workgroup.png
Binary files differ
diff --git a/static/tango/16x16/places/start-here.png b/static/tango/16x16/places/start-here.png
new file mode 100644
index 0000000..bd516a5
--- /dev/null
+++ b/static/tango/16x16/places/start-here.png
Binary files differ
diff --git a/static/tango/16x16/places/user-desktop.png b/static/tango/16x16/places/user-desktop.png
new file mode 100644
index 0000000..4c9787c
--- /dev/null
+++ b/static/tango/16x16/places/user-desktop.png
Binary files differ
diff --git a/static/tango/16x16/places/user-home.png b/static/tango/16x16/places/user-home.png
new file mode 100644
index 0000000..13d2c00
--- /dev/null
+++ b/static/tango/16x16/places/user-home.png
Binary files differ
diff --git a/static/tango/16x16/places/user-trash.png b/static/tango/16x16/places/user-trash.png
new file mode 100644
index 0000000..0e0953c
--- /dev/null
+++ b/static/tango/16x16/places/user-trash.png
Binary files differ
diff --git a/static/tango/16x16/status/Makefile.am b/static/tango/16x16/status/Makefile.am
new file mode 100644
index 0000000..33433bd
--- /dev/null
+++ b/static/tango/16x16/status/Makefile.am
@@ -0,0 +1,48 @@
+
+size = 16x16
+context = status
+
+iconsdir = $(themedir)/$(size)/$(context)
+
+icons_DATA = \
+ audio-volume-high.png \
+ audio-volume-low.png \
+ audio-volume-medium.png \
+ audio-volume-muted.png \
+ battery-caution.png \
+ dialog-error.png \
+ dialog-information.png \
+ dialog-warning.png \
+ folder-drag-accept.png \
+ folder-open.png \
+ folder-visiting.png \
+ image-loading.png \
+ image-missing.png \
+ mail-attachment.png \
+ network-error.png \
+ network-idle.png \
+ network-offline.png \
+ network-receive.png \
+ network-transmit.png \
+ network-transmit-receive.png \
+ network-wireless-encrypted.png \
+ printer-error.png \
+ software-update-available.png \
+ software-update-urgent.png \
+ user-trash-full.png \
+ weather-clear.png \
+ weather-clear-night.png \
+ weather-few-clouds.png \
+ weather-few-clouds-night.png \
+ weather-overcast.png \
+ weather-severe-alert.png \
+ weather-showers.png \
+ weather-showers-scattered.png \
+ weather-snow.png \
+ weather-storm.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
diff --git a/static/tango/16x16/status/Makefile.in b/static/tango/16x16/status/Makefile.in
new file mode 100644
index 0000000..165ffb3
--- /dev/null
+++ b/static/tango/16x16/status/Makefile.in
@@ -0,0 +1,426 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = 16x16/status
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(iconsdir)"
+iconsDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(icons_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONVERT = @CONVERT@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+ICONMAP = @ICONMAP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SVGCONVERT = @SVGCONVERT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+themedir = @themedir@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+size = 16x16
+context = status
+iconsdir = $(themedir)/$(size)/$(context)
+icons_DATA = \
+ audio-volume-high.png \
+ audio-volume-low.png \
+ audio-volume-medium.png \
+ audio-volume-muted.png \
+ battery-caution.png \
+ dialog-error.png \
+ dialog-information.png \
+ dialog-warning.png \
+ folder-drag-accept.png \
+ folder-open.png \
+ folder-visiting.png \
+ image-loading.png \
+ image-missing.png \
+ mail-attachment.png \
+ network-error.png \
+ network-idle.png \
+ network-offline.png \
+ network-receive.png \
+ network-transmit.png \
+ network-transmit-receive.png \
+ network-wireless-encrypted.png \
+ printer-error.png \
+ software-update-available.png \
+ software-update-urgent.png \
+ user-trash-full.png \
+ weather-clear.png \
+ weather-clear-night.png \
+ weather-few-clouds.png \
+ weather-few-clouds-night.png \
+ weather-overcast.png \
+ weather-severe-alert.png \
+ weather-showers.png \
+ weather-showers-scattered.png \
+ weather-snow.png \
+ weather-storm.png
+
+EXTRA_DIST = \
+ $(icons_DATA)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu 16x16/status/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu 16x16/status/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-iconsDATA: $(icons_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(iconsdir)" || $(MKDIR_P) "$(DESTDIR)$(iconsdir)"
+ @list='$(icons_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(iconsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconsdir)/$$f'"; \
+ $(iconsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+
+uninstall-iconsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(icons_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(iconsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(iconsdir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(iconsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-iconsDATA
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-iconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-iconsDATA \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-iconsDATA
+
+
+install-data-local: install-iconsDATA
+ (cd $(DESTDIR)$(themedir)/$(size) && $(ICONMAP) -c $(context))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/static/tango/16x16/status/audio-volume-high.png b/static/tango/16x16/status/audio-volume-high.png
new file mode 100644
index 0000000..ec8f00b
--- /dev/null
+++ b/static/tango/16x16/status/audio-volume-high.png
Binary files differ
diff --git a/static/tango/16x16/status/audio-volume-low.png b/static/tango/16x16/status/audio-volume-low.png
new file mode 100644
index 0000000..4d7239f
--- /dev/null
+++ b/static/tango/16x16/status/audio-volume-low.png
Binary files differ
diff --git a/static/tango/16x16/status/audio-volume-medium.png b/static/tango/16x16/status/audio-volume-medium.png
new file mode 100644
index 0000000..36ca7b0
--- /dev/null
+++ b/static/tango/16x16/status/audio-volume-medium.png
Binary files differ
diff --git a/static/tango/16x16/status/audio-volume-muted.png b/static/tango/16x16/status/audio-volume-muted.png
new file mode 100644
index 0000000..af5a97b
--- /dev/null
+++ b/static/tango/16x16/status/audio-volume-muted.png
Binary files differ
diff --git a/static/tango/16x16/status/battery-caution.png b/static/tango/16x16/status/battery-caution.png
new file mode 100644
index 0000000..53a27d1
--- /dev/null
+++ b/static/tango/16x16/status/battery-caution.png
Binary files differ
diff --git a/static/tango/16x16/status/dialog-error.png b/static/tango/16x16/status/dialog-error.png
new file mode 100644
index 0000000..3bbbb4a
--- /dev/null
+++ b/static/tango/16x16/status/dialog-error.png
Binary files differ
diff --git a/static/tango/16x16/status/dialog-information.png b/static/tango/16x16/status/dialog-information.png
new file mode 100644
index 0000000..8851b99
--- /dev/null
+++ b/static/tango/16x16/status/dialog-information.png
Binary files differ
diff --git a/static/tango/16x16/status/dialog-warning.png b/static/tango/16x16/status/dialog-warning.png
new file mode 100644
index 0000000..a9e4ff3
--- /dev/null
+++ b/static/tango/16x16/status/dialog-warning.png
Binary files differ
diff --git a/static/tango/16x16/status/folder-drag-accept.png b/static/tango/16x16/status/folder-drag-accept.png
new file mode 100644
index 0000000..4a6c897
--- /dev/null
+++ b/static/tango/16x16/status/folder-drag-accept.png
Binary files differ
diff --git a/static/tango/16x16/status/folder-open.png b/static/tango/16x16/status/folder-open.png
new file mode 100644
index 0000000..1e074cd
--- /dev/null
+++ b/static/tango/16x16/status/folder-open.png
Binary files differ
diff --git a/static/tango/16x16/status/folder-visiting.png b/static/tango/16x16/status/folder-visiting.png
new file mode 100644
index 0000000..d8d1be6
--- /dev/null
+++ b/static/tango/16x16/status/folder-visiting.png
Binary files differ
diff --git a/static/tango/16x16/status/image-loading.png b/static/tango/16x16/status/image-loading.png
new file mode 100644
index 0000000..174994e
--- /dev/null
+++ b/static/tango/16x16/status/image-loading.png
Binary files differ
diff --git a/static/tango/16x16/status/image-missing.png b/static/tango/16x16/status/image-missing.png
new file mode 100644
index 0000000..a644f24
--- /dev/null
+++ b/static/tango/16x16/status/image-missing.png
Binary files differ
diff --git a/static/tango/16x16/status/mail-attachment.png b/static/tango/16x16/status/mail-attachment.png
new file mode 100644
index 0000000..529bb7f
--- /dev/null
+++ b/static/tango/16x16/status/mail-attachment.png
Binary files differ
diff --git a/static/tango/16x16/status/network-error.png b/static/tango/16x16/status/network-error.png
new file mode 100644
index 0000000..3f18ed0
--- /dev/null
+++ b/static/tango/16x16/status/network-error.png
Binary files differ
diff --git a/static/tango/16x16/status/network-idle.png b/static/tango/16x16/status/network-idle.png
new file mode 100644
index 0000000..0efee57
--- /dev/null
+++ b/static/tango/16x16/status/network-idle.png
Binary files differ
diff --git a/static/tango/16x16/status/network-offline.png b/static/tango/16x16/status/network-offline.png
new file mode 100644
index 0000000..1f210fc
--- /dev/null
+++ b/static/tango/16x16/status/network-offline.png
Binary files differ
diff --git a/static/tango/16x16/status/network-receive.png b/static/tango/16x16/status/network-receive.png
new file mode 100644
index 0000000..b57c65c
--- /dev/null
+++ b/static/tango/16x16/status/network-receive.png
Binary files differ
diff --git a/static/tango/16x16/status/network-transmit-receive.png b/static/tango/16x16/status/network-transmit-receive.png
new file mode 100644
index 0000000..271d37d
--- /dev/null
+++ b/static/tango/16x16/status/network-transmit-receive.png
Binary files differ
diff --git a/static/tango/16x16/status/network-transmit.png b/static/tango/16x16/status/network-transmit.png
new file mode 100644
index 0000000..08aa28b
--- /dev/null
+++ b/static/tango/16x16/status/network-transmit.png
Binary files differ
diff --git a/static/tango/16x16/status/network-wireless-encrypted.png b/static/tango/16x16/status/network-wireless-encrypted.png
new file mode 100644
index 0000000..12b572a
--- /dev/null
+++ b/static/tango/16x16/status/network-wireless-encrypted.png
Binary files differ
diff --git a/static/tango/16x16/status/printer-error.png b/static/tango/16x16/status/printer-error.png
new file mode 100644
index 0000000..21d4ded
--- /dev/null
+++ b/static/tango/16x16/status/printer-error.png
Binary files differ
diff --git a/static/tango/16x16/status/software-update-available.png b/static/tango/16x16/status/software-update-available.png
new file mode 100644
index 0000000..ab8d494
--- /dev/null
+++ b/static/tango/16x16/status/software-update-available.png
Binary files differ
diff --git a/static/tango/16x16/status/software-update-urgent.png b/static/tango/16x16/status/software-update-urgent.png
new file mode 100644
index 0000000..433945d
--- /dev/null
+++ b/static/tango/16x16/status/software-update-urgent.png
Binary files differ
diff --git a/static/tango/16x16/status/user-trash-full.png b/static/tango/16x16/status/user-trash-full.png
new file mode 100644
index 0000000..695d215
--- /dev/null
+++ b/static/tango/16x16/status/user-trash-full.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-clear-night.png b/static/tango/16x16/status/weather-clear-night.png
new file mode 100644
index 0000000..4345752
--- /dev/null
+++ b/static/tango/16x16/status/weather-clear-night.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-clear.png b/static/tango/16x16/status/weather-clear.png
new file mode 100644
index 0000000..7dc15ea
--- /dev/null
+++ b/static/tango/16x16/status/weather-clear.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-few-clouds-night.png b/static/tango/16x16/status/weather-few-clouds-night.png
new file mode 100644
index 0000000..d69efec
--- /dev/null
+++ b/static/tango/16x16/status/weather-few-clouds-night.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-few-clouds.png b/static/tango/16x16/status/weather-few-clouds.png
new file mode 100644
index 0000000..0e633a3
--- /dev/null
+++ b/static/tango/16x16/status/weather-few-clouds.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-overcast.png b/static/tango/16x16/status/weather-overcast.png
new file mode 100644
index 0000000..0045129
--- /dev/null
+++ b/static/tango/16x16/status/weather-overcast.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-severe-alert.png b/static/tango/16x16/status/weather-severe-alert.png
new file mode 100644
index 0000000..98e9f6c
--- /dev/null
+++ b/static/tango/16x16/status/weather-severe-alert.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-showers-scattered.png b/static/tango/16x16/status/weather-showers-scattered.png
new file mode 100644
index 0000000..8d10d84
--- /dev/null
+++ b/static/tango/16x16/status/weather-showers-scattered.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-showers.png b/static/tango/16x16/status/weather-showers.png
new file mode 100644
index 0000000..d9685d2
--- /dev/null
+++ b/static/tango/16x16/status/weather-showers.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-snow.png b/static/tango/16x16/status/weather-snow.png
new file mode 100644
index 0000000..a83d855
--- /dev/null
+++ b/static/tango/16x16/status/weather-snow.png
Binary files differ
diff --git a/static/tango/16x16/status/weather-storm.png b/static/tango/16x16/status/weather-storm.png
new file mode 100644
index 0000000..feebe1d
--- /dev/null
+++ b/static/tango/16x16/status/weather-storm.png
Binary files differ
diff --git a/static/watermark.jpg b/static/watermark.jpg
new file mode 100644
index 0000000..e76142e
--- /dev/null
+++ b/static/watermark.jpg
Binary files differ