autopilot-gtk/0000775000000000000000000000000015044415152010552 5ustar autopilot-gtk/.git/0000775000000000000000000000000015044415152011413 5ustar autopilot-gtk/.git/COMMIT_EDITMSG0000664000000000000000000000046215044415152013504 0ustar Update changelog # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # Date: Tue Aug 5 11:53:29 2025 -0300 # # On branch ftbfs # Changes to be committed: # modified: debian/changelog # # Untracked files: # .pc/ # autopilot-gtk/.git/FETCH_HEAD0000664000000000000000000000000015044415152012736 0ustar autopilot-gtk/.git/HEAD0000664000000000000000000000002615044415152012035 0ustar ref: refs/heads/ftbfs autopilot-gtk/.git/ORIG_HEAD0000664000000000000000000000005115044415152012653 0ustar 7775ef8842057ca8bfd75f805d5659000e374638 autopilot-gtk/.git/config0000764000000000000000000000147215044127643012615 0ustar [core] bare = false repositoryformatversion = 0 filemode = true logallrefupdates = true [remote "pkg"] url = https://git.launchpad.net/ubuntu/+source/autopilot-gtk fetch = +refs/heads/*:refs/remotes/pkg/* fetch = +refs/tags/*:refs/tags/pkg/* fetch = +refs/notes/commits:refs/notes/changelog pushurl = ssh://athos-ribeiro@git.launchpad.net/ubuntu/+source/autopilot-gtk tagOpt = --no-tags [remote "athos-ribeiro"] url = https://git.launchpad.net/~athos-ribeiro/ubuntu/+source/autopilot-gtk fetch = +refs/heads/*:refs/remotes/athos-ribeiro/* fetch = +refs/tags/*:refs/tags/athos-ribeiro/* pushurl = ssh://athos-ribeiro@git.launchpad.net/~athos-ribeiro/ubuntu/+source/autopilot-gtk tagOpt = --no-tags [branch "ubuntu/devel"] remote = pkg merge = refs/heads/ubuntu/devel [notes] displayRef = refs/notes/changelog autopilot-gtk/.git/description0000664000000000000000000000011115044127637013662 0ustar Unnamed repository; edit this file 'description' to name the repository. autopilot-gtk/.git/hooks/0000775000000000000000000000000015044127637012546 5ustar autopilot-gtk/.git/hooks/README.sample0000775000000000000000000000026115044127637014710 0ustar #!/bin/sh # # Place appropriately named executable hook scripts into this directory # to intercept various actions that git takes. See `git help hooks` for # more information. autopilot-gtk/.git/hooks/post-checkout0000755000000000000000000000074115043765754015273 0ustar #!/bin/sh EMPTY_TREE=4b825dc642cb6eb9a060e54bf8d69288fbee4904 NEW_HEAD=$2 if git ls-tree -r -d $NEW_HEAD |awk '{print $3}'|grep -q $EMPTY_TREE; then echo >&2 echo "WARNING: empty directories exist but are not tracked by git:" >&2 echo >&2 git ls-tree -r -d $NEW_HEAD|grep $EMPTY_TREE|awk '{print $4}' >&2 echo >&2 echo "These will silently disappear on commit, causing extraneous" >&2 echo "unintended changes. See: LP: #1687057." >&2 echo >&2 fi autopilot-gtk/.git/hooks/pre-commit0000755000000000000000000000101515043765754014552 0ustar #!/bin/sh EMPTY_TREE=4b825dc642cb6eb9a060e54bf8d69288fbee4904 if git ls-tree -r -d HEAD|awk '{print $3}'|grep -q $EMPTY_TREE; then echo "ERROR: Empty directories exist and will disappear on commit, causing" >&2 echo "extraneous unintended changes:" >&2 echo >&2 git ls-tree -r -d HEAD|grep $EMPTY_TREE|awk '{print $4}' >&2 echo >&2 echo "See LP: #1687057." >&2 echo 'Use "git commit --no-verify ..." to ignore this problem.' >&2 echo >&2 echo "pre-commit hook failed." >&2 exit 1 fi autopilot-gtk/.git/index0000664000000000000000000000554115044415152012452 0ustar DIRChOhO.zKp>ٖ߽CMakeLists.txth]:yh]:/R8L_~~c{ Ladebian/changeloghcBhcBRcQDHk`WcU4@ debian/compath0>5h0>5R?SӼ}D 됌!vbdebian/controlhcBhcBR*l艑1oHj6S`debian/copyrighthcBhcBR e~OYڂ܊ή debian/ruleshcBhcBRӂ~u۟~ђ21 debian/source/formathcBhcBRHa~V" kdebian/tests/autopilothkQhkQR7=/wҵ-Լdebian/tests/controlhkQhkQR%_#;lib/CMakeLists.txthnqhnqR86i9LE\+!Q _ lib/GtkNode.cpphnqhnqRA]0slGM 6 lib/GtkNode.hhnqhnqR ^NXn"LBlib/GtkRootNode.cpphnqhnqRƓK榡\(Tlib/GtkRootNode.hhnqhnqR "Ħlib/Introspection.cpphnqhnqRu-@kIoT3lib/Introspection.hhnqhnqRwŵE!Z?䣹u-p1-tests/hello_color.pyhhR/t(S}FEȁH⌯.;tests/hello_color.uiTREE30 3 Cq¿Wj6' lib13 0 lM]U/b]tests8 1 .PsE8]qautopilot6 1 k! `D!2;tests6 0 j8g\K֤`Ҭ-debian8 2 t^DqH³`'u*"gL;+] autopilot-gtk/.git/info/0000775000000000000000000000000015044127637012356 5ustar autopilot-gtk/.git/info/attributes0000664000000000000000000000003015044127637014460 0ustar * -ident * -text * -eol autopilot-gtk/.git/info/exclude0000664000000000000000000000016115044127637013730 0ustar # File patterns to ignore; see `git help ignore` for more information. # Lines that start with '#' are comments. autopilot-gtk/.git/logs/0000775000000000000000000000000015044127643012364 5ustar autopilot-gtk/.git/logs/HEAD0000664000000000000000000000442615044415152013011 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312611 -0300 checkout: moving from master to ubuntu/devel 35a79b88b347160a62cb8c8d6911ed764f9282a6 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754405229 -0300 checkout: moving from ubuntu/devel to ftbfs 35a79b88b347160a62cb8c8d6911ed764f9282a6 3d241ceb37265a60ee6f216b5a0459e6918d117f Athos Ribeiro 1754405241 -0300 commit: Fix FTBFS issue due to lack of autopilot support 3d241ceb37265a60ee6f216b5a0459e6918d117f 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754405424 -0300 reset: moving to ubuntu/devel 35a79b88b347160a62cb8c8d6911ed764f9282a6 db014cb735e148d06fde09c6a8d281f8916608ea Athos Ribeiro 1754405594 -0300 commit: Fix FTBFS db014cb735e148d06fde09c6a8d281f8916608ea c0363585b49dd5766266ea76cd102e78e385d71a Athos Ribeiro 1754405609 -0300 commit: Update changelog c0363585b49dd5766266ea76cd102e78e385d71a e47b4003a7ddd5a6fbdc265dfd9a0c49a4702d0e Athos Ribeiro 1754405936 -0300 commit: tmp-patch e47b4003a7ddd5a6fbdc265dfd9a0c49a4702d0e 7775ef8842057ca8bfd75f805d5659000e374638 Athos Ribeiro 1754405951 -0300 commit (amend): tmp-patch 7775ef8842057ca8bfd75f805d5659000e374638 db014cb735e148d06fde09c6a8d281f8916608ea Athos Ribeiro 1754405965 -0300 rebase (start): checkout 35a79b88b347160a62cb8c8d6911ed764f9282a6 db014cb735e148d06fde09c6a8d281f8916608ea 3548e9e1c35e2970bc84271d3c233b04df015cc8 Athos Ribeiro 1754405965 -0300 rebase (fixup): Fix FTBFS 3548e9e1c35e2970bc84271d3c233b04df015cc8 a5e75c1cc5bd011e9fcdc1769e2f168320163805 Athos Ribeiro 1754405965 -0300 rebase (pick): Update changelog a5e75c1cc5bd011e9fcdc1769e2f168320163805 a5e75c1cc5bd011e9fcdc1769e2f168320163805 Athos Ribeiro 1754405965 -0300 rebase (finish): returning to refs/heads/ftbfs a5e75c1cc5bd011e9fcdc1769e2f168320163805 e73a7b3deabf29e33635331e91d0277e051d0b9d Athos Ribeiro 1754405988 -0300 commit (amend): Update changelog autopilot-gtk/.git/logs/refs/0000775000000000000000000000000015044127643013323 5ustar autopilot-gtk/.git/logs/refs/heads/0000775000000000000000000000000015044414555014410 5ustar autopilot-gtk/.git/logs/refs/heads/ftbfs0000664000000000000000000000310015044415152015423 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754405229 -0300 branch: Created from HEAD 35a79b88b347160a62cb8c8d6911ed764f9282a6 3d241ceb37265a60ee6f216b5a0459e6918d117f Athos Ribeiro 1754405241 -0300 commit: Fix FTBFS issue due to lack of autopilot support 3d241ceb37265a60ee6f216b5a0459e6918d117f 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754405424 -0300 reset: moving to ubuntu/devel 35a79b88b347160a62cb8c8d6911ed764f9282a6 db014cb735e148d06fde09c6a8d281f8916608ea Athos Ribeiro 1754405594 -0300 commit: Fix FTBFS db014cb735e148d06fde09c6a8d281f8916608ea c0363585b49dd5766266ea76cd102e78e385d71a Athos Ribeiro 1754405609 -0300 commit: Update changelog c0363585b49dd5766266ea76cd102e78e385d71a e47b4003a7ddd5a6fbdc265dfd9a0c49a4702d0e Athos Ribeiro 1754405936 -0300 commit: tmp-patch e47b4003a7ddd5a6fbdc265dfd9a0c49a4702d0e 7775ef8842057ca8bfd75f805d5659000e374638 Athos Ribeiro 1754405951 -0300 commit (amend): tmp-patch 7775ef8842057ca8bfd75f805d5659000e374638 a5e75c1cc5bd011e9fcdc1769e2f168320163805 Athos Ribeiro 1754405965 -0300 rebase (finish): refs/heads/ftbfs onto 35a79b88b347160a62cb8c8d6911ed764f9282a6 a5e75c1cc5bd011e9fcdc1769e2f168320163805 e73a7b3deabf29e33635331e91d0277e051d0b9d Athos Ribeiro 1754405988 -0300 commit (amend): Update changelog autopilot-gtk/.git/logs/refs/heads/ubuntu/0000775000000000000000000000000015044127643015731 5ustar autopilot-gtk/.git/logs/refs/heads/ubuntu/devel0000664000000000000000000000031515044127643016752 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312611 -0300 branch: Created from 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/logs/refs/notes/0000775000000000000000000000000015044127642014452 5ustar autopilot-gtk/.git/logs/refs/notes/changelog0000664000000000000000000000024615044127642016326 0ustar 0000000000000000000000000000000000000000 028902076bcc088672c825dba977db1449273d3b Athos Ribeiro 1754312610 -0300 fetch pkg: storing ref autopilot-gtk/.git/logs/refs/remotes/0000775000000000000000000000000015044415152014774 5ustar autopilot-gtk/.git/logs/refs/remotes/athos-ribeiro/0000775000000000000000000000000015044415152017543 5ustar autopilot-gtk/.git/logs/refs/remotes/athos-ribeiro/ftbfs0000664000000000000000000000023615044415152020573 0ustar 0000000000000000000000000000000000000000 e73a7b3deabf29e33635331e91d0277e051d0b9d Athos Ribeiro 1754406278 -0300 update by push autopilot-gtk/.git/logs/refs/remotes/pkg/0000775000000000000000000000000015044127642015561 5ustar autopilot-gtk/.git/logs/refs/remotes/pkg/applied/0000775000000000000000000000000015044127642017177 5ustar autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/0000775000000000000000000000000015044127642020521 5ustar autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/artful0000664000000000000000000000024715044127642021744 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/artful-devel0000664000000000000000000000024715044127642023041 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/bionic0000664000000000000000000000024715044127642021712 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/bionic-devel0000664000000000000000000000024715044127642023007 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/cosmic0000664000000000000000000000024715044127642021724 0ustar 0000000000000000000000000000000000000000 ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/cosmic-devel0000664000000000000000000000024715044127642023021 0ustar 0000000000000000000000000000000000000000 ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/cosmic-proposed0000664000000000000000000000024715044127642023555 0ustar 0000000000000000000000000000000000000000 ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/devel0000664000000000000000000000024715044127642021546 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/disco0000664000000000000000000000024715044127642021550 0ustar 0000000000000000000000000000000000000000 ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/disco-devel0000664000000000000000000000024715044127642022645 0ustar 0000000000000000000000000000000000000000 ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/eoan0000664000000000000000000000024715044127642021371 0ustar 0000000000000000000000000000000000000000 ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/eoan-devel0000664000000000000000000000024715044127642022466 0ustar 0000000000000000000000000000000000000000 ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/focal0000664000000000000000000000024715044127642021533 0ustar 0000000000000000000000000000000000000000 40e07635b89061c39f6808d26e3740ca0a9d725c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/focal-devel0000664000000000000000000000024715044127642022630 0ustar 0000000000000000000000000000000000000000 83f03c700b03c1fb20f41396330f80fae38b03c7 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/focal-proposed0000664000000000000000000000024715044127642023364 0ustar 0000000000000000000000000000000000000000 83f03c700b03c1fb20f41396330f80fae38b03c7 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/groovy0000664000000000000000000000024715044127642021774 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/groovy-devel0000664000000000000000000000024715044127642023071 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/groovy-proposed0000664000000000000000000000024715044127642023625 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/hirsute0000664000000000000000000000024715044127642022132 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/hirsute-devel0000664000000000000000000000024715044127642023227 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/impish0000664000000000000000000000024715044127642021740 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/impish-devel0000664000000000000000000000024715044127642023035 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/jammy0000664000000000000000000000024715044127642021564 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/jammy-devel0000664000000000000000000000024715044127642022661 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/kinetic0000664000000000000000000000024715044127642022075 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/kinetic-devel0000664000000000000000000000024715044127642023172 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/lunar0000664000000000000000000000024715044127642021570 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/lunar-devel0000664000000000000000000000024715044127642022665 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/mantic0000664000000000000000000000024715044127642021722 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/mantic-devel0000664000000000000000000000024715044127642023017 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/noble0000664000000000000000000000024715044127642021546 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/noble-devel0000664000000000000000000000024715044127642022643 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/noble-proposed0000664000000000000000000000024715044127642023377 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/oracular0000664000000000000000000000024715044127642022257 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/oracular-devel0000664000000000000000000000024715044127642023354 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/oracular-proposed0000664000000000000000000000024715044127642024110 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/plucky0000664000000000000000000000024715044127642021756 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/plucky-devel0000664000000000000000000000024715044127642023053 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/plucky-proposed0000664000000000000000000000024715044127642023607 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/questing0000664000000000000000000000024715044127642022306 0ustar 0000000000000000000000000000000000000000 bc6cf067c659610aa12d853708ff7213d7f7b072 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/questing-devel0000664000000000000000000000024715044127642023403 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/questing-proposed0000664000000000000000000000024715044127642024137 0ustar 0000000000000000000000000000000000000000 11e531609881caedeffac521520b8817bae6ef46 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/raring0000664000000000000000000000024715044127642021731 0ustar 0000000000000000000000000000000000000000 610b91d8f94a7830e157529c7b99d550e4425cd9 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/raring-devel0000664000000000000000000000024715044127642023026 0ustar 0000000000000000000000000000000000000000 610b91d8f94a7830e157529c7b99d550e4425cd9 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/raring-proposed0000664000000000000000000000024715044127642023562 0ustar 0000000000000000000000000000000000000000 610b91d8f94a7830e157529c7b99d550e4425cd9 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/saucy0000664000000000000000000000024715044127642021573 0ustar 0000000000000000000000000000000000000000 9ab89b4b30802dc9c99a1130054c3cabc888ac0b Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/saucy-devel0000664000000000000000000000024715044127642022670 0ustar 0000000000000000000000000000000000000000 9ab89b4b30802dc9c99a1130054c3cabc888ac0b Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/saucy-proposed0000664000000000000000000000024715044127642023424 0ustar 0000000000000000000000000000000000000000 9ab89b4b30802dc9c99a1130054c3cabc888ac0b Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/trusty0000664000000000000000000000024715044127642022021 0ustar 0000000000000000000000000000000000000000 92aac62a5317a23ff2382d3ba9ea859ccac65900 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/trusty-devel0000664000000000000000000000024715044127642023116 0ustar 0000000000000000000000000000000000000000 92aac62a5317a23ff2382d3ba9ea859ccac65900 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/trusty-proposed0000664000000000000000000000024715044127642023652 0ustar 0000000000000000000000000000000000000000 92aac62a5317a23ff2382d3ba9ea859ccac65900 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/utopic0000664000000000000000000000024715044127642021752 0ustar 0000000000000000000000000000000000000000 b756a1f9d2aeb0bb146961540d24dd00baee7c3f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/utopic-devel0000664000000000000000000000024715044127642023047 0ustar 0000000000000000000000000000000000000000 b756a1f9d2aeb0bb146961540d24dd00baee7c3f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/utopic-proposed0000664000000000000000000000024715044127642023603 0ustar 0000000000000000000000000000000000000000 b756a1f9d2aeb0bb146961540d24dd00baee7c3f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/vivid0000664000000000000000000000024715044127642021570 0ustar 0000000000000000000000000000000000000000 d50ed1dd8d1e95606981f9eca3e41fb01dd18ce8 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/vivid-devel0000664000000000000000000000024715044127642022665 0ustar 0000000000000000000000000000000000000000 d50ed1dd8d1e95606981f9eca3e41fb01dd18ce8 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/vivid-proposed0000664000000000000000000000024715044127642023421 0ustar 0000000000000000000000000000000000000000 d50ed1dd8d1e95606981f9eca3e41fb01dd18ce8 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/wily0000664000000000000000000000024715044127642021433 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/wily-devel0000664000000000000000000000024715044127642022530 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/wily-proposed0000664000000000000000000000024715044127642023264 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/xenial0000664000000000000000000000024715044127642021727 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/xenial-devel0000664000000000000000000000024715044127642023024 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/yakkety0000664000000000000000000000024715044127642022130 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/yakkety-devel0000664000000000000000000000024715044127642023225 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/zesty0000664000000000000000000000024715044127642021625 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/applied/ubuntu/zesty-devel0000664000000000000000000000024715044127642022722 0ustar 0000000000000000000000000000000000000000 c49ea05fdc8dc3bad664864c47ad2651950ec14c Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/importer/0000775000000000000000000000000015044127642017422 5ustar autopilot-gtk/.git/logs/refs/remotes/pkg/importer/ubuntu/0000775000000000000000000000000015044127642020744 5ustar autopilot-gtk/.git/logs/refs/remotes/pkg/importer/ubuntu/dsc0000664000000000000000000000024715044127642021443 0ustar 0000000000000000000000000000000000000000 be8fba2525b1b221bf8290265a6ffa9c2aa0f6c2 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/importer/ubuntu/pristine-tar0000664000000000000000000000024715044127642023313 0ustar 0000000000000000000000000000000000000000 5fae954a986274b16686b04425f926b668ae68c7 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/0000775000000000000000000000000015044127642017103 5ustar autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/artful0000664000000000000000000000024715044127642020326 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/artful-devel0000664000000000000000000000024715044127642021423 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/bionic0000664000000000000000000000024715044127642020274 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/bionic-devel0000664000000000000000000000024715044127642021371 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/cosmic0000664000000000000000000000024715044127642020306 0ustar 0000000000000000000000000000000000000000 b7826b35f9a94854b1a78699fcc8df83ffe012f3 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/cosmic-devel0000664000000000000000000000024715044127642021403 0ustar 0000000000000000000000000000000000000000 b7826b35f9a94854b1a78699fcc8df83ffe012f3 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/cosmic-proposed0000664000000000000000000000024715044127642022137 0ustar 0000000000000000000000000000000000000000 b7826b35f9a94854b1a78699fcc8df83ffe012f3 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/devel0000664000000000000000000000024715044127642020130 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/disco0000664000000000000000000000024715044127642020132 0ustar 0000000000000000000000000000000000000000 b7826b35f9a94854b1a78699fcc8df83ffe012f3 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/disco-devel0000664000000000000000000000024715044127642021227 0ustar 0000000000000000000000000000000000000000 b7826b35f9a94854b1a78699fcc8df83ffe012f3 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/eoan0000664000000000000000000000024715044127642017753 0ustar 0000000000000000000000000000000000000000 b7826b35f9a94854b1a78699fcc8df83ffe012f3 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/eoan-devel0000664000000000000000000000024715044127642021050 0ustar 0000000000000000000000000000000000000000 b7826b35f9a94854b1a78699fcc8df83ffe012f3 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/focal0000664000000000000000000000024715044127642020115 0ustar 0000000000000000000000000000000000000000 b88e68603bd13e467fb29f9555fb684a43e73d39 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/focal-devel0000664000000000000000000000024715044127642021212 0ustar 0000000000000000000000000000000000000000 287eb17fa7932b863dd7cd2afd889cfd8e6a8d9d Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/focal-proposed0000664000000000000000000000024715044127642021746 0ustar 0000000000000000000000000000000000000000 287eb17fa7932b863dd7cd2afd889cfd8e6a8d9d Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/groovy0000664000000000000000000000024715044127642020356 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/groovy-devel0000664000000000000000000000024715044127642021453 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/groovy-proposed0000664000000000000000000000024715044127642022207 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/hirsute0000664000000000000000000000024715044127642020514 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/hirsute-devel0000664000000000000000000000024715044127642021611 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/impish0000664000000000000000000000024715044127642020322 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/impish-devel0000664000000000000000000000024715044127642021417 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/jammy0000664000000000000000000000024715044127642020146 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/jammy-devel0000664000000000000000000000024715044127642021243 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/kinetic0000664000000000000000000000024715044127642020457 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/kinetic-devel0000664000000000000000000000024715044127642021554 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/lunar0000664000000000000000000000024715044127642020152 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/lunar-devel0000664000000000000000000000024715044127642021247 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/mantic0000664000000000000000000000024715044127642020304 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/mantic-devel0000664000000000000000000000024715044127642021401 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/noble0000664000000000000000000000024715044127642020130 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/noble-devel0000664000000000000000000000024715044127642021225 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/noble-proposed0000664000000000000000000000024715044127642021761 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/oracular0000664000000000000000000000024715044127642020641 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/oracular-devel0000664000000000000000000000024715044127642021736 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/oracular-proposed0000664000000000000000000000024715044127642022472 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/plucky0000664000000000000000000000024715044127642020340 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/plucky-devel0000664000000000000000000000024715044127642021435 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/plucky-proposed0000664000000000000000000000024715044127642022171 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/questing0000664000000000000000000000024715044127642020670 0ustar 0000000000000000000000000000000000000000 3ba06ba5b094d4503501e0ae95ae89226a8a515f Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/questing-devel0000664000000000000000000000024715044127642021765 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/questing-proposed0000664000000000000000000000024715044127642022521 0ustar 0000000000000000000000000000000000000000 35a79b88b347160a62cb8c8d6911ed764f9282a6 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/raring0000664000000000000000000000024715044127642020313 0ustar 0000000000000000000000000000000000000000 413619c94c324fb7daaeb63f5b6c1a1b48b4f524 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/raring-devel0000664000000000000000000000024715044127642021410 0ustar 0000000000000000000000000000000000000000 413619c94c324fb7daaeb63f5b6c1a1b48b4f524 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/raring-proposed0000664000000000000000000000024715044127642022144 0ustar 0000000000000000000000000000000000000000 413619c94c324fb7daaeb63f5b6c1a1b48b4f524 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/saucy0000664000000000000000000000024715044127642020155 0ustar 0000000000000000000000000000000000000000 347e3e7c5b46ab0e1c4b61874b74431a0dd1154d Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/saucy-devel0000664000000000000000000000024715044127642021252 0ustar 0000000000000000000000000000000000000000 347e3e7c5b46ab0e1c4b61874b74431a0dd1154d Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/saucy-proposed0000664000000000000000000000024715044127642022006 0ustar 0000000000000000000000000000000000000000 347e3e7c5b46ab0e1c4b61874b74431a0dd1154d Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/trusty0000664000000000000000000000024715044127642020403 0ustar 0000000000000000000000000000000000000000 bf0341ff9ab16a78280c0363a697e5749dbaf182 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/trusty-devel0000664000000000000000000000024715044127642021500 0ustar 0000000000000000000000000000000000000000 bf0341ff9ab16a78280c0363a697e5749dbaf182 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/trusty-proposed0000664000000000000000000000024715044127642022234 0ustar 0000000000000000000000000000000000000000 bf0341ff9ab16a78280c0363a697e5749dbaf182 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/utopic0000664000000000000000000000024715044127642020334 0ustar 0000000000000000000000000000000000000000 194a903d04bb896624d1fe088a1d404fc2f48e12 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/utopic-devel0000664000000000000000000000024715044127642021431 0ustar 0000000000000000000000000000000000000000 194a903d04bb896624d1fe088a1d404fc2f48e12 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/utopic-proposed0000664000000000000000000000024715044127642022165 0ustar 0000000000000000000000000000000000000000 194a903d04bb896624d1fe088a1d404fc2f48e12 Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/vivid0000664000000000000000000000024715044127642020152 0ustar 0000000000000000000000000000000000000000 a99b6454c79ef7da0e5e2ff9b0c95ca87ce3459e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/vivid-devel0000664000000000000000000000024715044127642021247 0ustar 0000000000000000000000000000000000000000 a99b6454c79ef7da0e5e2ff9b0c95ca87ce3459e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/vivid-proposed0000664000000000000000000000024715044127642022003 0ustar 0000000000000000000000000000000000000000 a99b6454c79ef7da0e5e2ff9b0c95ca87ce3459e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/wily0000664000000000000000000000024715044127642020015 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/wily-devel0000664000000000000000000000024715044127642021112 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/wily-proposed0000664000000000000000000000024715044127642021646 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/xenial0000664000000000000000000000024715044127642020311 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/xenial-devel0000664000000000000000000000024715044127642021406 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/yakkety0000664000000000000000000000024715044127642020512 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/yakkety-devel0000664000000000000000000000024715044127642021607 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/zesty0000664000000000000000000000024715044127642020207 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/logs/refs/remotes/pkg/ubuntu/zesty-devel0000664000000000000000000000024715044127642021304 0ustar 0000000000000000000000000000000000000000 642fab2ab9e50f33fdd596c1065f634e098e764e Athos Ribeiro 1754312610 -0300 fetch pkg: storing head autopilot-gtk/.git/objects/0000775000000000000000000000000015044415152013044 5ustar autopilot-gtk/.git/objects/05/0000775000000000000000000000000015044415152013270 5ustar autopilot-gtk/.git/objects/05/bb4f8c9d99ce5909ee1da857ae5852e5a0d3280000444000000000000000000000022515044415152020606 0ustar x+)JMU046g040031QpMN,.)+(a8x[> $49G&@ǰp^ ^ r2r.u2TZgƾBےbBdKRV0x$pNdK}Gh@autopilot-gtk/.git/objects/07/0000775000000000000000000000000015044414571013276 5ustar autopilot-gtk/.git/objects/07/c4ccdb6b210b04121dcf600844219132b43b840000444000000000000000000000005715044415152020216 0ustar x+)JMU06b01bY1?_[piwפ*:autopilot-gtk/.git/objects/2b/0000775000000000000000000000000015044415152013347 5ustar autopilot-gtk/.git/objects/2b/fdb35d2c089a1395e1e16c7533187d2bfff8770000444000000000000000000000035615044415152020521 0ustar x+)JMU021d040031QHHKOOg䲞YBҵ[g{$0It1#hPg*Js6EE o/=WRPYQs Ι}ijN*275U(*I-fHV;]}?瑉(%2Xs0ڼL&%% ,e{;5eautopilot-gtk/.git/objects/35/0000775000000000000000000000000015044415152013273 5ustar autopilot-gtk/.git/objects/35/48e9e1c35e2970bc84271d3c233b04df015cc80000444000000000000000000000031715044415152020335 0ustar xKJ1EgomDln%@UR)hwo] =P-u=#Yqôjb$&`QvahgRA(4[3oc,FqQ85Of ;fօ4z?աo裟8 }7߄ބCЈxna?1)TŲ;]YxSum4)co_IH!^̠eTضbp82/EIxJ;*y > d8(oT} oˢ&T25P c§{I4ϔZ!.C0?pw+ȫnQfs Bۣ^P_autopilot-gtk/.git/objects/5b/0000775000000000000000000000000015044415152013352 5ustar autopilot-gtk/.git/objects/5b/c931d55ab6ffbf91e40a948fd8fc76b1d7f9090000444000000000000000000000212715044415152020754 0ustar xVmoF#yM)\BhFN'xe!H5~}fg)IuAA Q.$ )ks!B?A\m <Ew~J\^`%6rEq:}Qo8 AevƋxǛ9cJ')\Hmy ث X$ L\ *ik`+la( í.fJK (%tی>r+2 BHRvnɢVH )-ݡ xAnJ)`BUQR)Ն֨m*M0O" WvgV/iWr<|P?"R!0s¤ a@ U} mcHShVxjɄJ4 qt>h^%] oZa93I@*e P9Ě z`tLQa%<1܉.\1fּЫ}^,uev{+UX) b|L61wD+Zx斨ZdC+;j ,ݰKn Ly_18^y>Y=Lϼnx6yosZOt2wWeIWlY`E*+ V=J^8[Q^5=-Ҹꂶ:;yNVKc)i -Y~.raBj//GB2!8ŢywO[Znh@a ю*5G*p8[8Ap+\%'qk/sZQ;1pt]8 v#cRy,[pb})f|=ǘeHJD2;v; ]]6aFg^VV#ΠEQ^IVyCuk~,ӹ8&|NUךȏINS?ۣ͋iEޓx ;C^+autopilot-gtk/.git/objects/74/0000775000000000000000000000000015044415152013276 5ustar autopilot-gtk/.git/objects/74/46711340362dd4e8bcf101d7757bf6f52e09ae0000444000000000000000000000041415044415152020343 0ustar x+)JMU027e040031QHHKOOg䲞YBҵ[g{$0It1#hPg*Js6EE o/=WRPYQs Ι}ijN01- ߜ{q+bU $49G&@PV(`{ŞK}\QĐwy쮓={6ږ;"[ ^@ͽΘu~<autopilot-gtk/.git/objects/7c/e1a04ce1c8ccd0839597f519e82ea84d4db9ef0000444000000000000000000000022415044415152020743 0ustar x+)JMU046g040031QpMN,.)+(a8x[> $49G&@PV(`{ŞK}\QĐwy쮓={6ږ;"[ a#s"\_\SM]?F;/<autopilot-gtk/.git/objects/8d/0000775000000000000000000000000015044414571013363 5ustar autopilot-gtk/.git/objects/8d/527163e306b10f74247cec8a55b108f1f42a8d0000444000000000000000000000022415044415152020333 0ustar x+)JMU046g040031QpMN,.)+(a8x[> $49G&@G4uLқO<2C '3!g]'C{l[+-)v*D$h.;{-b gKϝ1}::):autopilot-gtk/.git/objects/91/0000775000000000000000000000000015044415152013275 5ustar autopilot-gtk/.git/objects/91/eccee8da6838aa874c916e08cf0959dd1f8c220000444000000000000000000000020615044415152020667 0ustar x+)JMU042d040031Q0000uˬu qr ,..MM|ݜl4Ғ̜҂Ē 蓆W? ה6^ 58(3a ${{y3gXڲIPLeR(qG_Da$ S;R˟p⤞ u'wyr|vK}&25Me I[%2̷Qi"dzoêZ$a)~KU)q mx@Gכ8qqJϿ{-l.E!r$++&9lra7zQk)W⸤vj>oou͖Ж~>BuA?*: *s4KUh=JB`Kd)*]ױfw<FE0?/EXĕ8li E} \#\g8Mpf H{TEV@Z,U$P&X YpR\i+l& Dz@/Mu 'ʅXLjIDϗ.D%V/t3E b7,)B͋ppG*aG7AO# 7rLPQ.lU OsB9!r,OJh.^˂6t*;jb]$c hl\_gHRf0,\x*\EGM)&6daFpxa&)DӭGUѶn6;;3g鮓$rVƈ%yoNUt".֫| -* [ʒYHmU$Z.A%dV0hR=) j|J]&\S Kf~"Ez-[縉 7# w}9`a4棝Z \T'U6h G# R*ZjymAi3F[,-BNy=ӰR'^#탿v[Dǰ+|0301 +G ˪דJ"] B' >DDpS٪T1[tLGf(UjD I L8zיA*:]8/vll'g WpB6!LDy>&Hz"VL|["^bx91+`)mKAw7pj""F'q,SqFcDI0G88vN]CQQSrŇ3s/B5OpHI$,̑+1+:a>8B-@E[\oy$MP=4njQ~ >QPgtٛWޟ_wc,1I2)A5*ij"(KY~AxjQS K8#B~vzדGy;=SOԱymW` ,)Cj0@`]51qM',:b?Ut @<]ja znN\RZ8}kvQΙ3/lApt44!"58pz, 55(H#~N( eT5*1Yr*m qD\]2E8"pN|dz o -Np߅0].221!ZOa 6":GӗC z2Ex"5JyHtfDZ4qtกJo &'XC##E.=Q'~=# >"(Y2&5"?YoZ~`j ;7wOQl3LtD^; C]&5nՆ:6:3A57q_&7tw\Rv&o{>5S F=P2%|Jg5WxSNVK5 q`r+"~=k ??*!D9$HfH}M ~<5"=];ڜnc>c.IUҹ堕 ;yM*p8颪rrxD:yR)O05ia>~)ѕ9tGȒ{P<2a1 ܐY+<" p9}\ 6!%*kpF@ WF$JMt¿%{ZFל >1P(Mu`a>*L;/6##qYWh+8.:R[=ܑVdA@9 ;iMtdXXێ21,D'kngQW4u9I1$̤3?@.VZiUk |䅬"Cpж`O"f!xE %m``DBۀUYRf8MGq_,;p_*!6_9{G(͐NPi^\ `hBg۫LuD"Ж8n" ixD7)WfMI'بfuTi:xY-m(Ƴps å N`cW!yb @Ft:e > D $"ERjt^(oqƶxä-}jIplTb!x,R7#5Qz)ٰIgWᾜhЫ:!B-^Nm.e $UM1qZ,je}cB D6 g؂tGx-@'3z:2h$b֔TD]:&̠ScJ6bV9nodSQEV sP ޠ `6B)^naBW`s5 ޺8< Wk l1ZԶgs:UG.aSc1!97*UE@OôCG#O{TN>u;7=/EvU=C_wY0tb`B]zPZ3Jgw"&%p>w0 Th7|ap?&2Hzfy~u}cBM>o|@G%W;9؎īwxuI1s5˺lTgw؁y3qU%<᪐ʨj]3m/ X ܯSr嵽ZVtLMK_Bݗ~ +ݽHa>7ffVchX5 frup\UԎ~A4ӴPR*'kLNZ6yFQ/4QiSG"}ؙ'_Y Bˆ%`eq#fhH, ټ>N Lzp%]Eˎ=7‚igXK7 \T5}Qs[x@CċOfVn7.>C(C:R&´q3y;[h;^Fn.%!@vr0 F7$ǰيtC gmK{}; zxKjhSTx.0lyK v`/ϴ#}A .ULn\jG dzؤoL;v'M8 /ji?\Hs/KAѣE!A 4iÏ%糖 M&aS"d Lh,>c ҷ$'++ߧY&$;Cfa+A؝fG3 vfl $49G&@Pn)8;??vSæh:$cw ٳoжةْT ?n-l-=w=%autopilot-gtk/.git/objects/9b/0000775000000000000000000000000015044415152013356 5ustar autopilot-gtk/.git/objects/9b/cf59b09e18f66607beedc754fee7637ea2a5280000444000000000000000000000011215044415152020667 0ustar xKOR03`0000uˬu qr ,..MM|ݜl4Ғ̜҂Ē .autopilot-gtk/.git/objects/a0/0000775000000000000000000000000015044415152013344 5ustar autopilot-gtk/.git/objects/a0/4c5f7e877e637bddfe0beb0a4cc0d861b1feb50000444000000000000000000001127315044415152021140 0ustar x[[sFnQ8$rDb\D1t)P쓿|eR`s4US?ºRyʚWWkmYU{ߵ,$ b.hRI!ɍx}y*BeZu*ōgDŢNlD|?a-'BC2IqHB|ʒ(LH-Ⲗz.<ם ܉ oz)4otZ'il2خD>2G-en j-UDZR/ٺ{mXM\o{ݷ)=-SVE8DLϳ˩E%xR^>۩E7[v|2k@[L } 34̫.T.eV<+ mn+TctfB^3O l`86/NL(aW8j6p@pLp\;ޞ7uÙ) uۇ3SLY+0 qtYBVeq3жwy&TG3Xo`kY 'z1P 'a-e7Q MT6eTR^z9C!Ly&JjXSBJ U`b._ة,vO8#JFpmNb0 s{w`ZNb#U.NlÅLS)R*: YPLUZ%13"R]USuc˅MƬ"ksrR2Jiu|S@Օ7yDI)2IVΒLeOH,dj͇,S7< wXԸ.*Z`aKU B2b/aZ q2QP`cgKeȉr4SZ5Q" .)yo86ܑJ`оH=Cl/TAy [sBBSƜ/dN w87lD"?gⲠ J NDXɘ(6cA+'a"* 1Wtp:e6TڐqRy.C!)>Yl|M6z%VE۶ tKoOzN@;nNx˩Z#ڿ:U҉ XZ0,@o)Kf2RI\[ߙgKȬaФzR " @̥1L9,A`EZڷqAnFX!r &hL@;ȧ8Om&FU"!;\60ZPg0YZ>;zTaOʽFoW4ɏaW$`g`c`0W0#U'E$\' >DDpS٪T1[tLGf(UjD I L8zיA*:]8/vll'g WpB6!LDy>&Hz"VL|[!^bx91+`)mKA]z'&"Vu9Wi4FsTe:jc5E^1U*o .#bΈϽՠ>"&(0GbĬPKćmk܏r]6Gy`4Awg(!E%&DAġu/ʷLy(B\&|*Ae2"d]f``_ݣ^, p#p iuv̉go^}z~yŏb`p&ˤKըLϊbpox^O.gEM1D,TdQ`&Go^OI@L% w< PǎI7&c|^uHBWH t\|D50PCf TT2%etK)99qIhF G:g Du,SM'3t$ 9FK6\R_xgUb)qu9Q|= {14kJ ;sU|ðwP hj="+؈ (WL_2]O8Rp'0FG#fҙqiEǥU*r&8fPk` v0AtGql,~0d|\fֈL8Zdi}0z(4މ?eXGڲ^42b"j{'gB,t uw@fغU,q8~q9rK1tZۙ}[O/|H A@ɘOxЖX@(9 _M9;C[;.p/="ӃY˭n{3\|sPZ#!H#[5YmԈv\hsy̏$UIVJP_gr(B5rU㤋ab,Za `TKLr?u.8֤D?"KCAgL"x$L :RFpCfbg(bdvT*….R%r%s&ؠCL 8e\<+59 BHthiM]s&xB43H3w"GP D=d_:"dHm>pGZ0B&$7Yaam;İQCE&Y:cv\|֩$Jǐ`2Z'Sr\hZ( jd~ˮN$ }WBۂR<*bZesQ cBAz mJ*7I|MP*i쳖 ~ M7Ş# 6C:Ayq)@Ś" tn3iarp[C[rI*4E ܤ^M5'cƣ*թ^F'GS!5Vg DqXVϝ2 *f:^QD@5]ZOw5PB*, -shYtHxz%&W (^jPN&MزiSPj jHXxJ>ތDYt!cd&͎#]EwzMB\4r{9)~P+%Z/TE6Ĩ+>9& VhC aj0dal֞b'6b lSJ"VtwgHR$UBBZSRqQv0N)tYQMGY5$ϥC*x., 2x _NRfք+x^+x\IA'[*xojES۞Vo DW^#hMqǜֆl TU= /^+ymlp ~Re3*9BAm$Fw3dfT.ju5~r }iw6fDwwv߽\J*;'lwṐ^̗ >ܣGKB@ h?-Kg-E433LM<#E-X|0O7G;3oI^,K9?V@OMIwPwVl9@';gt?0yfxhn)aA/Ran ]3oNӘqgsCAm[4 ]G76k6`$L05W%s^autopilot-gtk/.git/objects/a5/0000775000000000000000000000000015044415152013351 5ustar autopilot-gtk/.git/objects/a5/e75c1cc5bd011e9fcdc1769e2f1683201638050000444000000000000000000000026015044415152020412 0ustar xmj1 Dۧ䵽! @]ǹ7'蟁7mk!؏TAI3+O)L X%آSӽ >iV.#N~V2 г/ב^™^xjo2u_n'l c1':Dsٮ1i]+B:_ZRautopilot-gtk/.git/objects/a7/0000775000000000000000000000000015044414571013357 5ustar autopilot-gtk/.git/objects/a7/106a38675c85f84bbfd6a460d2ac2db7eed61a0000444000000000000000000000035315044415152020717 0ustar x+)JMU023g040031Q,+dx6M9{wk+qIODb콥 ^^/yUc OJsS @OWVO;WYqAQ~AjQIf*h:z6~i&+!YuyfJzjI| # -^+P'ifCV^QX_XZT R[ֵ ֺ-SSU_{vrGautopilot-gtk/.git/objects/ba/0000775000000000000000000000000015044415152013426 5ustar autopilot-gtk/.git/objects/ba/c365ef71bff21fb4def772e5c7dcd04afd877e0000444000000000000000000000041415044415152021234 0ustar x+)JMU027e040031QHHKOOg0'|~,ˢ%w2Z S[X&9nj GÓCMX=+)aZz.Xd\IAeQfzF C΋Ή3 ;gyH\zd;8$g3L|sŭ U>8sFޕQcnjPTTZ9íw?n]##Eɩ 9)̦v=6/It3DAIjqI1K^ńNu| zzD>K s autopilot-gtk/.git/objects/c0/0000775000000000000000000000000015044415152013346 5ustar autopilot-gtk/.git/objects/c0/363585b49dd5766266ea76cd102e78e385d71a0000444000000000000000000000025115044415152020300 0ustar xA 0E]sˤM 0Lk6%[nx|2Wh=Ԣ et;DR}GoRL.4DE i@d;Q0&()dG6$e;_pK)?y Ρl?3% ug;Qautopilot-gtk/.git/objects/cb/0000775000000000000000000000000015044414565013437 5ustar autopilot-gtk/.git/objects/cb/86aa58fde187f5bee0d4ab9394bb55898c0d280000444000000000000000000000207215044415152020746 0ustar xV]oF3<ب4nVeY"%mTU4¿@DmSgǹ܏$R'twgH>&NXt)vԟPJ2V9mZgԯZ+c4ѻJ|R%rU=Z; Li%n]:b-,F +s:w[ftE)Sdx&3"'ሩ :aJeܐ[sf +7%p NDnEʕ 蒘Eҿ5(ծ#eB# !z`F`^hy|[!%%*JvrA}fg؂i o"aP gOߎFFd8~F}g`y۟t9χUM^k8e1!mS@&3Z ,)bBI;_!PqNJ.Y|vmRUͪn>j6mrcGS}&hۦxԡ`.]`UL]c:A+/0{F'W~ 6hU دHjYK7~euZvߏfR 莴M8j -rC* _"$j;,k^ ]u9ap۟,7àKA͞kߡq/r" ר!|)[Š}CeaǛxIxZN$<]EN{oLGPq',*ozPe x 0jВU*]ǾRFmk[/&qZ*^ uVCx@ +]NCGLGx;߾~-A.ݍg]~Ct>%lS[\< kV_S[I0ܸvC?D+~Tk-ޥn)Y1~ Ïe\8dZ8^ Yh(Ū|u':"[) J6 g`ϥq]{autopilot-gtk/.git/objects/e4/0000775000000000000000000000000015044415152013354 5ustar autopilot-gtk/.git/objects/e4/7b4003a7ddd5a6fbdc265dfd9a0c49a4702d0e0000444000000000000000000000024315044415152020764 0ustar x[ 0E*<')d2ŀiJ9pR i;,y.BPA3h.P9$DOXyOnVCd}ǣuy;&չJ>gj"u)XJg9#Fݧ=Nautopilot-gtk/.git/objects/e7/0000775000000000000000000000000015044415152013357 5ustar autopilot-gtk/.git/objects/e7/3a7b3deabf29e33635331e91d0277e051d0b9d0000444000000000000000000000025515044415152020475 0ustar xY 1D)Jg$ W<@gg"1=? eY]"Y#&>:!s̶3zP.J֋Iљ{ڌP{զRs8g3e99&أET[m&Өۣ&˨Qautopilot-gtk/.git/objects/ea/0000775000000000000000000000000015044415152013431 5ustar autopilot-gtk/.git/objects/ea/de4c0d3b74f8749a669bcdd1e1b8d3fd0d37dc0000444000000000000000000000022415044415152021145 0ustar x+)JMU046g040031QpMN,.)+(a8x[> $49G&@Ǡws,KjQQĐwy쮓={6ږ;"[ ^@ͽΘu;autopilot-gtk/.git/objects/f8/0000775000000000000000000000000015044414571013365 5ustar autopilot-gtk/.git/objects/f8/0a2e5073dc45b38d385d71819b1b9d9897b5ae0000444000000000000000000000017615044415152020451 0ustar x+)JMU042`01Ғ̜#gng+rɞOpQhźT!#5''?>9?'HA❥K.A)P LYJ4j޹hxԳ^.autopilot-gtk/.git/objects/info/0000775000000000000000000000000015044127637014007 5ustar autopilot-gtk/.git/objects/pack/0000775000000000000000000000000015044127642013766 5ustar autopilot-gtk/.git/objects/pack/pack-fc7526389a65a0404f2900f2d057400951f89f35.idx0000444000000000000000000003735415044127642022426 0ustar tOc $%')-1599<?BDFILLPRTUWX[]]bdddfgiknnqsv{}~   #$(,..12488==?CEGIKMOQSUYYY[]^cfgghkmnprruyy|   h4!PG+<{\D9TJ)=ħ@qDQ yJr:kr%۩wI'=; ,oZC*L7qih.놬ul+:eWD9d([*K5bH_|Ѣ_v7!`~VGRR)VܭԎ]u>_sCVݰ{_^"ί*ԁ?RDW Wem)hv^`D=1 Ln} "1`!R F'Oq$菰Z(95a*H /ŸewaTP ;Z}Y 32 `Vjظ;3y"9࿙wp؀}q*#1V/-I}GVPtAmv[C0 Azn ;F92xP=L' v}[Hf/˳`#Yi#΁rjgC/!m"FoVrt;cݴІ;N{J/ jW7@%I^v6˿(HiJ=f$@Og56 wT.7)?Fqљ$_,ʶAXIҧ;쩌JAhץ!u8!%G o٩t:W9 O]8QϖԼ Ƣ([1#dEW)3Kuf4/G/X:b[H[Vgj^|L._]< ,ʈª^V8oTzn+*-!Rw09ޛkw4O!,$Jem#!HtniRyIpu!Ҽ=![p-OGx"g81BsۡIغ"ekg:H2m#M"\!d$@E:#٬hmbUOK$ 2ud{Jk{x%w,zKi#[D%0X cOU> K&hJ.VYc8X ' ol0+OT'aL@̀0',aC< F^PDP(!72gZg\(~+=*j* s (l%HHaWS*6+ϳuv()*r4 [ V%*4\7)RBED*R[R0ǰ+P&|G{IEBi+?dʎ)o.-so|;ͮCI.RWiiǢd/h{tUgA3%Aa0Z_|+hbLv̑70ؚiOÈչ\1Իn?6\1p,;.k<*H26Ʒi[Gfy& O2}f=]io2+-7š03Ha4~>|[FKaKtC M4/A\x'x2t੥4l=7bueB5HpLҙ(HB5G bˌivO6&UrYr}n tDs6eQ``Zq0o6i9LE\+!Q _ 72=TX,7=^:km>ZmP7Y˓|w)b97EL\ApZ7ҽK#Ve8)3ǡi*O\`8՞hsyA9f̘M~.Bמ^:Bɳloxlі:T$JmgR.]B^:Y:=-"cJ:`FJP͕`xӦ J:_)Fj; 'ld5>³`'u;kP5க"jQ_=rK$:c]`ʮyQz=/wҵ-Լ>#M^osQI0?!$~6OK\$,@ 5daO.|׃@#b Ik{*@v5aßhn7@ r\@r+-zt C`2A1D[C9iR6mA6L2Oڮ?[lH$Ar_[{f ͱeۯA]0slGM 6AvZ #&3ÀB[kߴI[զD4BwE.b3B6._Lꬼ^B/FA-֫(DDQHny_p1/D`'{w ;=,F+}ذA%[`G̜0Jט^Hؿh/k90ڴk|fI'm36܁% yIM1gkycPfMWJVCt,@M!GvuJw~xzK0"J2=KuF ;@||kK]Bn`K֒ILvuc`+ L*:yC(߃LLVuڍ#6s%}N!S"&܃S [Nɏ}?+A՚ s$N"yezIeIHO8O%93:-VZOM2ry({M43^eOjwPR,BdaåQ21c#Str"Rb@g?nLW|h )SK+&E UF _K9oV=ew|b V+ȫw%E쪹8OoWɋ\63!WT!Shf|$Ylw;eǛE_[WY6MtHYӢdޠ^YaL3D[oSժZO]vZix{`Zyc.q UF7\̎fιv۞8vhg].3USCh e$e叉^NXn"LB_L*ӸȦ_fF]XeuQ;!bq_JbtfD%&hh`oTۣR R0JH`HN9` a Jx0WR{PB\al$̥݁8675a\3gRYC슗aeN%,)hO2@^b$!֧gJc,y()-g.cN)*B6J%CEfd/*3Ֆ_cN vNd Bh^ysūe87# LZMpi."=`y 2fh1+0nf֦  [w$g48&Noϱ6hC! աf۞("XBhjH9>vMfm{iaH8ybdM8VKi0{{#YiWkMIM~`S jeU|}djhNȯU3>׵[j:ʕģ+#ߥjظ~iBiSkư2UcS^Qk~bZ,GPSNk}WA8 Rk=D&%,6eLTNmt/7ǨhnbTƷF'G^n[ԙT9TCLolvM'RRіpM8\}NEx| ybp % 0~T9x1GpndqݱjՐ cpQ|sX0ErmGaaw>[UGiryY㨺Npݼ,r }mvslVF66b2sQ^WnlhivWs-c7{١U5ccE?tǬ?G+V V#tCY"2ԉvJuTМAҪgtuȡ,G!#"^۳u'Ytl '҄wŵE!Z?Fopp_3yHw:=lt^O%ytW!]Q7hО>ydhix+PwH><$y]ZjI,5^zU(RTߝ\@%c[^{AO  M|$Ž!59=\P}Aגd EX%.OSVrՅ=,[C[\2b`d^v#⋁]!dtzOY.kkrjF *S?8-;ꅜY /)ibIF5=|?3|[Y~$+)rac银uttpvnmїժj\I5Pٕ0}Z&"# .FN? ]84A{GezlOzC e#]i3'r_|+.mW$n Կ&$_vH.CIfG _JF^yge Pnxmo0nM֡+elq 6YH~Av}%@q gi|DZ輗y|88~oyG{V"o& 9B8[ _3?U2~3T}{5od \-bUmw0CQG~sȆDt:b;;ȂCOfKdh`$"t`*2Pw};E,QNk!71 ̂V?b7%_#;[,\ϛ_hANkmED+9@¾\w8?{]J\TٵlL 9;SnO/@^;*='5EWFFZ' M.;Btf~ۃǛu.٥} z:kau 2ȳK4} &RBN GT%| :ƨ$7 xS3q $G'hػ ĵz5\s "$>#bЯ EҎ!OMg-[؇M~su ^O : N!>O{/]=ፋrVdTǞ^/\|E0 x(;v=~>ˬSAwl<_x{I_nʼ,yحxWUAnc8ʌP }{ X_ցK%с;lVEmI]$[lrO:,7Jlpa7.j@q] C?3$<=w}'hիSӼ}D 됌!vbx *G߅m ,:ZCA#<\ !䌗C&gz5 9WG:MF͊ 3dW+,l'b] q~H[Hq,wĮ ӰlG*yc:|OEmwb1fPQPB O"ĦLPUE8|gPQwuU~ۘa\P^VҮiaT $|?H!-E bJ 췂k5HT߃h`;>FUhJC=9$_ ٖ߽ ]պ*mgY+Eئq!AM}n0J2<+06U, @F,:Oc:7 W7KIi(89ka{jkWC |a . x 4MªuP_,0Ge5$}'!`ol@kĞ_܍údLG&QLģݟ8I`N G3-ߗ_$G-\a$cRun g+;KcՏLiPŏ<'MZtyƓK榡\(T&sڻ*`Jp06ь%n6eДDLj$qF>53UnN(+MbȘ(_܆Ky4LG"iD vɠ{}z)f%C#||rp:63h.ӓr%b_HqŎ3ޛ̤ȶ=4 Unɪ::qr~V:3;͐I{)̠̔ hᄐP_ry*ݍ`iьSf ͌q ؼUz&+D[Q &;>fbte F>K$UC Yz;'[||sk(w 0AБpAV-Ғ=#OӪpڛ] - & `D%WڝIE7\UW݉cM|ttc qK<]4Roܓ gYvwt3ܷ˼@*b*At&t?ତX@:΅Q݈'S]e|&w 1_m#0V>7a@8Sqsy!no#qAtދ%MҲ 1OkَϹL>Ԍ葺3mšq/B3wHcsK75dɴd4߳T _CAC2r¼aG)E_;2q|咵_JZ-p䠴X %x VEDʄN(V(~mpU2B@PA!i*G_kVOF@Gaڀj>ۚ9ӭrŨLc*'l|MHt *4yߢXJ|+Qe2?<Pic SHr.MPc;]YBa~V" k⛲CK)wZS܌VNcBO՝Ìi2_(gI/DI? iԇ J!abW{LЯg!cO|{ctG,ev .SbUx;xj~:? ӐSZrZ޽|5fe~H*ɭ&Be$|(Յ{g ڜGEn8 z^ժДLL5l7D'5g1BTpau=%h׍uj"g jI5o|[!bl3iӒu/>SYɨ[F 2Z:LJj~VR:H9Z]֑٦i;? ϰ> ];P3fkBbӴH3qmg1\nr Mk2W-2CxS6ʯ֎LJy|&C=xqP$TwC܈^1iS{.pL"'VuTKjsMOi!f>f b`'I.R QSsSʨ#E阅E2I)"Sbh]# 2EJ{*HTUZzHXO"ѹ)I\Ai d$:QƷ}$}VPkC0dB CUn7˗8`IAwx!$.ޯ|$u?0x4SHA]hNV2"ގ8 V Ol ;ǣcb#M[!Yx|"P67]q`j M/YK!Ys8i,ul灱(A4j鯼 2@c\ 9ԓ4H : _Q!8Nđ#V4;1 3ݯw$R6\T4ts:jGޒ{;M磌 ؁ʖꑣ¶BXIEAPBfӍA@DB*6fiZvׅ~lhLJt\Ԡ)ٙݙ݆w!m,%} A/kKa:Y؇)0I*]?R\VP/:3N 5 O3$2&B0L~W#$ֳr]WP~p !Nc&(Co[%28sLA=_7Ke3wM vbpLSo0hiHH[F _AX~/`g]0ޣsN1(éF`R;@g4Kړ: rqD=*%rG4Kqc&e$@1M^^l/}C$^X"$Yw%STJRF{eZ$ "cAZa{ϴe3#u^{܅my§yWT&‡Ϳq1Dq 㸲6S8/F%lT t80K{Jܾ5v'hS7&ƤH0}ɧ(p: JS.wË><$7^*4A;':/K¾9m\6{!>?Xk@pH򱚐d-р4%uODY|Tfe!Fo./ŗqw C+7첕ZytSD蔞͆kEE~`ש ~?q؊Quw,⾫뿐 N\Ŕy5;~o=B9̜xo:{^)`^+)g3/h.d0n1V$€+1.eW?*u(A[ħG\iobDGvh뙵'cd'>ɊR6;[xBI }˚raC8P&yK}rL^z# 0mU^ _ՔE\=>>_%3qM_m}-L#&qշgHs⣿/ tDSx31~%|y~@(;6[iQ狒 @ ZM5e/9rR5op|.CathqELTHBLVyed; }x3\D_IHX)lvMʅ]vbO*ơ A1;ko; w]<2>/Bulk2eG3nv)l an'vsFS:n>kPg,Qg 5w/'zW0^T5Mm^E(ۮpL扰-RRƫM_o{V,f:-HPC{;rI #H\ !}{g|e5VN7/5d Q }ec_.HY M> 4#l5=xl>.x{U.cz''hm0r}m=Q"TEG:XQ^63uDks R!I2uU!vdT{4B9&wVD|!{UF"NL5w&}N 4>@h3A7lX+\9Gzhi+VJDV eps0~4mMR2D q&sOth:Bay=u)`w ;xE*ž?^yAJi9s< JM_=U!;^O-R?4;dXQPU "}cO9HZ?,qY{3)Gg;j8UΟ9<y7A EKfRie]m`^j&BPmfk(RXrU]f8w1fz;w&?wo35P6\-S0Gf(t?!g%l^ `zvLOB?=0W p$p^}C9]Ӽ L~k=6%>l{OwGnjfhg4xTh:(> &n<8 3p\Cr2U[\Wz"pr&B<sYb7rlwX64v+]{!=\8C y=mW 75wEYuL>8983xOPuKY8Bj0w!z=SEM S+_uy 3?9m]ECy7M)G4)b<#P9B6z"Y4_RVJ,~Bv2;G u&8e@O)W@ Q5}_autopilot-gtk/.git/objects/pack/pack-fc7526389a65a0404f2900f2d057400951f89f35.pack0000444000000000000000000042150215044415152022544 0ustar PACKxIj1D&J3##}Ա `L)0LAioFkiN,nZsE͘Q.~WmYxa<ژܞbMMJtgz0BRXxy,]>*S%?p9=6Lȭ0 L"exAj!E}ڇn,u,@:jW[GNw/1Ym z"/h$"KZ)&H6*%Q(Fg:ѿj8J;:76?:#%RKNa_R= ђ7Iw9?8}Z[xmAN0 E9E *NđFhqqiդx_DtRo@fه9F8R&I(:O3v & Ɉ|p~8Ğ}oۡ1ZuZ6N~"_5< cAV-Tu.'h|ܤ\K-?1{RNuh^9KzVL$ߘm9sx{iYbqbriIqJQqijJjZJZiqqLyM,xmKj0D> F arǃ'vUe# + qkƠn6i)"&hG6F &M  H %  kۺB>a!ӝ]wӳ_K]Xw& wV;{GcS)14o.ZL9ԜS%wa{bN&enl۔_4 9-_wjsvx{ɴiqRYRiIaAbibYEiލLy8x;n {b'[,?E4r , "nљ!L{d<:XX쉣EI I 9iGK^Y0އl>¬ckVwxWZ󟭩PDH- h-jiˣ<~]yT[ ͆bp׊_ؓx1n {b/[^X(]&]~q!<+7lH[ݲݴQ았:)#{q#yu>蟵xMQ[Os9ֹ>gNE2Nm7.07 _T B74JZP`Cx̴iFQIAjqieZyZAEQaX_&3k€dF%^=C=#CS#3OUFxKj0>Eܒl!Mv9>-"IFfr\P>7wq`Sn:lUp6bqUrC"e*N wK>ѿk/7J:|䣶 ^PRmy[jI_+)des꿍NqvZ@,t -@(` x;N0bD^#!Dh8Kvp}G`bFg-ml*m=ZQ0':Ch0IĐF(G{R`u y[9[i^i6B#ݷ3F&,Z}wyo5:S/Wnp7ԛЛP`.`xKj!E絊7oJ|~J2 dyEV K d s9щ㨢&)&.UAS.c9|: x1m^I ύTrn\ :|YDŽ<2ϴ?ZS[kk}m5GgWmCJ\o哞0st* S7T+&墰 F_gxKj!D罊;m[!IfYUDxjc{d1%fU94RA!gZ J Tp/'6*L;9/6Ơ=i>6to{>ky\aMm u-c%ymΕVYxb3\s꿎.q^fSR-6&q`BxȴiAZEYyqqrqarZQYJX?Fk'0jwxMj!}SG!Mv90jckBnvU|#0(Br4ސ $WjXvc8$剈$q4 ǵG鮈qsZ/7|;#Zly[[7+RHQpags-y;]>=߱U`bc|C` xMj!}ڇnʟqB.d]PjIQӁ!o|})qTVLSŲS: kJ mW|"Aq9ZO?Z(^VsZyqF ,Zuw[t-eNJ C(]-O $N ӖBz_ 5y89k،! mэhFQI0c{Hd!k{O~'@Oƃ`@P [H2Iަȷ2-}*9%в.9܅*q=Ao5.ivoZȟ5ӣ*o_v~'^NKj\\jLc 7BZXӍ}_2ӫV~m&nxej F>]?QlKChu"ߔ,[>Ω(6Dc NH~B b'vV!XK. Iʌ1 .:u *$c9k/BpV[?)i.8g']St#BZ|:_Z:LejܗTj_ԞcL硥N3h%3u5ZIa˕xeKj0D: e,]B.ђZ3 a9lYM^DI΁PJ%S$W*G2vPoEF 1X0zJ{2飐Msi7B%(íN.5Js9oS0\hk4t̵o6gq#A闆&R>P'녅]c5-kS,C|+y=8w5xeAn Ee0 EU]^bCBmd-uCZ5K)Vq洕 .:m ,Xit ޛ)2>A/\cH!%q'/͵ޯ;JjT)8cds7z;_irnLo\>P5\=!{F_2TB9+!g}ixeIn0 E>- H@Pd@9BWn?> "m^h\,:m@S@87Hf*`bE2ȳ\+a~pJvhkSdDJȀ'1[!7WV$rm?v`GMPyEQ@̎ N^v+q_v$Fk^oatxej0 E /[˯0'[ɘfԏ~ST+q.HqpчiNayLs@d;ʍ;fNcN~7gao;?0cmBc},sځ~ % Z—Ԇ>:O}+z!7CL5Zok3O?0\ BIrTngC[xP=㾯+cf佦Ffؘxen0 w? Q $JPn#1%Q4XzɆY*G6 LH4F;`\ !{oKmľDښ^lqͥޗZkp2.,RHIi:Rx{*쐦uٞZ/[J99_ǔK[ UNPw(:)PAV/+ܺinG"|ߥUvTxej0EYIB *D`KF~c\袳gsWD0*j]@BԳ(@, it3dskRI?s c(oϳ7 ;TW)Gp=QW\rv|Y߁KɴB8']SX:n> [;ƅhtݿZ'yjl+vf`- +!3h)3ixeMj0 F9-C't-xqBzj>}j+QOTxQ8*'AFCJ1gF6$ǝ%y2?>ZTKHhVyvW60/R&KoT>R9Ve.c|a aB؉Z]RC˼@|Dv0A=0`W %' ]v4T.Bz0xeJ0}Y*L:mS[H4 |{+U<0ߜAq2=aA넒p6,y:q(3YVвy%Y\Y(ђȕlt-=RC`س ט7.grɝahߙ}{$T=pGnNpsmqOzֺlj5_-~ vtIqU+ stޱ}l󧅚]_}kߔxeAn0 E"V# ҨLbf2eP/uQ/~v^UMݐ}oѓ.XffȢEVa+[+Mzll{aװ;mG&aP;n[K m![Ϋy)o&H̪JRs^Ry#Nu)4OXb]ۡ9>ŞcκKvH}ן|eO|?-:`~VtB* ;ml[±i쯚,5<q1-3yxeAN0 E=EQ+;MD!;hӨI=E/ߗٙE?($)GKkQfr0X$ZbD;"zli‘cOVacʢV%-TVW,5eeQj س`5Q{VpHz$%Tj<9j_4H˒tGP1#ȶwlx~V.*=52/!i~6Me|RhEqY*«8V˼1|\rO-Fv uCžPe.--q|m}1-t|xmj0{=Ŕ eH嵈->~\&S~_5{s&t Jj֛Qq3rc$>V03 y҆ Z|Dbz39ѭ.){B>˻3筙k6mo$&8\!3CN)mO]O9kBJ-X{! %x|O]W-}_w|Z w Xfxmj0D nI07,9'&oUɡRg m{-{A^ !EV88xC!z ( FC2BRaq<4dtAE[SdwZGi_!Cmqnh Ý(oQZwL}{RcJ{V?V{c(-$>l/+̕Ӻ%WZ- lt*xmj0D>& ZZ Ck%'>&}GuUBn p8Tf qQI^`Yv+${T X'ECFMTh&<_wyxeJ0EyT&iRXW?H&6-M"TAp;ug.c@4a2b&EB:v 6sP@e6PhBm'%|udi; V7)9Zzy͉Ӻlҍloۜ8> rlFJ_fkxmj0z [ͮVrWPM"c}5={i+`|"\"c\A)+d0r&|!leU(2(Fbc@>@ -UǵY~qylsN'ADw*o ;*˴9xUU3I;oY@X]S(X/ =ði° ?;kn-]O;;_V~gWG jj$=?N)O^MZ N:lxeAn E9V 04zfiDT*uQ/цL^9ںR2 ch\4L$@y@ZA`hUcJjH IʁUvq֮V"鋭4Vb7*)Vy2pa0F3(%c'W{nVvɭi/#}\Vv\hB*)aGF[Re,Suoȶ5z=xeKN0D9Q,X!ΌX q{Ă^R^j*7NZ Mn i@Ʃ@ ͂~u2hܔcF*&0X_J^}1} !96a~=z򞣇D~{"\zIKN~ӝbX%yx+{f?0!6?گFĩ:qEqɹX)@Wldd(%E r2Z̗/mזxeAn E>VRTuR[WʍT|i+)yt&8#ʌD FGcPYZ4)8t@pR{)DE}Gi $TLGV&Ѩ1t˼Dy+OLiG.uʵ!RK4 q-*Z>ݝrksnKmvA>0_`~A@pdO x*hY$77xzCx 0 @ :y,Ї8O.uv0<#aV))II-cn=J7KBT(uꗷ&burRxˌI(3Akm,3)<>A`ޯS$wxeMN0 F=EQ8?uF!83:iդHܞ2},y Ĉm)@ kZ-ri!b(Z3 hNơe ym[oF!?C $c&vy~+m%V*Rw.)V@e.94$@҈#Jq{u;x2?r>'O}5ln>?Z'5_m>@Jr<6@<,WA2e]r\b\2|^{sxeIJ1EYEʧ4>4R!-);p1} l|-mzs{N6{M߷'Lb\)#[*>Sov=bVNُљ_()1H'r^PPlwhxd[Jz9Ýi&E)*#xy|}|,HY Xg(>B*BP1DI5@,wyguIkJ=!u CpI5~ya&Xyd_XxSys~" 48}sKvH}v>@60?-t~ tt@vM+ OEe3y;>&<]wx}x ̻ @ P% Dv>))3R7;5b VpƥfTDMQD  ǘ-w^ U,}4$L_Bq16?hyѐ~? $$xeIN0E9 Ȏ˓Bl9Pv8V q{°~}C$SZ R)!%9#eݰt"u X9E&+gL",|G у69K hvu#/n/}'N6hSmk*)mYK6O~] lf%9>4-u>c7cH|ŷv`DDH<#wvFl9a_ {KS)yԔxeIN0E> iK-ĖpnX= //"RplœB䢑q.*b .@Zb*Npi"]1h*8Y"WbGz4ҦWo1[o3yљ4}{W&@{J/Oƭ0y|4hJ9?Z3|fjfrb=лbb#RRDOb2mxeJ0EyT%I&d7k7-M*V<{,qhPwʲe3%knZ9W1θc o Jyzsxkڣэ݀wӱW^U-MJӧXyb*,NKiS./S*t򜓧Y%(%hœܯ-ʫ8n4ݖyf?xjC*~+wEWNL$v< EвLcӼ}Al%%=zxeKN0D> $4Bl93cp$n@@BZ"V*+5Nt&\H Mj^h_eS(5>[#J7 ,^(@Z: 3]_lOsoB"JJ-Cmut&)8Go,-F~ m4ly/_|;z5_@h{Q`=lR=c ^C2~qBm-xeJ0 TdiwO5ucm8xa 7_|Iٙ:5Phäe`;z;*fÝS@!X+MғS60:Kd5#w0 =i뺋ZK Mm^x->cOs%wӚb (@`<(Ń<9K9vciXS".ۺ Z/[9|3?mz7m#;CoНTR< 6,Y͑i^{$j'r{(xeJ0yimћL'n4 M"V|omӓ`FnŌTƒOrtZdZT /5`sz捾Wh%fp~RO!՗j !"ü>SNB[!'K^dkhm߽6iXK~_>.Tn>?Fp-I9c^Ї Ҟ{$h!]~9nAxeN0 E,A4_8L/5 OQ /u٘Bkc >){oeJQH104+n<O=J6ZwC 偂Q4X$8G:yRZ]XB\M<ײLX7Qq8}#iLp^D8vLB)x}NJ[}KiZ퇝 )S7I:0_Rw:iZ8RܭXYຎ}Ӽ}AԜOo{ƕxeJ0Fy,ip]|4ܛk&|{+U|mCœF-'q2^ JnQ fR̆YFw{qB!}⚘ޮyϽմ`%fpRS UfM)X#rsN`5g/ }u֒ov>B'>h 0L\2{NidJ=!/GG{ mFux 0 @N'Jd6@BɃ1*v`!>p>mK)9S$(0 #֚+)INuO^>#qA389]oO$Aе[Gsx/e5n xeN0 E /AQ.F7IgdmyX9#y˲g(eJN*# TEM#|$+D7N"Z)Wy9Ojck@F xeK EyKPJb|/bZwxo*^Yꥵp`7 {FeT?Ӹuu>: vP\&^o|ƍαv JyXjŏ; Mo")E xeK EyӤ ҭyi$j!oJṿ>Uzh ޸iN(} 2HP=zk{FeT3Ӹuu&wkobڥ8ͶWmqsD2y|cb>JyXjŏ; u&z[ dEs xe E~9$J8i$B)nzNbh-aF%` 6#PkiBiX95D\ڹRr KyŅLl~{ W:N+ X7fS [jyJҋ8D`Dp xeA D}h *F47%Mg7MB6(]z8o ֓Hfּ$ =pՁ 6gmf*;O/\XHŷRK*덂1-H;qjEY xeA D}&(ҫW%i$joJ of D; &h"9r#jѐ&Z k8mk~y->RR_PKC_aN;s'z+-"Jkz8MhF aoD xe E|{`MWx &{k.}-ቑxޠ>فQ. q'Ve31#sYVµLS%$MTN*+T EM#|$+D7N"[)Wy9mD xe 0>E%1WPJ_%?h fS"9~|SAO~th:'VMCƎ';ۺ&n"yۙ$-(*h@+|'3bN,O d-2j)%.{0 =DqGb.E xeK Ey@)Jԗ`IZwx.JrJr2Vj'&oԇ0D44l*LӚލ9/ c\_@sDY|#3tNW@'`_JhܗTjŏkA}\qD8 xe D~W }Stg83P``hA*3x,zR؈)G;# ۺJ8ӴmcKh.4HpL=k0NTى~:E|b*r[R?^=h9B>)AC xe D~(_1>%i$jߔ@76=oT%l҂蝂$]B8qZ@H{Hfײ-+e1 r)` >g+qsnD?^OB|Ņ\}*?+~(h P^B>f&C xeA DRUl0%L5M87y3+>"UH4ThF)s 9˒*~iVCҞJeV`AY|)n|JUD8 Rns*ȣ땃s`{{Ojck>RE xeA D9ѯ&JUKHz,f񁁘Cj{zGօpI;# ۺ&j,y $梌FTF*sY _aƝ͉~:G|c*r_R"J7Nk"4?D xe 0D%1פR+Q7UZ"9,݃zS@o6%w%FCD%'HMW2ϙQy]6:ejXj@+w+1:O^4!~/>E>^ol:++sDDX xe 0>EbM׈PJ_%?h f-kzY(w8D؃HvDC1x܇X; $M*-y݄<'-j46 ~ʎ_aMMItu=AsS {)9)zSh-RGƒHU}D xe 0D%i&1nK7,B@ 9o|`(g0f D ߙd\%~iƴ5}s"l@8mn Xh!(S _aMNՁ~@!hVJTM`mE!>)E xe 0D%i6&i "JYK7 Bzv CL!.8tmL6x!+I\98<ƴ5q]LN5m x٠L+|69fVrEJ`-6E_BmA!> .D xeA D\Wh%iƤnff@<oyi t^Yt688蝑þm-цׄ6ZItㄪS}R5_`/p>^UTr_S"J7ӶQ[pEe xeA 0E9E88Fҫd*)ZzZn=6=ȳ4@cMvԾh xn}yDoYe\Ӷ3KijPʹ9rUxU-UٗoK̜ՉѿJMgk Wi/= xeA D}(W Hz&l 3}#nT K5j *s'#wDb4<.yv9EZ1yyfv7j) q"ܹZ׾3.־(h@ xe 0Ec&jPJ%OI̤пEwyluESäPҏCyZ2zn[D iNaoMK E8~v5'՟h|xZ}I ??7@z9Ic>>[ xeA DK&&*ҫ Hz,r9՘ DjTT:\O|ajB,rOPgŏH-ѽ\> Y@P xe 0E#*_c")Z]{w7 4tyjr佶CCۘF"+H`m ,X/LGc\M~rƯKઠ*G/Z+)א8R8" k&A xeMK 0ٗėV(WERy)xZtV|5x놾uꂏƈvF[M4zr.K"FӲ;TҀaH-*EE}|J$[D7"KΏ9eʲZseZ0sN `o)D xeMK 0{KGk^%yUK観gDb(:m%Xz40^1r c eIԐXZu Lpi>4//*ΦDJ.U3)c1LYTKw&uC_.pi>8D xeMK { E@)Jԗ`I7E観滺'̭ [\]P#PѶ Fܯ3㲭{QTZj-Tq ||YT*@oEɗsL9jXhu:c!D xeN ދƍ&M&XZ7Es; 7{hn̈́Wom^O,L]k[.k$FvqNao*i4-B,/*Mas$Q_ߪ |xE]LYVK/- N0wZD xeMK { AD(WS,I7E観#znNF9ơB#X0zm]1g};(m%-HӀ>^I9|N$kkD/9ߗ)jhtuFDS xeMK { E8&fQJu q,M[=w ,yBn!. 0zsI wI{'u,xe^`:F:x`5f25'Wg:Y5ז&D/ZT%RK.\tyzhB}RC xeMK { E}#ҫy Q }Sn:ab(t3A vQ FNpAR iX%RDӲ{kK! DU' kүKoM`8r9?KJ0B[ E oKsE xe 0D%"mKH-4m~bŎJUb[ .Ib7Mgyf6@|t#2NcZNzЇSzdޑm]1g};+_T~ƃωDEo~@D|"bʡ|_R,J7LߙN1rD xeMK { E3h5PJҘ!X&D-M[=wq .R<;K=DGh}O7q]TDO2-ۺ޻F:V@AATO)դ_[^F~Ɣc6\n>N)xKD HBo xeM 0+r/IwMlA_4[ xq``Y=m$t[P2^ ΐtP+-r.K*ؙe[%uHH*@T9Ѭ5?7CR5#e1z8A`zVD xeMK =^EK҄޾)B70=/Ec4֡z#xJXethi&g#+=k*]3I%C#2٣d )TWo~SMɵ t )e_s/)̚A1T\ =躿bC xeMK { AL6PJb,I7E観MwQ8 # q2{GuMǔ:NoD4`"Z84k2C xeMK s  җU66a!q&]/G?8BT \ Ox{Ce(LeM bb%Rs.TdqzdjI`oOD xeN ރf5j(u qS7Es;` NףB\PlrAz8.K&F;V*ieAYpI'IT*/E%\j+caN0wD4 xeMK / *h$MBoj1 K8X\ Nʔ"d=kǙuGHL]@3Lp\*9dHkk_qS.r_rš- pʑ ?ukDR xe 0D/Ƥ1/_1*)ڈ)k鬆9#Ap3B(vN'q)**!y]1fHw½=K+KfaNPT?ϡ¥ ~"~o 5;i\l>< xeM {/1YJmK&`RPR~?C5jy(9%]cEg:'ܣԟ>7 xe 0Dcc5PJ%]%EM_K4f`Blm6x!5,+y s%a4&Շ%Md| $U)׆T/*JK)e@z?}yo=λ[A xe 0yܥiD|%lJsf>fVr8;m1~5`P8mozɰ.Kbni֝ioiA˓ |v9%njMML9osʜUrFQL2q;pv䌑K+[bc 0x"i֣Q~?'&cˉ{BF\r^x{Q??)+5D!054%1")0 9)%$<24-4y%@F{5<.82x{Q??)+5D!($ 5842-<- "(0i9&{\.rx{Q/?)+5D225%<91 <0)19-88H[$%[O36432041052df:q x{Q??)+5D!)$82,890J633HL1401HHKomhgd`hj`ad61;t^$A. xMj!F}"`;B9A0U&Bw;hc+}F6eI[F'<.#9nЖGht2xC)KZT޻lz0A:_guqr%!džR CPCb\MGfx<`HABX-G^"ٔt:+ypKExeՐ6g.+NvqIh_z~[~WRKG H3Y4]1z_`{WYwxMj0F>Rr^!ҨVF޾*B{|+NZaI yN-jt2 2YtiI"h?1EeR; ;Y*S#}>BoRPwZUDi#__Gajc\Fq<R-yb;eoxj E~KBPJ=(]~:THaB?wwp{K D "=7:-ZbaΫJҁP"'wLr9v ]=GtU|(}[~>jS)֩>@C=_EO5u3vr} |DT?\ޗxKj0@>(%M,('H3n)UkE BexʆpcEW2= ތ2z"bP;VD}=uH#&^bf}Tc}O3]c>@#j4_GnR!epX\`+=_xeΟxj D}/ j5PJ^(}.uݥBk 33X\G" $-콳ݙVl\:WmhFӊDY^6W磶 4?7:ڧJXjɄL|YuR#=se/W?n `nE ZrxPKj!{ {VB`!%B?=!GH=%Qͩsp2%)`-f- =x\^[nYeH_#Dl!Wj%} x5"_;գe?8;BT "Kod?*_+xKJ1DYE4|@DPn~N1ٿkvjpșG$MEH>K9@o$f:{؝Fn[,u29@Jiyk@Jlt 1ZV{3$ROqR="jc|` 4+j:e/ϼ#r} oo 7%aN!oBB_xAn ~r  إEMKTB8# W"A.9t¸zhIMOO_d^ Z} bKtBYe 2$х&T8DBtFG=6.]YaGVC;; f"YGC.߮{m|_NUDԒ) Qj7wL^0+^ޟe'474.`7OoP^xMJ19Eҙ̀ tfGL(U|U3Cڅͯ(M֬5!)C^;u&=^QڼL1y9"$h#:&oWdmCTHXb;Cc n꒸ҳr3r03.fAhFY{(,`xKj0WqgIJ ^ zd =+xbƠ#ap R gIgN`19$V&SۦIh)Ȅ\ѿJYj o"}ӾbnqvsnÕ-.SH.S=b%!~b:exKJ19E?3ỳ э'&w`_5:!y Ɯ-Ƭ+lH!jqꐛ gkY-c^ qO0g#:|-Cu0*Nj xJZR8GΡ.opI\YYr9HsCY4\ xoߧ_xAn E>첨À-UUO+D -m"*?̰-#SboP*Q WOB\hKTF7 VaԺDw*>=S:Qp'y)[{sv}k,hkA=%5;} \F~vR-9 q/exAj!E`ciiuCY::!G߽xdK 2$BA-{  >Vʪ]>B뭦-E2dΈqWoԍe9?Bh 8w7_xAj!E`ci0B!(j"tro̒\dF49y&D?;5.]'Mmtޢ' h]!sǽM^cUR:(﯉J-9>zHppF@#/8^y[Yng8i wψ^txMJ19E4U퀈0Z<@&`;|-Ƒ3x 1jt| ad(Xrdc# * s\T`ůUaQ{z'lck?1Oe#]>b뭦-@Α g__-C9?b.d4BҤh8H|_7xKj0>Ef1xm B >D`[ Q+UP\HRq,Jc JpzJ'4o.$2(D7ifRHj'TjtJ8Ye(%'iT+[O 3X Ck4#TFDT+Zt-zr .:v8['$iM}S%Mou2iY HHV}Uu⹿Co@mt7tgSv8+x"&?p#HaˡeqxKj!DWm[!@!\DևYT͑3 tlHq%T i4Ԩ N# JesNASRheP9dgV ^넷W/y듟TH֢ n]YJ=23 sC#JFV w75$^֕xNJ1+t83 "(k:}`a'BSN ]Y˃g6 o罏#PJN+4j)UYzGƒVf9;o<;XZhUjx,g֬dE2DdC0zmj$Ma%l_)gcvx\%K^e},rcJ7w@qu -u;|*b\ tfeړxKJ1s%C:AA\$ $?1Yx{xkW USmAI z-tDia:VHr.8w8ႀMNHs|ìc2uk}Pg3xj/,cjx] m4awbi[׫r'˹X?îJ}څ݅b `IxMj0F>#Y,(%'H )U}}0#RD-K$.$m6a4MO*|6XUdb0(&׍Pjc6&+LmC:4.so琪T[ĺ  A>r p?p9%'7exMJ19E%C'ΛkLw`q 9D^I )D&8&[=?rp̈zĚs!ǒ j!Ȝf^ޏxI?'S=GzoK(kap<%t\q{B[r~ŤhAZ8הa_xKj0>e,ɒW< SJYp%6D*`5ދoJ]qzJ'D)UXoDNB2&c^w*>3=;Y*S}>boJXwƈUb1p]ӰGſnD \q<ZsA|_dxNKj!{ ƧoB@:~Jn.r#vUԯ%x tl]qZoOV)ԮNNӱ|A'T:Wޮ2#4?y.,(=~@|ls_ȗxAj!!bB^/,j$̸hc/UPRњ(Et4Q\W^:=BS r.-j5G{ےBR3c?C> Wx}rK=7igrZYӰGſn" 1A˸rV{#,eFxKJ1s%CL"``&;GvUP_wdi3vi8-uCdrL:=l74G}uLRx=o~~,NR yrv~h?V{Ly Ԃ6t/#>(ia2f6m~iE픊NRd <('ET+@%S*g/wɢ|2{m7 nZcQId^JWaYyrM lfhD+ b6h:nTxkfo>wtyTzKjDLͱ%"h(d~^lCe'RD!Ss!dgm&kF6mrI^dXn5M0d܋C Tx5Y}_{NZ+-2P)'U@R44MIlGe×gEcϺǫ!L$M '* M@(m_u©oX{qJCf?5RS L14 aGN";r97 Ajea2IƧʲ]7nA[~vu7q?(0YR<$pƕ(jx-˵|6o‰Kc©%~yDӠ"CI<-L$B5舵1[k߾طۤWi{eiE1(AS&dIcb4H\jaB|+W{ŭcjtXO O53ҒNp҃l+*Zsym%W(0Pi&h-ViiLti)νijK({UpѫۜѨEN[FKS@D#(5XH{nVwu%,n:pL%0M[iTڈiTs,rhшСS}Lf1C ht;BGx31=̜JCc=#= ]ҤҼRCfvH*^x-Fe =&=Q*{ yIn }~!ߒ8?uzEGuOcgh@Â6lؿzll:V)J zbՄt1Z|UE9g>JΈ?9iSu7O9:;|RifN!S/g3e]L $mߓ5RVmco䡦l9ʳG,~yC.-a$U0~g5poc'،x340031QH,-//M/Ɏ73II̩443035(M*+)5K)Nfx\]?#{[&'-Px340031QH,-//M/Ɏ73II̩4430345(M*+)5K)Nf$pFOFSHx340031QH,-//M/Ɏ73II̩4430325(M*+)5K)NfX{ScT´r"-x340031QH,-//M/Ɏ73II̩4430345(M*+)5K)NfPf-]On.\vx340031QH,-//M/Ɏ736434320460325(M*+)5K)Nf8^a3ͣ;V.,O<}x340031QH,-//M/Ɏ73643432046035(M*+)5K)NfSԬv9xv/_ Wݧx340031QH,-//M/Ɏ73NI̩4430305(M*+)5K)Nf85W֊;[Yr=ͫx340031QH,-//M/Ɏ7364303204644035(M*+)5K)NfbnMKx340031QH,-//M/Ɏ736430320464435(M*+)5K)Nf~[cѓO>cf"e_x340031QH,-//M/Ɏ73643032046425(M*+)5K)NfYRͷ߿̾F9XKx340031QH,-//M/Ɏ73643032046425(M*+)5K)Nf:r3ȻaX(v6x340031QH,-//M/Ɏ736430320410405(M*+)5K)Nfjz!c7X 16x340031QH,-//M/Ɏ736430320410405(M*+)5K)Nfp|Ng,Zo+x340031QH,-//M/Ɏ736430320410405(M*+)5K)NfJCu7~8Vx340031QH,-//M/Ɏ736434320410525(M*+)5K)NfH]m(y_ᔒmB&x340031QH,-//M/Ɏ73643032041425(M*+)5K)Nfh;%7-cc2vx340031QH,-//M/Ɏ73643432045025(M*+)5K)NfꏸH/>x340031QH,-//M/Ɏ73643432045025(M*+)5K)Nf`e yg핾WcK$v'٣x340031QH,-//M/Ɏ733K)Nfè?WO{q-60x340031QH,-//M/Ɏ733H*I1K)Nfx $49G&@G4uLқO<2C '3!g]'C{l[+-)v*D$hÊGDԧv@9 x340031QHHKOOg0'|~,ˢ%w2ZiU[X&9nj GÓCMX=+)aZz.Xd\IAeQfzF C΋Ή3 ;gyH\zd;8T4'!?r[Mt:ܺFG&@P_Z`ͭljsh2?J7C3UL{!{PנG+bx340031QH/M,aTWOvqs#Cfx340031QH,-//axqmu[[>u)͓mQWR`Uӌ9|=e*=tx31Ғ̜FAo>emcew%k MM2Rsrs *D,Y[a-tU,d`uD#XF>G=6,/ x31b?I;~ṨC!{\­ x340031Q,+dx6M9{wk+qIODCb콥 ^^/yUc OJsS @?lk Y<~m-]dEE%` Xej|d)%%E izy?!+(H,Ɉ/,M-)-yWkݖ)ݪ/=O=lClxs{O-X"gnxqcC !xdd`.R ,.] ~\!y *?xE%100644 changelog{V"o& 9B%1g ڜGEj+x3{Ol¤ ;gxɱc ^x340031QH,-//M/Ɏ73II̩44303/L+I,KKI)Idߦ՞WJy1$٬7YvBe|de^{Vf`qԞOS]D kLK+I7 (WSwLA7aG :W3ƳBŪҵBtSYV?WNj͞iq 234r7j#S"Qz&6032046440%񜞭vl 9}=}t

pďXClHⓞ.rVKj 396y[iIKXKe{ nx340031QpMN,.)+(a,X͒e;79,%r2r.u2TZgƾBےbBdKR&0iw[>YD+wx31Ғ̜j:˭=㴤ԫn榦 999Ez 26<3 p2Uq@f&&(*K3e}+7;R{4x31b'Vzͪ -;x31Ғ̜dO.RuvM[±gBFjNN~|r~N~^A%C̱ όB?~/L*}Up\ P L|YGrͼ_u2x31b6>Y7EQM 1g(xɱu&4)x31Ғ̜;Y4b?ZٶT!#5''?>9?'H![؆gFn[&׾*8.Eei&o[9f}G =V6x31bR&-j 8x340031QH,-//M/Ɏ73II̩44303/L+I,KKI)Idߦ՞WJy1$٬7YvBe|de^{Vf`qԞOS]D kLK+I7 (WSwLA7aG :W3ƳBŪҵBtSYV?WNj͞iq 234r7j#S"Qz&6032046440%񜞭vl 9}=}t

jwGV4EmȖM`v~Ok]n?lg*x31Ғ̜y2!M=_6InBFjNN~|r~N~^A%C̱ όB?~/L*}Up\ P L|YGrͼ_u033x31b <یתؖ?Uߚqug jx4dWFmQx3idu&_'W3!~_gN ~xE%100644 changelogŻQ;9٨x340031QH,-//aݮgyFhs}.TԧEy%E9 _tE4| Ix340031QpMN,.)+(a,X͒e;79,%RR2x_{9%x׌.)QĐwy쮓={6ږ;"[ ODV&_:9x340031QpMN,.)+(a,X͒e;79,%RR2ṳ[uzF3 r2r.u2TZgƾBےbBdKRV0|x=Y%;aenW$:^x340031QH,-//aݮgyFhs}.TԧEy%E9 3 [~(bڻlӤ x340031QpMN,.)+(a,X͒e;79,%RR2_OJ2=ƝS<ӎ(LbYN˓j*5V]@9)x340031QH,-//aݮgyFhs}.TԧEy%E9 QeQ'>})S`Bax340031QH,-//aݮgyFhs}.TԧEy%E9 n) 3o`qG0Hjx340031QpMN,.)+(a,X͒e;79,%RR2^f@`udW)\9I & yyaNc˥U_J %@+8:;on#d7x340031QpMN,.)+(a,X͒e;79,%RR2"O3P|ˋ>]Ka`HDANfGMS\ۊْT Վܯp+-tRv_,9̡ x340031QHHKOOgh>SeaTOSe!TQ~nAb Û@o 3& O5q`}"(?^+\c \IAeQfzF C΋Ή3 ;gyH\zd;8T4'!3q?*R|OX -fb Eɩ 9)̦v=6/It3 Sx340031QpMN,.)+(a,X͒e;79,%RR2n͎U}fUq{ r2J:KVMN{nONȖ`v~Ok]n?s7 x340031QHHKOOgȺ{cGݹN]?d2!TQ~nAb Û@o 3& O5q`}"(?Ceg?zzEѴ6&!\IAeQfzF C*y<>|gn/*275U(*I-fLcŃʤ¾zBq~iQr*TGiX2$.9Sx340031QH/M,a\7wǏ&묺_".T  'x340031QpMN,.)+(ad K[yף7ݸa(ytuW+m<%=z2J>=\ȣ-9?9g_,AJSYS--o0UXZ___RYZ TSZ|&Amk]},Tqnb&$|+x7-#f;˳7 `:f]E{oB^=F?ajdx340031QpMN,.)+(a,X͒e;79,%RR2>Vt|$?< ,b] QvmlΜ'-"[ n+gFJ??8 x340031QHHKOOg`<22T/r;e,>eU[X&9nj GÓCMX=+)ax ɬa.OWRPYQfq2<(9 lMMJsRn)ySez¯}{wβ31ҢT*/7LҰ4eHl]xWks&P$x340031QpMN,.)+(adb>%_iGcQ]75A&JM_*+)/.HM.*#q@/~XSVm C]Rz> ^Ǡ}ǩS) N-*L:O 37NrHE3etd0L,?R/;oQU_t§"7ѭ]p K,L+PhЮk}t>Aai4e GmΨ/{͹CDW6C&fB̷ee_46kuDVu{ͺJszl>ux31Ғ̜MH(䖔&榦 999Ez 26<3 p2Uq@f&&(*K3e}+7;Ro4x31b]ySڳӾdx340031Q,+dx6M9{wk+qIODCbR= WoY?zu'= +MM/,.I͍O`~h[ɞ'"|rR>DSP_ZT }A:R/Y&xx)̔ԒTrENvݩ\ݣ^ ĒԢJr_Udmbw Iox340031QpMN,.)+(a,X͒e;79,%RR2DKv/?xU닌 r2v/49sɄȖ`XǪh_i}88px31Ғ̜YZ.suUkټK. MM2Rsrs *emxf{eR}*LLPTf2\aH3ι~L;O=i0x31b+<ӗvnxٙ,neƢx340031Q,+dx6M9{wk+qIODCbοe8b+,kkdyŕ%9 =<}r[pu)'dmZϣ=8sdp6R<3%=$(5\QGūow*s( $#4ܾwE:o[;¤\oکx340031QpMN,.)+(a[G% h#RR2kLZz~Fwݾ < QpbƂKNӶi7 lI* ΅=+mjڪr$!-9ߡ x340031QHHKOOg־6[]9^(? Mr7G'8>{WWRxL JOe[7,8(3=!{eyQ3st*3(zL,ɓ^*_¥&@P_Z 4UEQ jxOx31Ғ̜+n_#U]ʞ{ 榦 %%%yz ٳ|=}խ'g3x31b>d̂3SXy2ǜ x340031Q,+dx6M9{wk+qIODCĒ̼Ԣb?Kg0,ꉢ@55(x340031QpMN,.)+(a[G% h#RR2J\uwwx/\(Lb=Z}IZ%j%Xl, x340031QHHKOOgj ]5]5JʜιB$0It1#hPg*Jszir,WߧTހ+),L(aHe8o^gs6@E榦 E9 KWe W p(%2Xs0ڼL&N<x340031QpMN,.)+(a[G% h#RR2V>|b_A{tOQpg{KJ_e +x340031QpMN,.)+(a[G% h#RR2W3]Gzjv(Lb,YiDlU> f=k*x340031QpMN,.)+(a[G% h#RR2F:=\MI_Z?Qpfɉm{NoXdi)>#&\Ǩ, x ű 0 @`;vtN!Al3%q,e,zNwZ} y DQDzb 8k÷sNKX*Z&j!!4 _4!x ʱ 0@QQeL`پ=-]s|hYE777|ykjA!(~.W X<Ɗq|I6-D6 8 u~ ut|n /d$ͳWI3>Q'R x ȱ 0@QeL`=-]Re5i_ ATdDB<'YC`B5MBؿc3s!մ EN" QH$ئKa\ 3- ZuUW){x ɱ @r <!Ҧs&FVNqs0KocE(1 2OE$:OIW`'7}1j(‚DJq;GxBޗq%ݼ޾s=7n'xɱ0 #PcLd+wLN8+ȱd'nVKpLOhf `3!.bZmqU``Jl#XfUI m!s>L{V/?&Rx ȱ 0@atl ,wK#@l1d'\q;ܛ J6E3<D, UQ>髏5!f! UX R>Q&dX$>]q^ |HݞuNO&px 0 @e!u:DA`x#[d{<2Wofph{<+<>~\!k#7^)7 UC6!Hڟ߫R bx @ Pe`R0""([d{tOyTؓ` "zbZFhZ ?}l1(w:aHvgjmMS URx 0@9Nl(`v軿rx[r6}WmndY%\3$^4QFMFr]sQi(L. &j'w K=^ }ǵ {.XŸ%FD?r}7 ƎgG,Qu. 9Y,Smeމq6WU**g-S(6\M3uRNL$FKRG-2@R ٴ^-ό0Fzj&L&6(j4=[]B R^$XKCHXIГ3W7CV߄aAO΋HuӞ.Lwz2RA^pbT*{<:Ϸhn8vfVZIRT E/z9և&Bef(VQvh n`Lp >e. h~kwv fmJ,"o4"]M6K6Uk ݬXd"ĕTTm@C_kZ2xQ^%jb<%W(g`ZpI/f'ߖE7+$ RVӖ$Nys:+@ţ@3h-C ]Ó\?%PP96*ܫB o{=ulpe*JnM)(J,N[H]QF^4 LVu 1 V(MhQYC̡%fJnx:;(O!Z%c_'S~A7ٙ(hacO- : 4fwAyx-jGG!b!ͥ)T]mX CDu:8kA,`&c {ёVg|_P:$c/:пe])' ]8m-RAxj@!ЁS-򌜣zx|/Od!~#ԱyL]Ӏ0JT\V-B`m8Ӕk :y: é€J7;3ɳZ焔K2@KOhUp[DN% :l|i^+Zm*2%/*s 3&g^tK+^:PS#b c TMq-g!? K=*a<5qa {W*-H a"h)( 0/JT_ Q5X gY9LfC3?͆K/a.kY鄻Q(Ƿ .T Pv4 f!?qYV4d?⍜,UhrBADA@:;6/uL"}H͹ =i٭6ᨫ pC@& {f~`6}q q|twQ)|B BH) ; mAz`z3D?{\NJEƗڭ0ZW%Lu$*iȾ}# i}i_9Rr;f~{ iI)c3EG2 5y/i/KAם)u"Y<0P'Oz>i\@'1ԛOi0D܄znT yƮ`w)yf:KR'I,12EVZ۠[" %% \9$mέI0$&3={RgccI}qB^Lh=@Dfˑ :uǾwWG|#D"$$!RdoJgMnkqD?KCp}feTT,s 'J OfN8-82Ssap'*+ѴUr_beHtf VD6X$)(T, ?-bXI%Dd)_o 8.C= LLFZeɋk$6Ĩke촹x_FXpzk}HӛK(I0M||kfO}B]7U٢Ͷ-\Le/ALu4+PB0ʨG%P1UM#:=&؊ 5KZ0ZpJ]GR:R͖>ŕ~3j[I L mDZZm[qFMjN( 4X[QG^kJ4%P(œ fGDLZR#+!"O3ʖXYG?wH*x.B#@ [u͝fR^~%yw +x[#7nVLj{3ϒƈS.)Vͽ'67] o6ܨwt0N UܜYHm8.k7Ƀ;3D=y՞K_e[+9]{4wLkn6WCxn‘{Yܫ4۞TE/ 'L^xHUύ@ ]d|{.l~!}M%qu dռgt8H{%_:? +[);fMwTb05J/䮡/`/ļjя$m4ۣMxӻ@ʏnI\n*^ΠVp _C,ssM1v%2P3AmڱЮn6w;ؤ^6R9 F}Pf48kR;gV )dw3'&[-3Wjv}pX',V׎L'$eo*7h/*Y{Ex95}a^heRdFuۡUSkxp%S{D_Y0'_?imVziR.}X-QΎ5V^8يqFrWЁnzo Vo\.unk Cus>_Slʵڎmwo/gXdةԽ%c$zsP 1I5o{=tgn1{dwJ]v?F7?FuGW7NOJ:v `|~\'˼X- 7_& ptV`^25Pl:އpML ih,?-~$?&ȹd d kGz熽Gˋ3 J-RQCǤX>A~^B6k-w`]81@p i x[IJ0 Qx[pYlrfg='/Д5W&ůyL&\r, OVTur$yɁ^`;@S@B/4LZ@["Ҫ+djx[3ok&x[p,wlMf hx;{'{;'i(x;"k i"ixlXd23m*xlvOhO$i9xIi" :x3&BiI~AfLb)) 9ɕ j y )y)yə iE .! %%z\\ .%E ^y >)e 6yIy%zv y: F& FVFVF \\@gL&1 3mLҺ4;x5E BUD1d{"8]`#IaxMkts2A4mCmx^#/H?wBZ$Ide-K*. x-1 0Dާ:T*¤XK+y"iGÛ̸Mxk6(!~l;%aO& [^Hs9ID\AXene{bE^Pr E ${6xSPRMHKOU(JM*IQHLO+.QLJb#=]3.] xE @<ŀZQ`ghP`$B.{Of`ofOVp֐^ƕaC3{߈b SR(:RTKQZ$-? `4jy :aW?4γ xUA 0}Ov.4ۊ ypgTI6W YPl-0J䦠fyh%fZ:[Iq C|. .@4I'llg<.4 hp(F#+}>0xx]PJ1^ZK[((S0NJ2;YdFe-l ޶>rk@q.G'h2{7; !xH`򸽇nXV;QAX=Dj:&𦂗Ә>އs026L9 *Ȇ>e҅)2T&5UmtyHFf.HΝr;6Y4CfC[$xL9w1 uTW//'x-MkA zѢv)Bm*VORd:A7LR}ǏkIk|1ixP!}.1x,xj3X0`])q*ĔKӀ DdhNy/~j] b:ڌVx3/'vGvaLoG^ IP\U߱!E*bGlOhZS Ě&'Q2ciX֬5"ݾ5LFdE eJ? %s x 0E~!"8IjK{9O/gX$/QMPZ7ݝrEsQG̑8}@FV*%*]kv%(7"EDuh3x%ϱn@О IGHB)nmNw/{ =gGof~zb;f „(WƼE"|45('@fW,w_Vz|1\k N8#/iU2Ad^$? &i{,1~ROx-.CtqvG2%YrvRxm @D|ŀ (ڟj#=bPa=cOm492̥5pLP9d{:.`ݭ0H<[AttZɏClUkzto*( ΒlO~rp%8*SxUK+X&g 4D1㷍s6Q00aentUEsm?q'KqE.[\8?pW+qEζ%=Vzqi.fy>wRCϕsG0U# }%dmF~fh6Vܭ%y"0C}o6#>dcrxϏܭ;izlU-afp8ȑnv=Λ]hf&7)B[O1J Ĭtߔ]Wų3i6 uK0껨pГ.xvO=!m4R3lʹPUjVc9[yg2頖BNTӇ<z'bClͮڌ]ƩԸ6Kg:ZwձVoVBr tXЏZώidy}&^}a-v;˰2'uec!Ĝ݀Vg`&NQ'_7xTY}WȟnJ1^nK10,QJWQԩ:mx;gzm{nF<0̊+z"aa=UIVu"8qgOL]S\1RE>+8K{"! TI@]봪0qZ5=qOKK[W%$.RؒHvEeWI{r딜rLUBN).h,P, ;Rv"m5A B 'Wl*"8aoP$_ N';`9Ki) O,igH¾%,q=YPRZ>U?GSɒZ`riN]{mӶRdBȥew} P,SS  愆u)4)~搲":YQuh~3.yAP_`?ț/^֔vx(#8Kus9H><x jvh4dz?Iq` I[ztK9,?|OWxpGp4 ks,6t[Cx.t @+ 9&(zs7pnáw>+H;BY8Y8}Ɏ%}`lŦ٦_-#?׼S{GO`">!s0 ?rR}b͏Ӎ8+Qþ`xRM0$A]2m*{z\ogAtwW]TT%#BNxQn^5{ZY{jxTɒ8ڀ@l;+.B[,fa}LEDLL)B̔^K^լNh|8WigōPql8n1*<$nV9mUeE,-[ay:QGg>`U< ͋(Mڼ$@" ɂ,ʯEIlyOߣWҬ}="OWD^CN(i&,- U >f -JV"6huV<G5B7bWY "FW'(N1ь&hGʚ_x3g簅$/χ - ҳovyn)o=C屠y#|nך4}m//Lt<9GE Qb+BLR hDT S !y ex 4XȠ: P"% (@?N QVLM1B( &|+lЗuEUS ԧIdaRSF4RE a0t%6eSd7ҐSd٠i@51!Qנ?"MWꁤ#BD)KHDW?VIk,c('t0=-!X?0J$ˆU K`T!8㢅;VcְpN -+utc1hq=%^4yDWiHGaNl`|DdvpNJSʗb`w;ìs%-)nܿh^3Rz;hw\^tAt$:bm>-7i%T㎯ZΏb(]C̩H/Xt0#V]*1r@Qr%@Lc]}7>:8/j@\GBLY~l7 cW!́cĊc{Rx{wl=в5',7Z!%ŞEL=am>Múة80 h빣xIS~,i<3Um.:`'6P"N4//v9wd8=]lh1D?4gL!qvV_Tr){8߿3ҭVt 5Ss7On~?ixUI6+8&5϶bsc KJHcVx;g7IRyTzS}iKޱ޳9 CޛEf>༢m2N5 g9C>"ǸaiXUE>AQw(؇ڠ͛r MwX5(zѸ&m]uSM}Rd?s"c%:Ǧ)`6'~Κ@W}(>vUqU3oM SV="e 38+YN!OYpdi$ —I#Eїga}ۻ$=C9,Jq&I޼Q٧ۧ٭0zd$۬yG 7TUT( LR HHULC$jsCU.уRdh@U"$"D v}AdDE:RQe&0V(RM"v\i(aH4"1$RǒhwB*!2T)U:\QVhG0UTA&(]QTb }K( "*F!R T!ʀ¾PVR% ,3 P/U[?i۵)9u/E eo{cXyXQ r;y{M 4Huh\;N9>(WZ:MbK%k\VFBt[V*Ebrޝ]Jr 8Z:rmQ%{egݫcyVfLsμ[dwEp"K9Zj˝1Gsc܎HKMVf1}5ArpK9VL?Wov+o3#o̞F͂P-^ V\0tothC(md5P%Kd8I6]}pGÞV5c1+ɚi`%˪7_eWp fQY\ebͥ~ԯ+'$|3Ŏ'%+{=;6lAaJmlqpqj>ҤS Ig0I#;;La]Rra&w.+̒eƯc78g%p@K{&Nǧ Ն;{oRRStteґ3S\[msNS|{H\܍Ą$GѿM<|xTɎ8+tL,R#j˲-vۗEQHy;̷4`^ꉯ~}{4h#3{F#'pq_;( Ē3̭˦ƤǣULXշ%DŽU8a~*n܎4)DdH",iPo n=~=əde՞濼mGHJʨq2'1cuj W( º*TTx(p;L~]^C?L>#T zgeuS0}Dˀ/"$Y IE1ګ?}ʛxEf h# DE4iR4,Ǹo}+F)*]{^`[.0d2|USemOPVs:nYZ`u!hzH"vD֯7W{:2`1 ÁvE˩lM!ݣzҸIuVC~m$l{s3wt/hƮ!ǽ )Hٞs29"'wr0lU.ݻvnbtc=XAak{ݡ;Q;kaȉwm]8Jiˍu|-`xٷc0 <6,ʛn^zzȣrUMR#sk[ HM9/zD+M3y%&|:rYr4ԸoLW('w_X!1#*['Ѫ]6^'RJo3 grŘv'<58OyqܩCe-Sr?\q2W}Y^}TSxٙ!UEZU5|arkmI׶6ƌ\Y+Gs 5 ̢zB 4K~A>w- (ӬzY|MhL^8 E>!9Zqͱ4r;m&X4 3@YQ_>~W S R\c#E1/nP8O&MtjTySZE1WE_jb J'WnDioTEDM ( Qlh _I oSȣ4~{YW>p}OԕN0^\G[72 Lu7uRԧH7|Gԏ4;`:c<ׁ0A7T>xGFeELlVR Ic^Mx14Ap Q UDE!#E2XY$XRǰ0kE^j@VHq$0d!BA y!qHasU)RAɈTVZפ*)h dU4VԐWe>cp4v>Z\!w0=EB}l&A)<\@+ohxU7wHw65Cbws4XNq<ڝ vV'^ls3/@\.o뇧ٳ#c[Dӱ2[3KX >汫FQ '8?rqxg8gF4—¨ψ{03;6#|?{jkfw6q<MI" ty'HSs!Gwhv2ZJU{^b`{~~qnRzNѝt/ټҥW.QY&ewaCc--SOskVij{BI +?|]|f ϼ:M̎8ޘrSo7wf%gw}x/ۅ-ԙm?VK"?5,fD!}_q-z*s]7];hFd+v>>%0lu`_Zx F+6_b|6TaxScv+rxkX $7Oa6 \X^ܙ3Hįc3o['ztxSKH+8N~3" e( A%anta"ꐙ_fE G3L&!]˴ \#F S] A:4mrEO[) p[VIVԩM -)@O, >I`GRT7IYLIf̅ zfǴ@8Eb.ee5_ޞQEIq|ϒmo1,oĢQNCٸmf:d0@8.P;بۂ"uP rcePZ]vͣp#qN$C'(XNQ! b !?}J*OI}&D1c17M)ݺU T=|?t"2 xJPp6$5 f1irc<2Ȉ/),/$$')?d뱂2 "1 eY -Jr-@NBhEBDA<#0CQf#F,T؈(!+  Yj|A@<`}(M~߷,cWf̏dKRA$ j'6mRU˥.#TvQ%*B"e;N征R{*F4KMu<4RKl[\y,iׯ[NOd/)iFRӈ\UJ#N$Y=0W?mm Cju=|/4ح^2{9ǹ]wl!d$miXi؍0J1d_3o:1lT\E}xTٮ8}+xV. f Dӭ,&!/#crC0>Lf44%uاʂ~șYqG6y錞1@ xobuـ"@^g+VVi^2!fgǀY$e~&;5MK2AW+*]I2 a 0%]}/8/6}>]BRP-O)PWnRq[:a^/ AI. aRIktn`>u#??bXݐ9pPYM+LB:C$8o o|~Q3WY,Di'nnLX ⼕ժԢ.Q‡AC/?b? `%iYR_ˊ>o!Ҋ&;e2e¢wshN!7L0hSPK xfPCC,ᖨJ!VD|Om񱦤jϪ*jJ]z: Q D`HD@0PQ$JٌmE6B$jXTHa?B"::ۡυsHZLZ$)`r?"s1ii)ur"%3ǥ)̑eƦcmfN^M,gUẚhے!OUh=ԿpKDb㱓 hH}i|6r_pN~[Qo:3,7zC: ,ƖUU)btatKX˕wG:ϝJq*g[t5r;w^>٦=n,~=ëzw b5>ft}L{3J_P#CQyTkYTyY.;>{k;R@ݓw:kKgD%24fX`]']aOcT3;Yl}率X58oxf~W}e1O]r숏o'(gcS.qUhܻ'7m/,xgU)BygguhZg:(B|rL6u$ &TAqP&TӤʳCneuj^!D4!B]6 h@[3md&0UMSmj?&&>F,tFm&*B)VM!S1 ms_M b?ma* 'b) դxT[s8~W8S6! 535-q^$.j+wzR}m(t8UQ㎼R^{ky;񖣡m7)y(o}HUSQGwmUy*qInZ(iiH]s7*ҁ5<;i>P5]]ؕmNVytY^Z7U M98;OyW}RI~UqҶ5 rܕ$1헬|mqIqCIQ}(Wܦzw6 q Oį؃l9pHE$]SejVRc-(8˿=?!."YQ2n^@!UdRL|hqi„"ma" J^BYۦeqp{cz/̇f)]j&HY,HQ*<6J}APZc*sQGYAܕ\fSHƻ+kw LJ5Pb[7Ch( 1zH L!e0 gUVB|d @D6LSXCBT4=2?O(;{@ aJ)Ц 0l3P]l3 R-PJABQ "] 3U,d(ªS"JBB$ѯ&`|{ԆiYB!(4@!5U nRT*0#FP"BX^ 'bCʏ{s\s,R_' .2%8c;&6['QVh$Iy;b^٭=,5C[.KRL'`vvj:ZWft3Ah\<n_dA\zҦhlj;T[,cA~z. F[ij|IR:WҴ5xdif9G=6*]#Ӯ+؜gŬk<6dF&gi5L5RÏo6]<w.,/ȉA3KJMN+ 6:Y%w]-;PYbyZEu- Wjy/EK *p:zef,q095&w^*uZaT{Y[V˟q˜(ΏT]v3*7Y Əsu| vOa>z]g[JzEhj;{#mK$Jy?VEm :Ahuat>8Rx۱\L{ i|½;(^d{rߦ?_];xUT@wơpЁ W8$HdžM GxB|zN+?Sj5X?}߾_ߟ}L3 L9CyFz7/t&exRdYi)́(K;A @4NiKz}q3,Hc$q8eye$᠀%O,+|/e56v8q:sD75Mewx%jrŬ`UrydQ=yTp Mv ijEy*"F@ &KHl4d\K?qԧdwTIR*p$*Uv.bU}oeN\z)sX&3 %u NDf` .*1qFf/bG_nyH.lGy5yNai PÍ蕠;ܔBŖhUjpxU+_.Pf$\:AԌ `q[vѦ& ov۠YþX&WFVy@E8ؕA,QχKP͚ȍ>j;)a[NK69JW%^Hg SUE#R%M.&4D+%dڇ|7U}H}j(sS!Π]'?VρB5)YHMUkG6řpkZ-X=vƙrg#T[˅&MݟYM^X+s/ŷ/4-׵xTَJ}+x ; cݮQ$K xyooK=h2XNĉX;[񻙻rl~vw7E4~wSSTTug+gMY%YQrVRg¬q47mwHjEM@y mѴDIѰCg]ۤ#YY1k Aҿ6tq5e'7-sRϣQ iF_S5PP3Eih e`GW"IF臻Op' ji0 gI6HП[o~'Gy V(&O[$Œ*„EM\龛䉿uy‚q~aWRܚ[qLpJۜ TJc×4YBI6d #+8lv{@ Y IFh "+K+D(P}C1KAD=-с1X ԡh%`(r(8J(K@@3|ŗJw 0GG-ʄhVnDD,1dQBY1~f%E!Dhhc۶fÄ́edLjzi1/H0>'ac3h= %Lkm{B:4˹3.< nFmxIrvo+xI[ɂJ+ uH$ogp~n7jnvzn#3I.sofc]|[ӹrCfZg_Z#s\:#3[Y d /a͜}ӲHE.^g6z~4NmoӬ8:Le99p/h!&y,5@J;#~jE0=OA9:W8i3<|lFF wN y+p +M]|\rv=qžu3(i`H_Mr!R:`1 {k{nW:[^EL 4KYg7M4z1קpaYޯU6?0\ cli\H)W $UUӟst~x}~^_;~ K#d0hr1Eg1`6K!LϯOw( ,S"7%fh!&fs!Kc* ~0-<(aRO=-3hT\Tk4a1{8vWe;_4vϻ^2dK5m=zR|fGA$ΧYE`B 0`@.-VfW!MeUƫfor-˰$hʲD<_߶zD^qw*(6,O{ÿzsN0AE] ԅk6R(Vׇ{Wxº4MPfipNv;0y cYO_7Ό2Kj;PZnLq6eLԍ/Kn>pgpVʳֽ*r^y&)Ms(@+RX`XZLQY=ۢZp^w'U+?bjg9??A [Fau2 4Y??&템$?U|1\ -Y$zJ)b'<G+1Jg:xL,ݳol.7rzN.r%~p۠|4i,#،[]3lL꣹xA4+DjNuƈn_'C%!F^Ο" /VqݞjQWҚԭ&zmyHew:C_,=Ü)!=uW57pxTَJ}+x ;IH ^^.V~R`Y=̷Oշԥi4@dDf(xܡ7Y+o%o9ȋa8ްS1g9;$gY)(g7uqJV:$Yu)iԜMwi*)M﨨 .BR@CnTi/w<'a-qLaJaIE+K~luiqSG~‘pz24>ayjPUgZҖV[תo$ݯDݫ&O{a-5Tq?FHndLYsRV2az$| "qT*(L8?FJXqLws[G_6Rh*^IU+#>"WjJu?"KS[4`T> q3QFso&XXwR<ɷKHZ(?|W T25,R-VYVXƢۏ9MX)AUaik,*71!\D5uƆdikkt2(!QpA4S'6tj#q ؟eIhdS]/b#1lZapʩnnHD[<)j&1C @#4 ڦ!! jfrw~5rdHp[!԰LҰH6 $TQHtFBMGn/‰t ?p+u7!Eq^ҏ()~gʓ/b':C׉}nk1pb:ߚֹ0XL]Gh$.̑ Xe~]?@(0'o܌'ފ\8T?ۑY4 ni..ˑ;M@?ۂ4͎ ^?IHŤ^"jy-KPitUު)&WBG]WMo'-C(Z2"6>j#4U(61-+~{ozcrHᇲYH h[fL%%6e]Ӳ0ꌫ_y9ĥȩ2I^yd-Dޫ9IAIK)4ϧ$ֺM.#/|ۢ6E|3bz {qƅo/ +/xjy7ָw|$u&Pt>ԯNP[$y ~:mA^ 1Q@؛R\WD'_n$ees*#@yZ 9 vB$&BG]'ՁmYgG&J5Z$j:s<:b0FrLb`CJ8& ?c-'-'4vy\@BD0qc% .e# pnCpBL0)"Hq<Ƹۮ =b[.pl;Xũ{EkQ\p;VS/QM*I)PN"Ez9g$ǻ#) _%7)wJKvD?0-_Nσ`t]9"鍶lΏ-,KzMjnG# WϺU'xY_.,sиEx*V|6>;wBTZnq:#pseb{|WqB2@юuMl{ENMpPQ]vm&\Ѡa{|ouL++pZq4;mm~.mGH,}h4|*W(2(Td4fSP<𰏷P瑟iUFO(GEhcl+8f%e քZ 3=*қWw]c8WYȶq>g{M_L`?VO<*Q4d[k^`/mab%8&)!ﷵ'|wf]ۇINqjıMip>7#iׁY`}fE^K44(e{Jx|x:||{~&hQ?m}D/savm-}8mn~ѾIWP;w=OxeΫTs24Μ ׽78n-miKM(z?1>S>t%V~/~E5/o䯗,H0ͲD"9E(@RT4KE~"y>{| Xd(S"D0* O &HHD^B!y ,~# 0~jLNQQ!$"%忝>묹W|&0L1R]3t-װ>R14 vX#\]O- Ť6t͵=ޙk5Zcda^ۤPDせ̰$~hnIUm&τxJF;ÚNb`x͞B4'qzw@Oh1ؘW OVeb%]L}k7UNw\Е a\$,q7̖(׾{Vl0sX^$-ؙ (v c$ȧTg!M=kn9囻˅nF>Erňe`^sb3;Ɲf9ֲL ƨLz,}m/'߹8sfn%eFiSn3I`2AVFZ8>>ޤ YKS`Wvf{ 7{MĺL㽸xyL6A"E‡ڊlgTh+`N1wy3-=DxTY~WxGi5= /WEQ@%, BO鹧uRI.۟qd.GKv3͝!;9r6:ye7cSTTq*<) W4 \LsP=^_ fL$MtU5.g4 NC =zewAōfoB\æLqMf\db(!V)hr@|! Aߐ=9*gE{:0u-w.1m"v7,ṙ6Y MuƸ3'y*6) E9 [?H1Ր^ }8!T=HRkO a3\?= 3pE? A)mooX/Ҟ>'eK F);~BF?yPIWҘ%WڧG[ij>5:R!z{Ύ x6 zD !T!PV$5%%RTVU:aTk:4jh-4M4J;xJ}JB9K-inw cefb^Ӻf+.Q-Oc;LWѺaZy̙šˌ5X91Nʢ7~Ԏ:R]q+"&gvV,U8iOim\Mgw79Hp%O~n cGgM9AI"Bھ{z.]G) !{| ;[`ܮʯ~xַCPlV2RVnc^gxDBwg$e ϑ=w4wv՞^jsO9lջk;zl'Nt8ҕh# hEػ:fuVy^#5[d8C=YՁ<|lO~6>٫,>o-ėOWX Y*='֘o99?<{vK놤)GL5Q%T51'~#X$1EU>qRMQĔ4J_7>vQCV5RbKQC3Fʔ~t([ }ොf=[uDzԤL |ۿq?9)ڔjݾSVCQ1~9~ioo{gZ>ַGQT}RX@t+M`? ?NIE(BowI=eh[P)̠35`FX–b@ͶH%vuhƚ*jug駷Tc{ tE3ԁ"+Avljf)Jt3 ŲHӍ$>H0=xi:8Ń J(s+^GsX wrO˪$|At֛ՏS xS#yҽ[2)"=|E#8 =8OixeC"W2 cVQ2uFpO([EKK_ɋڮ"uqt& _箭+ έNe<ߐf .ƶ]i9 ɥL^zdIih7 .izj{ʠ;xMFTT7R[8=:030L[` ŀ#`0/,+MΓQy9)/_~?y۟xQ*P*1| rLr'A 8O/߿/?)BfHY!NSQJ 4/pGb!%)(sM%/ѪȼB!hN(rq4H$H sE񿐿^gmm ~N dIRVz/g>C ]ik gL:˲{T8{]1ȮUb2va4 U nOY2:j+Z6Icq*lN*g tl×Gpf\'ͣ3N.gq]yVC^xJ]fEc㪍l$جY9K IѝJ .洫%WV3Qv2tسVYp ڵr*K)|>$vl$>/V]D?lY!G bpw'h2V9avvNq?o޾{V Q"Y$ 8@F3Dr3>A. gO(x%54$ENsd~*^ {.)s95WNȂsK537*Շ6H-.<ժR'ǘr$9+7%iU4 ^Rnkk5m^gbZCȄ4KIhߛ5Xzʂ!uEn4{Fv;_l&^k^nžx2_.qkZpEw[:I-*y:k+jƚv#q*j{M,)=a;Ty2^i(xUy80ݦQ5uXH _7„g]j &XYcy2.#4 FvVYBԷ0AN:*ClF2&uS\HfheS/5uLJll Uf~ǭu?vWY`6ͺG)=Ҽ$?LٵtasB=Co'Kmlnn᠘r&m3x zJ{g&.`|0q5s4.Ga _b7${ ڤlRa_ZÑ Tj߽(^O4ơUCW֢4Æ9UieRhdlPO5B+K  }x;w ;[C=g0릖MN`g4<ɓDDp#+%V %%V%z9y)zy%%9%%\aźNEũEDk2cw!F\WGr88lx{w:ͧDY$Kx;w…6LR?qWOdSL,+y7Px;wCB&L,.Nx{g+f%ƫLY415 jx;gɁ&2IO˘RQ4YQk~L'3jM.b\T8YC8#'3xyɧY9'XJ$&[)$d覗dL* Vn Eu W`0TlZ p@sQiAr4*~1` X)2x[4Vhडi+́f熝Y 2<ީW9tCr*:;!%lZE+@ aJ!1`o(Uu[<u#%!+'oR/,JH4J`.5|_]2*}@!ed5 bU\$@eE9Bڃ _{:&躆p!}7qdygZۊ@ ׵VCyH~҅aS) ^"nQ>gGH=~ѱH 7[HbUҿdtBDv>kj%]2oZؒ* ԪG#ATn"TΞMOc yx[ͳgC,d&݌ X.% x}_k0şOq,,¨ ZV*RlSD6۹߁{n)i%\XUas찭wL$tط輛=LljdI|>2:PgRѬNT37\dJK. `ٺġ]^0LDFɸ%<VQW̒; &0&tBვ;b:& ;DxBq n3Xz 㱡s^E -4r X;<.+b"e\({g1/qŕ:z 4VE|iKڼgmMxaʂry(8TpƌttYNx)Z/x;ʹi鉳CsKsK&ԟX2YQIBKr23JtK2RsSa>iox;qTx˴i9DÌƓ9MU_iwx˴i*##gI"xb;%_#;100644 GtkNode.cpp6i9LE\+!Q _ ّQ퓢+_fF]XeuQ;!bq:*.rx2eC&ZuG%oqȁ?ɵ3,x2eH=žbeOJk|~(#V9PxSێ0|+A٪lp4vdy/v8dlՇ\|\`xxe Kxn J}ғ{Sknu'ǫ=zg*uNMݏ3W+7IsHV(!$ cXì00/ \)gJ+Y6\4ȆhX| ykFsLeF˖m'MTo; (Kp.A,7.-\V'I~Tp(0:XQ.u2nWo9xZ¶ir4Sm,*RWoSxĶir4Sv,Lxks~ņ+ EQt:T( M"ev0 p$/8b3o=Q͌=Hv{8û8`MhcMxx |⁘75-98@ r\Ӯ뗯^Cۋ^}6I%h.E ^&,e $G"HX 3vp_g zAP$ =%}$M]?i_+ ~.C|Tv 6n>_>I⒁`Nf)8& n}U¦f\{%pu7:"Ѐ;MⅫ8j_]iqEE-c z;T7/&ƥrMAڢ; B T|oh9s E9:jo(!)/RxN)LjAqz!9,WB!Eļ$;Gkvl^ ?hIpq|~3P ^&%cM aNҘC ?7m_Z=3_pzRbG8ݡ>|d>Ԗ)~ q嫚J[1r;wQrkٝ.)[9A`lksGN[A(grziZ2}Li!Phx)''37` &Ayd}aħJ-E.Q*EdLz Xs4\Eߙ-vaz+H77u(@wqqGޠlD[&roSbfԏ˜cVBFsڪOJRKvjemȪq) _mbV_?%U7xpSfnA%q{Z =\v-n^g)$^Pulhe-D3+Fң%36(ȹ,n]݉$Bb\ hu8Շ D{>ԀV4[.'PSW?GR JmZ3bμkEVۋDf2ΏFE}N?I=gi'!-|&kH PA0/׀E T`Q0+8{|@>VRH7|YZa.c{Yϗ֫ ~_^}]S i`c+SXyda4b^ ~ae#PWyggSvZdoU1a\0[(p  T=&Ts'NO`X#E `ҺNudI&?P=WYŃaf?hce/ ؚc5yugt겳6QlE[ɚ 헌'EKqR &W>S LV\^򙜌ܗ=0JOtT|00eqzqgme{Kn>NCm>U:f!Q6 nݕr#\2G;jĊ `CΨȓAv^&S|vtiΈbrjl-qGX; am.@&$ڑah @K¾dp'] <oi4dEӋlEUrYWN6t1ă)[ۧXN'!4p-kVeU U) !qhrZ\J*<jQFָz9O% J˻y(㻯ú򘧎iFi=_ ?;rJM(JU+e&bHCPc9T:m}  P% "<k`f0߉'XiQCIDYN_,xVR(=#Eo,‡Gy;,}fWh#hם#hS?3Q1Qʟ݊F!y@M6/BMLIUwrZa;JvǃR)UD q0I3D PT0 ?9)r U8 R+[X4&V ]<x? .E3ꍫ ՈR}IT4n6+eE%05 $+|;OTma9lRդS7P^!l@\Cy(@0O!IȳM"U#iS!{[-XvFJJuIW`_l0~ SvzS#i^*sݹzã(x;ѥ|ɕG)ju7Z-w|uxE).oxuwwc +Ԝvm,tvK۩}lck-ݤY"Z'mhnd)yZ;i*-{¹^ -ub<['t!+spp@iنym~W79q hp=u]9v<67}s}\;<''=-j wDwH1T׻?y*i7Ж}-?qysx;u_<i P*"&J^4%h'UoUCnO%V^ٛxyJ^;Qݎ}H|c]sz:zVajqRv]:RBN1@^ e}EtŭH2KoMw|9yV4$AY{D j߭ ʻezMjmi!u"W=*YT;n@p TJW:K+E>x7[ή*D( aiCиs,a z?[t%>'I)P8N$ǩRlZdTc]˘ybs($iwS$Wc5Bn >31Oh̳GzܭO)\ ƔF8|"6tl[İ`B ؖ7b&9ېARBEL#!Bu-,mCtk<uhcP֖VK\eI 6 :cU]j:f :;i(ſ0'S_X;_:uՈj&>!KչJY寕ԝ[&;(%.[(07n51M)'YfP# i> \B1HhRwƦJI6㬠R . /ó/D ExTxpN4⒢Դ gu' r((%&'g&$H%Ɏ͜`Mɹ d$d(i*(*lfʸ3!̜Ԣ\-`TBP55ĜT܂ĢT dU  @#8xMKPA 30~?5QBt&X4-:.Z(Nr'NIBr#kApq]MaROh],.s ϧ݂߭k)* _ /'Ǎ""8:*s6yu{0 gYQD] K thp(^CD̯o>&g|nZ0.t)b_Vap|j%JM|, 3di?0@*DKLƮ$rܐs9X1>Gt7!74\;/i}C~d{~~wnBՆ[cs:GMm ^5xȜ$[g˒w _h #ʙii)T,X/ Oؚ2b.Y Aې0V? T"ڕS4xhiP2P;5Z'3΋T+1Ŷ{7g77| |dq5P)[H`P;,ju% f2O!?}$8}8g2Rٌ|Cp{n$p.a:͠?I i|'0'0Co *9ʽ\؝ʡkd(M@ƍߟesM&hCEITEal:K]w]Ią/òM"L,^]Ge;Y]re) LA}Do=VxAo0%H/hV4*{VU*tUrb5qy ;߃/KHQ~v~ϭ*z|v:=&'B( ȒqB Z%V vi\XrR,t&h[g> gpsenSrУ$SZ2mN g CXnqn(xp7Fh(ğz[}ۻPa޴o=^PP}o{͌}2(֜3)M^H Nnjb-J)=F;taRWmt f9E2<3KR֖lC'M }L>s\q1 B2h nMmr\Ϭ($-/7ь犉6wm3Wx;k9f9̢̼ϔG'fᚼEi, OfqxL Mx[+ofnĢļ 5&kLbђ+.I*.)KWH+.QS(H,J+KMe l\O~Ǫ=9U'd4{C,7 fŗ('e&Oc|p-+;n-܂ԠF:PB%PNyfJI?EHBx{wgd+K'Mh\\ʩy)i !~.\kKx[sdLxVms6ίغ3WC9 SH2ɕdss+ټ]u2d}]&Ȅ=99&*LӐn.ݱ`PnYb,4jЀ7[?A)XL8 M:Vm1 "KRraD, &M6 C " t-6 O(  펋9g1 YLJ3)mIr{3|֛i \K4A "Zoxw2p9LPFuq89BEO-*`n#bšr"L-jͬnnA$jtNxw2@ePDrq' ,(.L@a4t?L.{d;=vQXF WUh$[PY;b_GC;fp3q|d;0;ɬQUAhA*I*{̋@"k􍀏>IX0Qx$:7\Bt"2Zfia<ˆ*:s]933>Q_ ӯ8 5F8<` SəȨ065#24Aq+qz6VB5)ŗ4!ecm8tBCȠ-l=w'hzñLf~N/yS`XBY'LZ ƚňk.<c9,Ah1F&?}ئCE RD 3xbա/l|CA .4po68xKKhsmQ|4R%"[)t0SZKk_P ߴ S ;7v>G}w2TTD6}_&u|)ipGY(]p2R)I>͕6r-$8.7zhtm>f8b'zXޏ?c}/)nuF`,X DTaҽ2ϒN[WF0L'j6+$~Dx Uq{G XiI- Ka3ZDʑCPYq>/S0Zy\3py$~_b9ez!?z> 7u&Ļ;3,UI>m{$q[h꿆/9[+jt͵Qsu2!WX]u'ؾ~Xm.ּrKo;bӾiSFTOeN%՜yj--~-ʰ5gimv,uFZ 0UP%~\Ь-[L0E]+)8Ge6h ۶VֳI[MG0GHԮ BJX!V _nA4/QD]i7F B&2)#~$/q6).`%Y<~E ," RP5蘐 b,fpƀ{¤VU'Iv/ws( RP*{E-5tA$%yf)P{~ UAp)JN ʣҙίlFo=s0DE67'exsmg4_GOx.Դ̼T(+$(OAYI+3D!$;>7?4'5>3/D#$XXdEjZsrq)d)#P#xʳ{z'_b] ?1lxsgz3&cxQ=O0_a$18X@ sٗ{8P> ^!DGȻV @KþܶF@lv=N- 5H4:O\=##XN R_x 4B`Qer,WBv aA2wX'9TLD2F\!PuߨQqT4&VY,4*ת/z/߹XRΑ|ؙk|xi-䙌N7=xYo8~qv[Vե,(2I|v`Q@[JWz)1|3vR B *O>dƶ>2_e86&A*dAP݇㏟>BpG"hji)$ގ$HOD3G8H3%&@_ %O)h* 6>)vaPH8eQC $:48.vN .uZ N֡Q:)Cd$# 3 \98fwFUv5BvZK -j6dhdTEWBv!Pǣlx(ӹ7 $OljXdY͢eRA`>裦L{!LZyY<( `sV=wܲ%x=ĞbjP=P:&ς=m5p|1_ V/ m,Ȉ<nճEvYQgb_dyɼfý\k/R35z7 ("zlT]L{ڬel5vFNˡi͉}ΪW{ETg1${OU3M5I"]oS"^/+I iBe]ٝ4ՃvŌAä*h g/_R7:S,fcxN%%5tY&9l3xUNA d[P@M(L h A $FfiuٝŐ'0R  3mfvs=wptjJuA8VLUQ.$g,JBEC6wd"W,[~diU? *,[(UǤ!^lc`{ژz |n-=w8xl0XYT h!*-Qrk`lJ%JvMS r 1P)VMhTMq* 7!M:;F$*px ;ԑ~Nd!EXh[;\lR+:,xtiIE֒+AE|yգvVxL4X"{>Qj)P`.ALDzJִ/ip ρےUIa/Zd, v=/olʇu֐R)BaqBh !_apˊfA*!x4 kX}8 j0)ꝬFM̀$Gɜ (e%eet"F#Mz8Ժ%6N@p6 kƧ^Ja#c%44jH<~bZ;K`}!+C382 :6z:;eL4+{G<5Q:ܮ u2'}HRb8Gz02 r5d }1C?ɉn_>slWhvzBovh736v#Ûעf6'81v!՟y!NIlkxl|Cm4i"rxV[o:~ϯREY {ytR R/(V}ZdBrv@hwIў '3}yfA%8ɇ#2Ai-M?ܒй͆Am w\ZQ--2+;zu.Fkc%=Vlcv^Y:.0u[JWJQlp+m@0TդξU9yL5JuԉTYt==Da]_GׇasUrA *fHoCQ;nTFܷgLB$궬(=b37d bʻFVݥiRDɰ9IxV'y8﷾Nx(xoC$fOVgfĜɆl“sN~㞒\:y7 xmJ@pI^*x1@ۄt!,&!HG|!M)4? {sԳ_M%23;|m-2USx G)pќ KteY-?chUSB.2!]\<1ek1-&Nvپ7 $ib!C)]TݔW4K Huն MRy:bmJVâ`a{+`pCjmڱu~hc6wlG/[>ޮ|)ɆlKx(ȷ!y' fJxV[oH~WRdR:Uf{l2̸v新Fs\tps}2=}&B*ԍ"fmȂ>͖*{^72e,NX{! W( !d5cQ ԖdxN Y2*+3@,i;H+_*hAFeO 'Oh{=Y̩EPdT'Kx PO@0{mp)b& TmmTvm'EGfqF] .0X\lαf\:'14Ƿ߃;\ߡf!Ɯ:1%|用,SZDJ$&kځ\&:I<ˬ96跖hyJ+AA8>Ǯ],>$΁W27j Ti_[-X֛pSZ-*%l2X_Vm+錪"54D q}aֹ~(Ǫ N w~r;4f3MU46=+Uz8,&|Yo98l\_z;W3ĽNH#Rpu.|L'l`ʔqNJgCM1>dXB ƫܷ)rqtRZq; 5UR$6 /T"FS= -ӕkJK?|<~A o[h~kJE5\+*?F1*[eԙ`)>:Fc<մgxTסwNup$Y|% u6~ } KoL'ҁxo ^PiG*,H'bU*J+c f |wlFak\MUu~Ru輶H<5 V>e.+DAk||2gVJϔSn4"1LY~9O?ǡA-aAGpyػz%;3zҫo} .^ɨABvmF@G3oѐNEU>ĸfL|5?[9< {P"Ɓ.z?.\zt3㠷RMV pÁ>!M k7x[(J|JwMxJ1Ƌ-Vl! r!{S?3Y, U|#b`f7 Af'J۠Q؁l4Vi;F@2b1 J족FY-v>/0GPp`IS Ze/>zn+s?kbPE25sܳhWJ2z)ώJ( 'L&@$Fx6[.7~KtxYnH}WR]O2Xk;uÖ1 $[f7)E?UݤDI/d>YU]uԅ$ ) ʪ2zlri,JÌ T rtbO(jV`Xٙ'i4׹p?J*i(U/(~ʥΧ3 i^S&S&frx;ќQ`RU2 g:O*!dv4*'K4*q vu] ~\\\U".KaεɕW (魙 S='_nk_\ ̢B 20S%z3c[B@¡2|RZ@Yu4~n ëOfx53"Ϲ0zK ?9}÷ "-!\oƣӻ \\=n99Ql&] ;?a: z&29Ǵ<_ R㘣 &R"D5hRtpXDSYEJOaz=DDidJfgDb2#af/NŶBl:CB4 gK/IRĎ(fpHYMa$+x<Ԝ x }epur^/aC8;O/^'PrD(w0PnD5H%<0zN?̢+CŤ6JdriCtU2MHWa`Ol%L=8DX{LٶgE-d|N[GC4੍ &apaP =SBeXZ\;hzh2pwB-Py2q>L9,X6I& p|zk^,Lyճ|Ҡh*T "gxzuj9].ec.>[[XC. v:jk"Zwnd`Ab3!"|$!pT-c-GŴ28 $O6wT4c&vқA8Z C"c|AZAɩ +ͼ;k y#(MÕDkbk/0d78pz:H|sU2,ï8[F$7h7:~g5l׈se]acjjWvO;A̠g Yo@/}UeR:ı+qtA094 V$;i{<7y"xQX -YGݟv]ES5"X* 0]4~E%Ky RzShbEҵCT(֕٧J->:ޝԏ^1f<KDſ=f{b3쭓ngAtBcE,"@7nosrv:,)9cg#֥6V?wnv}{g(e#!UIc6R`[ueGܟcJV#ˋusl!06CAG!%cA? >¡ѦB]R _MS ,(mVg$N^]zyG?EoSU^y-Mx!hiKͦSbT`9~TN~(?Lz,uxQNAd7Ф\= ɘa]NzzI>I?O`O`|G{`c_׳/}gt5F:'STϚ=/y) XVRC(L"BG0bJAj˫ht^0k}dB(cmCwg1j ߽=Xh2b 75voI <"z}#lsDo^+ӎQt|[%~v3tBSTQdOtQk7 !:^hZEong|+ bOvp }3-g "x`j!ZhrdQ8&WIqOg\' x[˿o? 浮ũ9iz%yeEyy%>~: \ P]Q1RX6e4)?TxS]kAEFEҖm6|`}PJZB>Iݽ;uv̦0Ww ApfwM3wϜsw~l|ګuW6rmX9<`P=*DvV QȩO$)#2z`c&Cd.CRfs&xcY IP3>1ȁFK0 Dm[[o7.r-sQBe4 $s 3*;s#LfꃵqAuCʼizm8&L`yk0ó  J3t%Q4*Z>ű5V49-l,-rSGƆɄ#z|<6{U\!ҝ y< lmWWDGvf˔06oW4'Ie6/?S`[otd9P͑wC">wS i l|?KuRtoWn( Wr!" Qس[X%,?>5fx)2AdeN̒8Mf4Ax)Ah1䙬ܓY9RRsRtR5&e')L.`?Vywr&HF1ָxX[s۸~ׯ8?HQhg'wSŕuW@k`ЊPJ-ۖ8\p("~wr:O$$*g ÀT:2UIڄѦ 硻oTfZuFʥ8zPϙ UAl_@~cy9t=݈*ݤuqRoRJI$n&JyEsSQ,r*DYWr#O.LId1X,ɥ̲r7|;JHU,s+EVޓQM儢ge, ,tkA80;Na)&͔IL*݅OOc h4v勬% : އ`x|O#Co4T:)+iX?i#&?_Sb5-8 !Tw`-j'qOVeu3mYsN"tL۵D Uo6m6*$V3q 5x[8cT~.d!r%q~Kl8nF;D>(w.ǁ kuυ";yr0WɁ:p ;N#6ovކSEفᾎ} 6:JDfȐj^0@ԏ5YJQ$?Q,9SX5I-4KU<|,,kB s%0p@ K]l\vc;NS5m{ζFnf:VI46ma ژ/\SSyyyO{LEo{ggWxDsY"ix]PJA%#Z"Ő 6_BlneQm% ~[ιt_OEOjGKUIΊ^6@ANð2@B n gF _MD]T+K@qf!{|yg{X*;f`<3&'֨opv=~ tao,9oʅlr`cp'ذ?PhcGMWxD KB3Kb2 560cq*L!(ntbYV?&30hfR!f=6I6: r`)ۖm!KxXr8}Wtft.;/(^qR "! `в~@Re24pDSɢSH+9̪THeitsElDb,LӂK&J7Jk( O=0G7Zid,Y?SZRp6/_3DDL; 4^S.Aw9'fv4?(b i cfĒXiZX0WYsMv]/s=\^%OƢ7Tމ'F3fcrW` B؉q*JHISNLaj1?zߐxnI,S)`H4K۳_1z{j.>҈nF㫳w[pwqC73.܎eBO2ӂ=p%EӜ x) |x/^%ɺ5_"8Dz^63i`d)AsEv 0w+YDI+r¯/?Nin:K,^KN<6Bp[~JPs?r@RY =1@zOQC5?v-$aS r\)TTõJ~x ^Ձ)\쐿D!2&(^6PtKؼr%2{_#[hJ5t9:QR'-8yK'KTPc.Gx5؛ӵϟvN2ViM%QMPi?$V~;5 Mp`-`P#R 'gW̄ߟr Hg[^5%њ\itc6󟿴 e~m[U `ڊ%ɷ-ȵ'x2u]zXye;yz PŝUꓡOjM&012kx>+iPҠ jRw|&Fŭk2qwP:<axxG hmXܘ6 &k5+ k6ڍh3\-Pki3' 3e_9yuv`?J')0:pJ6岁2GSAثvݥX[?ev7oۡwUj<G,wzČ[Vƴq.Y 3W#+7WҵY匣rVK5(bcF=eΜN0 i*z](3ǘ8D8F/G3A {)K'tw*rڠJZ}. 1׬c/ PJ|-,1T"NF-yy_h@ q;,baEV+W Fý}#c;7ٮ-4[爟8 GjPż:kt{ϬMC>[ۗȦ `jfu{n][[a&ci^;;l?ܝwr/yYϐJ\8АuanSwM+ Gavg#4t&vJ8z&eGj-;p,ޏ=0ǿp&$FFk&rT&?lewҨԷnc(Eneb j=mlԀ* #x{olN!uluM+. ,(rF>DPbJfSiII~;\Ҳ!%`e '17)%jr"sl:*3S5KKRKKR\4Qna*$lx[`6l9 # x[`td/f͓9=5&|U/?/u,FC ). 3Y!:>;"Bx=6duRV())(I,K(HLK-O*M/744173RҼ̒Ԋ̜Ңb`$NO]H.xWmo6_qMP<9idPKRci95Zm64TQ-I:`H{6L$&N)TH{6cBY:30R(R0]y83mfn|`p, Lq6deaxO+#fs^ ^쾆SZI8vIcsaKS9X=uKft1S`x"3b9SIGXDLWh2pnYX, N.+nY6"cse9\scVE)9O`򪇄=0 7萁N͜9·R„Cf4m?|z1%|ݓ(U~sKbJaʭpwh5%`DÓs8<@κawq 87b3m'1!mK"2]s%q1c6ԘC݄kEoΥ{r g* udnv 66LLab6Sli2fGzha`4Ho>6n>LK3B(jG,M+ֿhkm5F, θY=`kkKW>Űi,Y7O P+68;e*GƐ_r UXn P#u bs!%1 YdƝm.EDBi5*\y4w Q5 Tڅ.=zZH>=s1hPM<ƝhWMѮ-^·,Ip==۰qie9ĺi\_3hսjXU^Zq(ŝp\}%IFF;|͘lzQ `\֔+̝D QLdOU5f /.)epQ4c~m,#B m >D> fӢ:ܖ`r J~)j 1:g2JIO\T!Xǵ揳\O'7%..] |jVH;udk%FcW:b B]p)o\B$g}LiB$b*[IG[eq|(~7ʃ7 .(髀pHtpi@OW ^zq។kHHh Wg˧ $CzgԼL i_{,QV1h MaH}&ӄnH`p?V:x`":qt:mWB%~xyJf2̰ @㾻\^ Jr gDJ#ӆK;7fFpd^f;].]<:efv gg`n8N?}/"oaJb^k%$1kHexQA% X]V٭f^*Uzd2uɰHq 6fkȣ6g6 !,1Tx1U;rhH]b" i?0ż^Wv,ŧ;ӔL!fJVëT9./>#豪wC -$*&<V5E">Kj/ȸS8FVˡړ5,'\1 wb0 >ZX%6nn[N{y`c.īJY"&t+x4e:01=({fT4VƨiV3/E5oHFc\*_>Tuf$nja~Tn$2p9#6\5 ' u=/ApB E r(,j XRaϏ>{45אJBIw9lսhRBwi *=TcLFڗH̗Den*b4~ev2R:ŖGc5߮B=󩂵cUEG>RS/ŗ ӅJ "s >'\L/]&IZ V/ K!p CPr# tŇ|>6owP7)opp)àvV:Z|նV∯Exk?a 6kFqUEl x;75nC(x1|' V/Xu5:(lfx}k|͏72"Aox5dqƎ͏720x}s3e,Qk!x;¹eKv6x;ycO&{49Rx;}Og0N>2ك_Prx;}~AOg0N>2كpj#xm„W0}En8xm„W&W3/[nQxu„W&W30k-x[eL hnDx[ePL (*n^x[zyL+o:nxx[:yl(mx[zig&g3*iPxtqFgnx[ñ  gx[}3f d;gx[q}1f g'x[1}f g:x[qmC3 gMx[ñm 3 6g`x[u;& Hggxĺ ygzxze g x:e i g xyF j2g3xy F gFxiC# kYxi?dWFm6>fxka8[fxka8aWPUxS+K-*c%03mhnjLC1PЈA"ҤҼR<Q`5. r2RKhiohbjLF?=@biI~AfN~nzIIJbfN>$Ըd姤%<Şy%E%,8,3h1:s3u-971;'Xle0ĂK5d DAXbQfb^ RCzX:pd4?0- :R%B?SChO a0b `^n{t TBOZy+;g}Δ-=*}'mװe_z?]}6H[MUkת*]}{'>/]ᅲB5}YL$گNA-/-8x;˦?3JO깎휿ؖe_/ȉ"~k 4)pBڵʗ>kooĦ./'rS^l/h%yzu-zq_~3h5޼1ui???|_: >4*))9%4P-zk02e!)1'G_(5(5$&z H7f5g&9g5_#"#?q 'c{1_X!uGW-S}*.N >xэ9A^[%\UbC +V|ɟuuk WV  yfگW=8?ȹtԙ>>d^תNjD%v{CI;/x7;/{~Q/h 5Soݍ9&>‰M,8}9BUK=/ԻopbS q7"Dp,cu8{KvmóF=߫UO>̱vYk*zRǫܺIQggd]h_vɢv 8], 7D~="i =vcGK問&U*e0'.xǮ_lC-xWoV˹L8#Ԭ4vjFt&ƖiIIf斩)IfiII)FFi)橆FIF)fFI&ðK4@IeA* <34 ,< F(`Q0 F(# (q>x  ׎# `8$]Q9:Vܢ TxM+,He103mhnjLC 1PȐA"ҤҼR<Q<@a (H425+.ͥ!0#CSO`hlddnbil"RMRLҌR,̌ S ,--LL -,Ҍ LS-, chļ̴ZA #OXZ__^kgSihg`ghE@>'3(5%~)z( Fg^IQ~qAjrIf~^pjQYf2"bt&f$[sobvOfqI^IE ^!.`j Ģļ b"7&u$i0a0Ztn>(K-*2M 3haăԜDAg` M F?=GXd2Ӂᐔ_\X `m$s5Shv5_#"#?qA3 ҽNߘO j:#qw.>d-WLy c3ET]ed x:g Ǭ's;Z6%ǫ?8%;[IJ~Y uX0J}p6ͺ8y|3OE7 ]9q1Bog~Fȴo՜p^)fX|CE'įQv&VedaewêMG78)XikD"8lZв6>Wj]^$E5)J?c 72MfF"F#f/"zQk>5n:q%7D~="i~Զ7᭼Bɪp\Y`c7kAIW?1)de璶=g\!5iuP%B?SC`o 0:b ařc|UEܠ7Bf0!F/\巣g>>%W箫z(2(mXVqNG'5f2*Yڅ~+fg+ƛl.u9O⍎/#"?k FY߷g5d(f嶙UIh5&yͼOo˚}g^jμ(g]WğN|ܑrD+kRןM(3tѫGSߺXԚkS7_>ѿ|z;>NXr7n``Q0 F(`bR+(jax ӈ*`"Fiݓ R+`s_ ӻVxkMLK-.a!03mhnjL1PH11(Q0PZ\XPTWRG! KK 2sKtKu LR3s* d&ƽ$/?%U/(+)/.HM. N-*LZDu'%LTs—nyV9 >-hmSݺ[z*6 XϷo'ۧ/ q5XABcw[xˋ:icOe> I \Oap2ZJШv#Ot7Y2l׮y|$p[}Q&  ]rY\ޣe'22AIeA* (M GzG[`Q0 F(`Q0bD(#xG00/ Zֈ!5-xH{ )Wxv+K-*c%03mhnjLC1P،АA"ҤҼR<Q`5. RRsJilohh MF?=GXd2Ӂᐔ_\X `mТ$̽i+5_#"#?qE b{1_X!uG|U k朳gźo+sb~ޱWMNX\ki2cYaB鮒OVOV纾xzGrGњGRnu~qM`^Y <]>|zhӒʉOy{ulziނr'h45RKz591AIM8ư s߅6{^HY3V;םZ}ҫm2\Փ>ϘAE,u23׽9]s:bscf?Nm+Ggy!nӍ=PL~1v[S:tɿ6 ̈~ Y qOap2ZJϰPǒ̥0#%Bsx4ws@o9=X5O9yG?~g[U 7ުVSODoXM fnݴcy8uV޽/,. x+9sxnpsWv:Gx3lXpYNd9+MT7=? ^W0N mWڝۿ1@s?4 c7ƀ e 71/3-v115CF@OXZ__^kgSihg`ghE@>'3(5%~)z( Fg^IQ~qAjrIf~^pjQYf2"bt&f$[sobvOfqI^IE ^!.`j Ģļ b"7&u$i0a0Ztn`Q0 F(`?(@]kxF+/J,(H-b%03mhnjL11P ДA"ҤҼR<Q a0 ![䢯}s,Ի(yθ궲K nӊQ^β<]UWG]fi|1oڷ*hs?_\צ=/?75$57>'?L#XQX_XZTIaE~@Ifj1EfgeS<\6<3%=$(5HÜ}S}2&T#'3RXWAlT痐3( ;h $ԢTrhKK%!K* @$;rAJjNI" Zohjd>Z\;|I6(3I99EE%0ֶ @ɮQUm1nUQ@# tdbPdg8yQ6AiA1"W?i_44#R/-_CD]CO̳^pé%J]3Uc);zkT|Ջw^X}ēX.W)g}l2ԋ]2I+.~֨_j.vmv1su~论knnwPLֻ[s$ɪ{8vsӯ==w/h;?鄣E=nw^oQYQa^w]e^ՁrZro݉~>?w}wLo a-x.a+ΆYeq .tX4=Ejf/OxϘ\}jJ3L59hv#xS}*,\85pU7fp.>dytvLG_O۴޼'v$U#_vGӟwI{Ǫm9N?s:UfB}+%n - G-^~QcЏWs=:;Y}ZuNRt銔{S`ho - d>1ޑ|qiΒ櫄e*/Ik?-/zZ1DK=̌'VRfzuT1`p5*;8m|(<1WJ/ͨV]ϧ]t|KFߦ|->ّ,XB?. ]Έ6' 1&`Q0 F(`y^(,|xKM404I6M56N0JH16IL304L4J2MM2JI/ ixeMLK-.a!03mhnjL91PܘԐA"ҤҼR<QXZ__^kgmhg`gd`hlhdhEPE 0.#5''?>9?'H4]+#u ]OM/,.I͍O'HU$dURjTAQ~AjQIfj1&geS-1F*Nug4Z%Vhx!ꔼv}spM} xp%;U%{#GMؤ)U:gZ'N_ZfꝳA 0QOKݛ:1@zA˛<18DdSF56^+]&|w֥+Θ7ɚJcUJ{~^zfiCΡMؕ+M[k=`ǛrMp͞!??`EkW>ڽxMb7*eq#] .tLXl{t Z+^u^0~;UեiRCU{.r"m\^qfE!?lϘõE$Կ3J.+.֯SgUe+|8䃃u&Q|5®|.O9v  80>A1hRcW:sv-xsjR~\܈dMQN[;UǬҮ'6yzߧ u}>(e}n?=q6ej%EX W:u\7x@qFYqi. P ͌Fzcc`W<51%%<2%%,2($595241(djblbl`aidffda`L~c P^X B#znu_ 0T;/^cӳr?Gv6y{sfoPa3{2d+}LLח(t?*Mlu@I![/o=gx`W}<83ؿk{^N }XʿVBO:3g{Ee k7C0XTp0 ixd+/J,(H-b%03mhnjL11PA"ҤҼR<Q a0u@Ê3Z/2y>*I˧RnyKCs57Oܐ4s{vՅ*&5g~fiB۬ݸ$ۼOcF%S5xX;:k4*YJx->_'|Zc˥m[rA'"d;CIo_^oNe9nSy.I/y:ST w:t}fވXWN>Ѻ8T5<_b"‧aTBQ󿡉hzk0 &eX٣F@ $ 3'D7$[PDDDX[a\UO12RsrsJ3UPI.2]At\d^EAbIF|aijQ%F[%YOcK2(q ؘ̔ԒTrMN+(!>'3RXWArlT5痐3( ؤ:H幉DԢT҃H ɉoXLpEu1IGfT] b 0?=hDD#S\A(bO`nfhabjjhlfibdljbjjnaldjajbjhfnjjaafdhbdiji`biilnd6Z| mSHc;P}p4\;|I6(3I99EE%0ֶ a@ɩ1QgUQ@# tdbPdg8yzQ1AiA1"Wum$;as ͟'%rLtag={#g dzґoqq]&<KVl/t?mx.p[_WFzreޏ.Mk׿>β徭f[ - ^sv''w܃iW0ft/wOոtssrX'aқ{=U|o|)g1y7Ka7w3TůŖp?㣨SWgŻB5lWމ ^arwgi2p1VEAޤ7*\z&@Khq',IYTBϠsjż"ǷJSXqw~]&-Ņ t-֙m8q7 Kdee`P*y),s>[@HLڷY?5rw"R~G/*|R-O،_Z?z6Z^$\587j حyh]T#K9{媷~շci *>S-jAˮWT٤m}WwJ?\onw1gg-ߦZq˲C-U^{c̩+)gls2,2S kF' 8\9n:&~ _} Ez#u\h4V5QJnkWI4i~8(wqS~a`hdizXU9Q9Q-\$ ꈾ~jm sEYw)=!e9Sb{8V->'y7mU{91L<3v^Q"ON8>`ڨYSZrd ( vjcFzn ofr5m|!8qKgZy'ux&w6ZХOUx[LhIIGOnURk㑙~Z'϶+m/yww?y;_d̥Jo^SWjYӟTl wnƊ6oY|ԟ'ԱD\6h F{޼қ;s77_Gߥ5Kq.5#Eg_YS˿)K[/ݞq]ܷk{SZnЮнyoFBa'V'4,)Ffť4P740f?c$3D4Kc`$Y&&fi橖ƉF@jdild`hlj2} 71/3-vFd4$d覗dh@`)&Z\:ȵ ,+$l6SjPEAbIF|aijQ%F[%ŔTZ_RJQ%y(#5''?>9?'H4]ؕDD"r//OIK.( Ng^IQ~qA*zdh N-*LNի!NwXbQfb^ Y1`J#6` 0 ě$"‹h'&fPξ٩>WRQB D8lJPLR@Ϗ6G(`Q0 F(!(kйx 8G0q [G(l7`1 ǻhxtMLK-.a!03mhnjL1P،ĈA"ҤҼR<QXZ__^kgmhg`gd`hbhdhEPE 0 geTkOMO,(ԠĒԢJJ*(/H-*L-Ԥ̔ԒTJJL.#E999Ez"Ʈ$"H{IvP~~_~J^rAqLdoT+gb{XjZy.OOGMI}.Ųg{~ [~q~=sS8Fm'_]a_>Z=jK~t̟#-fK6r_zYտ[P,Y/,ah$zrp-:*|ԜDA F# LEpHJ/JM.JM,I }``hM֍ybVd5_#"#?q,FX^oק5̛ޟy]ź N*69WA ^!'~c J0N>mɋkw/nEiM-;,Oñk <9=Cf^["ci .bpR6M'7H5%}yjЧ)j 5NpjVG+Ryu'Y+OpJr !"n]XK9eWo=F'V}$tm)O46SJ_Cl370ewj٬y D R粛:x+_xz6iϵK#iV*;)3ɒs/wRZyBdK5R 9EZǞMg}vd#+Se.IiubQѺ6|Z~|]uEfY͊V->FGO%+GAwS>`Ȉӷ rާW3oc[ h::foP'_6'BBG["oTe9;ϻ:xk_ǽ*0K616k?#M͎q~qs(`Q0 F(ޖ9(LbkxEMLK-.a!03mhnjL1PԐ؜A"ҤҼR<QXZ__^kgmhghgd`hj`adEPENfKKSR XWB-ِAZϼ<@ZTWCI0"})Dj+/,H-&&RlqMN,.)+(!'zX|!AM>/LIOzQj^A%EF%Cc32K)uIEAbIF|aijQ%FdR/Iy$_DLºr?(S@`V@SFEB.vh4ws@oz1`{̱Vw}ZZC/2[V>s In퍭=Kf8i>OTswY7?I@t۔N 1Y呝Ԥz_fqDcm+e:{ >FYߵgIXgԻꃜvawx/ɾwmӾlܱKgG]gֈvzl_Orzms{C{*[f{KO>T0]f|{ۿL>ٷ08+ZT{5KhhxcfzB@YjQ1!HS;F`O`Bg?OwZ9~Ӿv,v8Asp?/f*E>_V.6fm$yO'7=i; /Q@Qe3W/Sޟ+_JgJ/LBE^}i{|r|b٣Ko4O,|=Rwej7'428.:l~)1c ]6̗o|Rmll Bg]9=q ױ . ^4Iǝ'~jC95Hm}Ć9MW__.gR];Z׾L\Wx栀5kRSN\v=}zi:a'q$/˭#ܟ6/h#7P_zE7-ȯSͬɿ惂e/^J*~&{ɐ.UT&eXYJ͊6y6oPwuwqlol kF1a0%AaaLe:}Wq>LN\ƝT!w ZӘqwW/;^OeÓ lZ Jr>#u,:+|x΢B#*mOڼScq˺-S ̝Ffť4Pg: 0O43H17M1H54LK0H3N02H264365N13IKK52OIJ41561LM55JIKMLLJ3Hm>Q0 F(`Q0t*(乇x ?rcR:pULY N7Qo}r +xK>A*r4 [ V%100644 test_gnome_app.pys "$>#bЯ Gx4!E:@aE1JU._eT҅z"%9xOjwPR,Bdaå^4.x6>ߗ_$G-\a$cR} !?8)[%fI !+/e%gZx{}kC(+ gmx{ǽs'/gx{ǽc2 t|JxȘ"Ԗf/|>>]#y'qxȘ"R1%w>N˓j*5V]] gxbȺ# +x=ksɮ+8)p97c{Hx;;>9WR?{0`H6LZԒZ-^lvNh΄nl2J883gWz!v{ ܱG ,n ]d_8̎4 6ft8 rk;8Sc~c?=;۝oo=s;.]׏ tƱ'̰euHV`룼Y_ύbj/o.quwI g]K;tlc,kveË[fuԙG`R<%ln8>_%[51^ GIH+[!Aj-H,YZ/3 :a[8tY!I(.B&e|jV)ZZ'gkc8d>F.ѵ&!6lztZ=JR&g2sbK'F.|%б F;ko.+!.I6N7\8 *1qř,")#Ya-ȯ* >%%#%+ u?{wI>1ܖZoS/&k;4l`̱؋^ܵRPIiw\Jqg`EG*+um噺@#wyԋrN8wT-C 0"rf9:GXj|:1?;O6+PŔ3 7F W(6c|n+K ]U¾%NA={{jܰoc7=E4BQ'ħ{/+M6N|YpZ#v((miמ37gV@{h*T .eK #@ r*-ZƂU j[x!o͟4lmG|Iu_ v="|ǟw NCφ4}[Fnj']Drin*ѵj-tb범 Ӧfɟgm=6O3埕X2NW>Xˈ-==غ 9sw,bjYiy瑱~6㘥(ZΕL C鴭u.^l oy(&qyДW|;F9@ 3?!LT5q|ZY_ y N~>P caa1Ƣa$!L?PpA&9֢@;isޡh|), md{68+5!G%e5)^fz\5\uBn\zWh9$Td(a=i`փ,-61FcROz23xƬ`m-(ԉDT'`R\xGnexF[Iq]ͣ8rߑ&|#;4%ȤxsB"@E;!e\1Fl9' &)ݲ9*rrZܑ98+$Ba O)qvͳ'̦׮a)mYٝ;4uX̹x7DBa[`4B&⳱@! %Ӹ~ 6sRUHh4?LA:ߝ i:g}  qrP;#b z`?槁3 /OC8׬V/3>:3Qa5.زɠ{kXg=5ǀw{hBM`Y.`+$8H<;B ,!ǒ3k<$9ta`g/+Z->0Ov 6jI+YH k+9 =%ZrLR%BwB x] ;C!TCkNJh@*iϬFoΞY9#|E0f6:9NZuF97IsB< ke%$*RϠ>b"md)CxH.23vA(",<tgfx)Z_ cPҤku>*%ŘsEWk(M̐^VEGe=cFx [qj˷ʦXeRJ+_](њZqgpB(1KffOW(|2C%Z"5QTԺ@Bko鄿P|ռ&S7IKhɔI6̆E{mhe<-ㅟ(LWUA[$~z$^"&T2ySc*6I?mӵq!n\ulqoāt:ѽ{ݺCM=j~X?M~&W_xΏwxHZ@:> )/?\DCQ 'y_0~׏bT76e}|1]g_p/\j2B~Uxpq,7f'Q?IK g1!E|%9z })QxZVN5,H0ǫf$XT#.N0;8kխK ɾ]4c\g8^p(K.,zeS^rɥF5FNwr\u>Q l9]Fa5ȐtP/ *.\]?]xg-R~FW&Ǜ. ?7Xw,3~ف, K+ I6 {\DSbQMBۅtIOY xbZGTLsGg21iVuD(EΒQGD׊LD%p FxO<Ɓ ‰o\87tRD{>p%8`|}:ZUlFEO"]Д!M]l)e@˃B_ڇ=u}֛,MSMk`r*sɳmktu HbEZes Pab7\AY5e]+ifGj՝"L˨VU ٹECs~ R:Vk9{ZÕ"GNW(\hdoҚaXǝ!hְ#\H U:3B+>u,Ve}qb柉&po"Zh?QqoOx8&*Ȫo8ʚ G~?RY6.cx `E X5B,' ]苆 Lj1.sBmç='(yot*_|tE)kwJzzG)zx.q_]8Qd4Π*8Ҏ0HH6L8t@G`nT>tovH"-z*XTDtb xE6 *j0q!<( v)#E?D;2VZ, ٪R>dYBKRoT*1h3[g'Æ8 .׬ITS {J톦2'Z/uTYU˩ɨ yy>Z15͔%cUc]T" MAl}vp*;\.f¤JRԲ$\DGx]sqʒLMjB U inek[N[2`,?("rfsgR0sY$:Pg5&#w?9)߲i E=&~få[աZ7g6-]bVX׽l#FO/ݿ=8((\ &RE]{'y56Jb*?QVAvLq~SŜ?<,_2'[FK I*<5O98|֟?/1*7+'2[%+pFYr@{sk|簾mgR0 ? |ĭ·A2]62W#bQ󧰩Jf̺1RVqs?|`~ |{`?EYwMznK?̴ -/)n1n*UԲ2<$23DJ/V.ri_0jDD!gcqaVVGe T-|і5#.4p( 0UZ'C1^r Ū)NGj!?Fb`X\ m4\VOoxV5푴~jp5yR9I*}-D N*UYMEO]M)Iu\Cf.*Cw}'+bYhZ&*S mB1.R\2U&KiHǨZ kOPVe:~E^Cy+]'K4~^BT.ZPҵb ה 2 bK^.?4T޲x/-,5o҈k:ǮF|KQR:%;4 qtŞkw2?vNai$iuiQPV%Tsl;ʪ Ɗ<7Q Yn=Nr}qd aR_|bӵ"Mo)E̞Lt u#tDf[-Nk,S|/SS/*:Z655V,&,lz>ϭUŭ4 kr[s2Q YJ@QTh8=DYV7QmPaꇰdFׄ*41MLae}{VVnfd{ꐩ__ ߼VQC\"u=QrP^TKFVT:Ud5\t$T jNU 2xC$3.12'U q$h y )FD$7KgH[ ,xYo6~_A /8a. l#V%J梐(3;R?";D%. 0,>>7l4$!QnryƔ_ǿ>efKXȝynQw[P.)ʶL"u $yH,4 }!M#DR{?`l]: Ǜxo-k߹sogs,Fg:xp7ABF&xt y&v,Y*ʴȼLr\yK0G4"̚pL3w./kW-^FXr>GX^L>U'+TgrH#n#f?E!F(Rχ}u؜<ЎBPɶ'ee4zfoh)8>׵[%17) z`̑js v[8l]*|Pc(sNxZ%100644 changelog:Y:=-"cJ%1 WOhQEfGTӑjsUF _K9oF&>x-%100644 changelog޾xHt Ƒɑ%̕Wzx-%100644 changelogp䠴X %̑7bxB%100644 changelog5$ؑ%5 9WG:MF͊ 3%X3xB%100644 changelog9ӭrŨLc%5 9WG:MF͊ 3RwxB%100644 changelog6&UrYr}n tDsّ%5 9WG:MF͊ 3CUxB%100644 changelog'5g1BTpau%5 9WG:MF͊ 3OexSVO/*N-QM-JNQ(I-.)O,-//ႳtR+tJtt jiZ>x""iTfO2ow_ #xdd`.RYwcyͅ״>NNum) rxdd`.kNw-)쿭*hp~Do;- xdd`."=JSyuFv xdd`.rAagm.g0 2T =x33PK,,KxxQD!9#1/=5'?au/[82WoZ|lx;re[R768^P=zfZ񍁿۪=2xF;Dl2AkCYP]FnIBE*57(T81 mSZRw?,b/{"UO];i%X +)hA'{[7ePgw/}= +Gkvtbm H\ |QMVv(2c 4<fsL&,)odB?`QE3y~iF#* KOs9f8W9CN; xHjS'pz0> cq<4Xo hNtD.T "u yuJ$- LKd_a j}M0 !:JD&R!Up3@G^YV[6a#%zr6Zn@1=.W_q^g- xu&8e@O)W@ Q5XIh)h2<_Wautopilot-gtk/.git/refs/0000775000000000000000000000000015044127642012356 5ustar autopilot-gtk/.git/refs/heads/0000775000000000000000000000000015044415152013436 5ustar autopilot-gtk/.git/refs/heads/ftbfs0000664000000000000000000000005115044415152014461 0ustar e73a7b3deabf29e33635331e91d0277e051d0b9d autopilot-gtk/.git/refs/heads/ubuntu/0000775000000000000000000000000015044127643014765 5ustar autopilot-gtk/.git/refs/heads/ubuntu/devel0000664000000000000000000000005115044127643016003 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/notes/0000775000000000000000000000000015044127642013506 5ustar autopilot-gtk/.git/refs/notes/changelog0000664000000000000000000000005115044127642015354 0ustar 028902076bcc088672c825dba977db1449273d3b autopilot-gtk/.git/refs/remotes/0000775000000000000000000000000015044415152014030 5ustar autopilot-gtk/.git/refs/remotes/athos-ribeiro/0000775000000000000000000000000015044415152016577 5ustar autopilot-gtk/.git/refs/remotes/athos-ribeiro/ftbfs0000664000000000000000000000005115044415152017622 0ustar e73a7b3deabf29e33635331e91d0277e051d0b9d autopilot-gtk/.git/refs/remotes/pkg/0000775000000000000000000000000015044127642014615 5ustar autopilot-gtk/.git/refs/remotes/pkg/applied/0000775000000000000000000000000015044127642016233 5ustar autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/0000775000000000000000000000000015044127642017555 5ustar autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/artful0000664000000000000000000000005115044127642020771 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/artful-devel0000664000000000000000000000005115044127642022066 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/bionic0000664000000000000000000000005115044127642020737 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/bionic-devel0000664000000000000000000000005115044127642022034 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/cosmic0000664000000000000000000000005115044127642020751 0ustar ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/cosmic-devel0000664000000000000000000000005115044127642022046 0ustar ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/cosmic-proposed0000664000000000000000000000005115044127642022602 0ustar ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/devel0000664000000000000000000000005115044127642020573 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/disco0000664000000000000000000000005115044127642020575 0ustar ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/disco-devel0000664000000000000000000000005115044127642021672 0ustar ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/eoan0000664000000000000000000000005115044127642020416 0ustar ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/eoan-devel0000664000000000000000000000005115044127642021513 0ustar ae6c72e4ce4ffa3ae62c3704e64a6cdc7061e8ef autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/focal0000664000000000000000000000005115044127642020560 0ustar 40e07635b89061c39f6808d26e3740ca0a9d725c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/focal-devel0000664000000000000000000000005115044127642021655 0ustar 83f03c700b03c1fb20f41396330f80fae38b03c7 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/focal-proposed0000664000000000000000000000005115044127642022411 0ustar 83f03c700b03c1fb20f41396330f80fae38b03c7 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/groovy0000664000000000000000000000005115044127642021021 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/groovy-devel0000664000000000000000000000005115044127642022116 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/groovy-proposed0000664000000000000000000000005115044127642022652 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/hirsute0000664000000000000000000000005115044127642021157 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/hirsute-devel0000664000000000000000000000005115044127642022254 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/impish0000664000000000000000000000005115044127642020765 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/impish-devel0000664000000000000000000000005115044127642022062 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/jammy0000664000000000000000000000005115044127642020611 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/jammy-devel0000664000000000000000000000005115044127642021706 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/kinetic0000664000000000000000000000005115044127642021122 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/kinetic-devel0000664000000000000000000000005115044127642022217 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/lunar0000664000000000000000000000005115044127642020615 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/lunar-devel0000664000000000000000000000005115044127642021712 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/mantic0000664000000000000000000000005115044127642020747 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/mantic-devel0000664000000000000000000000005115044127642022044 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/noble0000664000000000000000000000005115044127642020573 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/noble-devel0000664000000000000000000000005115044127642021670 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/noble-proposed0000664000000000000000000000005115044127642022424 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/oracular0000664000000000000000000000005115044127642021304 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/oracular-devel0000664000000000000000000000005115044127642022401 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/oracular-proposed0000664000000000000000000000005115044127642023135 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/plucky0000664000000000000000000000005115044127642021003 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/plucky-devel0000664000000000000000000000005115044127642022100 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/plucky-proposed0000664000000000000000000000005115044127642022634 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/questing0000664000000000000000000000005115044127642021333 0ustar bc6cf067c659610aa12d853708ff7213d7f7b072 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/questing-devel0000664000000000000000000000005115044127642022430 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/questing-proposed0000664000000000000000000000005115044127642023164 0ustar 11e531609881caedeffac521520b8817bae6ef46 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/raring0000664000000000000000000000005115044127642020756 0ustar 610b91d8f94a7830e157529c7b99d550e4425cd9 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/raring-devel0000664000000000000000000000005115044127642022053 0ustar 610b91d8f94a7830e157529c7b99d550e4425cd9 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/raring-proposed0000664000000000000000000000005115044127642022607 0ustar 610b91d8f94a7830e157529c7b99d550e4425cd9 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/saucy0000664000000000000000000000005115044127642020620 0ustar 9ab89b4b30802dc9c99a1130054c3cabc888ac0b autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/saucy-devel0000664000000000000000000000005115044127642021715 0ustar 9ab89b4b30802dc9c99a1130054c3cabc888ac0b autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/saucy-proposed0000664000000000000000000000005115044127642022451 0ustar 9ab89b4b30802dc9c99a1130054c3cabc888ac0b autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/trusty0000664000000000000000000000005115044127642021046 0ustar 92aac62a5317a23ff2382d3ba9ea859ccac65900 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/trusty-devel0000664000000000000000000000005115044127642022143 0ustar 92aac62a5317a23ff2382d3ba9ea859ccac65900 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/trusty-proposed0000664000000000000000000000005115044127642022677 0ustar 92aac62a5317a23ff2382d3ba9ea859ccac65900 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/utopic0000664000000000000000000000005115044127642020777 0ustar b756a1f9d2aeb0bb146961540d24dd00baee7c3f autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/utopic-devel0000664000000000000000000000005115044127642022074 0ustar b756a1f9d2aeb0bb146961540d24dd00baee7c3f autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/utopic-proposed0000664000000000000000000000005115044127642022630 0ustar b756a1f9d2aeb0bb146961540d24dd00baee7c3f autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/vivid0000664000000000000000000000005115044127642020615 0ustar d50ed1dd8d1e95606981f9eca3e41fb01dd18ce8 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/vivid-devel0000664000000000000000000000005115044127642021712 0ustar d50ed1dd8d1e95606981f9eca3e41fb01dd18ce8 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/vivid-proposed0000664000000000000000000000005115044127642022446 0ustar d50ed1dd8d1e95606981f9eca3e41fb01dd18ce8 autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/wily0000664000000000000000000000005115044127642020460 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/wily-devel0000664000000000000000000000005115044127642021555 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/wily-proposed0000664000000000000000000000005115044127642022311 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/xenial0000664000000000000000000000005115044127642020754 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/xenial-devel0000664000000000000000000000005115044127642022051 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/yakkety0000664000000000000000000000005115044127642021155 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/yakkety-devel0000664000000000000000000000005115044127642022252 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/zesty0000664000000000000000000000005115044127642020652 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/applied/ubuntu/zesty-devel0000664000000000000000000000005115044127642021747 0ustar c49ea05fdc8dc3bad664864c47ad2651950ec14c autopilot-gtk/.git/refs/remotes/pkg/importer/0000775000000000000000000000000015044127642016456 5ustar autopilot-gtk/.git/refs/remotes/pkg/importer/ubuntu/0000775000000000000000000000000015044127642020000 5ustar autopilot-gtk/.git/refs/remotes/pkg/importer/ubuntu/dsc0000664000000000000000000000005115044127642020470 0ustar be8fba2525b1b221bf8290265a6ffa9c2aa0f6c2 autopilot-gtk/.git/refs/remotes/pkg/importer/ubuntu/pristine-tar0000664000000000000000000000005115044127642022340 0ustar 5fae954a986274b16686b04425f926b668ae68c7 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/0000775000000000000000000000000015044127642016137 5ustar autopilot-gtk/.git/refs/remotes/pkg/ubuntu/artful0000664000000000000000000000005115044127642017353 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/artful-devel0000664000000000000000000000005115044127642020450 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/bionic0000664000000000000000000000005115044127642017321 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/bionic-devel0000664000000000000000000000005115044127642020416 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/cosmic0000664000000000000000000000005115044127642017333 0ustar b7826b35f9a94854b1a78699fcc8df83ffe012f3 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/cosmic-devel0000664000000000000000000000005115044127642020430 0ustar b7826b35f9a94854b1a78699fcc8df83ffe012f3 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/cosmic-proposed0000664000000000000000000000005115044127642021164 0ustar b7826b35f9a94854b1a78699fcc8df83ffe012f3 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/devel0000664000000000000000000000005115044127642017155 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/disco0000664000000000000000000000005115044127642017157 0ustar b7826b35f9a94854b1a78699fcc8df83ffe012f3 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/disco-devel0000664000000000000000000000005115044127642020254 0ustar b7826b35f9a94854b1a78699fcc8df83ffe012f3 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/eoan0000664000000000000000000000005115044127642017000 0ustar b7826b35f9a94854b1a78699fcc8df83ffe012f3 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/eoan-devel0000664000000000000000000000005115044127642020075 0ustar b7826b35f9a94854b1a78699fcc8df83ffe012f3 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/focal0000664000000000000000000000005115044127642017142 0ustar b88e68603bd13e467fb29f9555fb684a43e73d39 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/focal-devel0000664000000000000000000000005115044127642020237 0ustar 287eb17fa7932b863dd7cd2afd889cfd8e6a8d9d autopilot-gtk/.git/refs/remotes/pkg/ubuntu/focal-proposed0000664000000000000000000000005115044127642020773 0ustar 287eb17fa7932b863dd7cd2afd889cfd8e6a8d9d autopilot-gtk/.git/refs/remotes/pkg/ubuntu/groovy0000664000000000000000000000005115044127642017403 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/groovy-devel0000664000000000000000000000005115044127642020500 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/groovy-proposed0000664000000000000000000000005115044127642021234 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/hirsute0000664000000000000000000000005115044127642017541 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/hirsute-devel0000664000000000000000000000005115044127642020636 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/impish0000664000000000000000000000005115044127642017347 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/impish-devel0000664000000000000000000000005115044127642020444 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/jammy0000664000000000000000000000005115044127642017173 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/jammy-devel0000664000000000000000000000005115044127642020270 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/kinetic0000664000000000000000000000005115044127642017504 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/kinetic-devel0000664000000000000000000000005115044127642020601 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/lunar0000664000000000000000000000005115044127642017177 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/lunar-devel0000664000000000000000000000005115044127642020274 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/mantic0000664000000000000000000000005115044127642017331 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/mantic-devel0000664000000000000000000000005115044127642020426 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/noble0000664000000000000000000000005115044127642017155 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/noble-devel0000664000000000000000000000005115044127642020252 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/noble-proposed0000664000000000000000000000005115044127642021006 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/oracular0000664000000000000000000000005115044127642017666 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/oracular-devel0000664000000000000000000000005115044127642020763 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/oracular-proposed0000664000000000000000000000005115044127642021517 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/plucky0000664000000000000000000000005115044127642017365 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/plucky-devel0000664000000000000000000000005115044127642020462 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/plucky-proposed0000664000000000000000000000005115044127642021216 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/questing0000664000000000000000000000005115044127642017715 0ustar 3ba06ba5b094d4503501e0ae95ae89226a8a515f autopilot-gtk/.git/refs/remotes/pkg/ubuntu/questing-devel0000664000000000000000000000005115044127642021012 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/questing-proposed0000664000000000000000000000005115044127642021546 0ustar 35a79b88b347160a62cb8c8d6911ed764f9282a6 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/raring0000664000000000000000000000005115044127642017340 0ustar 413619c94c324fb7daaeb63f5b6c1a1b48b4f524 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/raring-devel0000664000000000000000000000005115044127642020435 0ustar 413619c94c324fb7daaeb63f5b6c1a1b48b4f524 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/raring-proposed0000664000000000000000000000005115044127642021171 0ustar 413619c94c324fb7daaeb63f5b6c1a1b48b4f524 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/saucy0000664000000000000000000000005115044127642017202 0ustar 347e3e7c5b46ab0e1c4b61874b74431a0dd1154d autopilot-gtk/.git/refs/remotes/pkg/ubuntu/saucy-devel0000664000000000000000000000005115044127642020277 0ustar 347e3e7c5b46ab0e1c4b61874b74431a0dd1154d autopilot-gtk/.git/refs/remotes/pkg/ubuntu/saucy-proposed0000664000000000000000000000005115044127642021033 0ustar 347e3e7c5b46ab0e1c4b61874b74431a0dd1154d autopilot-gtk/.git/refs/remotes/pkg/ubuntu/trusty0000664000000000000000000000005115044127642017430 0ustar bf0341ff9ab16a78280c0363a697e5749dbaf182 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/trusty-devel0000664000000000000000000000005115044127642020525 0ustar bf0341ff9ab16a78280c0363a697e5749dbaf182 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/trusty-proposed0000664000000000000000000000005115044127642021261 0ustar bf0341ff9ab16a78280c0363a697e5749dbaf182 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/utopic0000664000000000000000000000005115044127642017361 0ustar 194a903d04bb896624d1fe088a1d404fc2f48e12 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/utopic-devel0000664000000000000000000000005115044127642020456 0ustar 194a903d04bb896624d1fe088a1d404fc2f48e12 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/utopic-proposed0000664000000000000000000000005115044127642021212 0ustar 194a903d04bb896624d1fe088a1d404fc2f48e12 autopilot-gtk/.git/refs/remotes/pkg/ubuntu/vivid0000664000000000000000000000005115044127642017177 0ustar a99b6454c79ef7da0e5e2ff9b0c95ca87ce3459e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/vivid-devel0000664000000000000000000000005115044127642020274 0ustar a99b6454c79ef7da0e5e2ff9b0c95ca87ce3459e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/vivid-proposed0000664000000000000000000000005115044127642021030 0ustar a99b6454c79ef7da0e5e2ff9b0c95ca87ce3459e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/wily0000664000000000000000000000005115044127642017042 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/wily-devel0000664000000000000000000000005115044127642020137 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/wily-proposed0000664000000000000000000000005115044127642020673 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/xenial0000664000000000000000000000005115044127642017336 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/xenial-devel0000664000000000000000000000005115044127642020433 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/yakkety0000664000000000000000000000005115044127642017537 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/yakkety-devel0000664000000000000000000000005115044127642020634 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/zesty0000664000000000000000000000005115044127642017234 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/remotes/pkg/ubuntu/zesty-devel0000664000000000000000000000005115044127642020331 0ustar 642fab2ab9e50f33fdd596c1065f634e098e764e autopilot-gtk/.git/refs/tags/0000775000000000000000000000000015044127642013314 5ustar autopilot-gtk/.git/refs/tags/pkg/0000775000000000000000000000000015044127642014075 5ustar autopilot-gtk/.git/refs/tags/pkg/applied/0000775000000000000000000000000015044127642015513 5ustar autopilot-gtk/.git/refs/tags/pkg/applied/0.4daily13.02.08-0ubuntu10000664000000000000000000000005115044127642021251 0ustar fdd78d8fe80688756a12a422b3a467a8be09cbce autopilot-gtk/.git/refs/tags/pkg/applied/0.4daily13.02.14-0ubuntu10000664000000000000000000000005115044127642021246 0ustar 4efff8cc1deb22e415bedc79657a496549bd4804 autopilot-gtk/.git/refs/tags/pkg/applied/0.4daily13.02.22-0ubuntu10000664000000000000000000000005115044127642021245 0ustar df04c5a17181abfe2f42d93300a2f2ef7748a4fc autopilot-gtk/.git/refs/tags/pkg/applied/0.4daily13.03.11-0ubuntu10000664000000000000000000000005115044127642021244 0ustar 3d729a4b0424833a635d60a5caae79e3e6ec517a autopilot-gtk/.git/refs/tags/pkg/applied/1.3+13.10.20130627-0ubuntu10000664000000000000000000000005115044127642020755 0ustar ccf819d7c63ae2817103f204727e563a3394e43b autopilot-gtk/.git/refs/tags/pkg/applied/1.3+13.10.20130628-0ubuntu10000664000000000000000000000005115044127642020756 0ustar 08fdfaab5a8dcca006cb15b49d12aa221cfe31e2 autopilot-gtk/.git/refs/tags/pkg/applied/1.3daily13.06.05-0ubuntu10000664000000000000000000000005115044127642021252 0ustar 93598fd37e242b93e098cbc8c2062972618f63e9 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.04.20131106.1-0ubuntu10000664000000000000000000000005115044127642021112 0ustar 93d197ecd5aa928b9f6a1d5c493550d99596cffb autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.04.20131128.1-0ubuntu10000664000000000000000000000005115044127642021116 0ustar da20edf5308b41c0d091c27041fa1f88fbfcaa16 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.04.20131218-0ubuntu10000664000000000000000000000005115044127642020757 0ustar c788feb0ba9de124714699e39605b53eca3585f2 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.04.20131218-0ubuntu20000664000000000000000000000005115044127642020760 0ustar 8d2f4c5371aa1cb73a2df9f5100fac4092d841ed autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.04.20140107-0ubuntu10000664000000000000000000000005115044127642020754 0ustar f624cf920fc471ce6c5a76f7b26ce5c270406156 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.04.20140107-0ubuntu20000664000000000000000000000005115044127642020755 0ustar 7fe3a25c3213ffd6c6c406626064ff5edd1604f8 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.04.20140107-0ubuntu30000664000000000000000000000005115044127642020756 0ustar 2416d5d80b32bf75fc0f647bb14a6b7beed678b3 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+14.10.20140526-0ubuntu10000664000000000000000000000005115044127642020756 0ustar b8c9d824f2045f9311e0f80a3ccd7ababbb70f40 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+15.04.20141218-0ubuntu10000664000000000000000000000005115044127642020761 0ustar 79ff7f5ddcf85a12f3cc6ad3ffa3492c355e9be1 autopilot-gtk/.git/refs/tags/pkg/applied/1.4+15.10.20150826-0ubuntu10000664000000000000000000000005115044127642020763 0ustar bc48253a197fc4794a26a0041a24bfc57bc16c2f autopilot-gtk/.git/refs/tags/pkg/applied/1.4+15.10.20150826-0ubuntu20000664000000000000000000000005115044127642020764 0ustar 8011fcfbd3763c5a0f32b48c487f6dcdf2e631a4 autopilot-gtk/.git/refs/tags/pkg/applied/1.6.00000664000000000000000000000005115044127642016074 0ustar 17fc0df7a000fae81ff66a028657cff037ea4025 autopilot-gtk/.git/refs/tags/pkg/applied/1.6.0build10000664000000000000000000000005115044127642017175 0ustar bba9b41dc2897bb82655205c9ce0d1e02c3f9b4a autopilot-gtk/.git/refs/tags/pkg/applied/1.6.10000664000000000000000000000005115044127642016075 0ustar 168eb504d13e5b43307f0c417a6e203bece6ce46 autopilot-gtk/.git/refs/tags/pkg/applied/1.6.1build10000664000000000000000000000005115044127642017176 0ustar eca6ab2df4ec0bb9f50599af4cb9b11a3c1e4f79 autopilot-gtk/.git/refs/tags/pkg/applied/1.6.1ubuntu10000664000000000000000000000005115044127642017421 0ustar 61aa5c336752aa9799a9d5590143ec8a97ad1891 autopilot-gtk/.git/refs/tags/pkg/import/0000775000000000000000000000000015044127642015407 5ustar autopilot-gtk/.git/refs/tags/pkg/import/0.4daily13.02.08-0ubuntu10000664000000000000000000000005115044127642021145 0ustar 3e234dbfdadae55eda6f7351a51449c81d0330ac autopilot-gtk/.git/refs/tags/pkg/import/0.4daily13.02.14-0ubuntu10000664000000000000000000000005115044127642021142 0ustar 837f6e8667882dd886bf1a21a093e44351942e25 autopilot-gtk/.git/refs/tags/pkg/import/0.4daily13.02.22-0ubuntu10000664000000000000000000000005115044127642021141 0ustar 40c61d9b06091d3564f6614fae2e7c06c5f1d783 autopilot-gtk/.git/refs/tags/pkg/import/0.4daily13.03.11-0ubuntu10000664000000000000000000000005115044127642021140 0ustar 32e62b04a80801e72d37aec5a130f4ea3348bd61 autopilot-gtk/.git/refs/tags/pkg/import/1.3+13.10.20130627-0ubuntu10000664000000000000000000000005115044127642020651 0ustar a12137ec31eeb20dadcc82c256b33f9986b46237 autopilot-gtk/.git/refs/tags/pkg/import/1.3+13.10.20130628-0ubuntu10000664000000000000000000000005115044127642020652 0ustar c14986e97c57c598f3431c6ee261007a9ed1d0b1 autopilot-gtk/.git/refs/tags/pkg/import/1.3daily13.06.05-0ubuntu10000664000000000000000000000005115044127642021146 0ustar 4f4d9032729e1179e8287b4d3433b29f5e0565a8 autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.04.20131106.1-0ubuntu10000664000000000000000000000005115044127642021006 0ustar 27ca2cf1cd6143c23c1dc70b99c9465e50449650 autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.04.20131128.1-0ubuntu10000664000000000000000000000005115044127642021012 0ustar 234dca08aea0225c7f211c9e6424abc94045ba3a autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.04.20131218-0ubuntu10000664000000000000000000000005115044127642020653 0ustar da9d7f8649f1459937c55c1155fb57aadd89634d autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.04.20131218-0ubuntu20000664000000000000000000000005115044127642020654 0ustar 373d5e3a1c6b6dffcf1887c03e97c65a6df050c3 autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.04.20140107-0ubuntu10000664000000000000000000000005115044127642020650 0ustar feb4628e6cfa863369d392d275f810d32f3e5359 autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.04.20140107-0ubuntu20000664000000000000000000000005115044127642020651 0ustar 981b3c6231ab329bf54a748c0eefa417c02a4c07 autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.04.20140107-0ubuntu30000664000000000000000000000005115044127642020652 0ustar 14cb56507411416d76c1fa3c5969083970544aad autopilot-gtk/.git/refs/tags/pkg/import/1.4+14.10.20140526-0ubuntu10000664000000000000000000000005115044127642020652 0ustar 02ae96c76968a12e88eb86ac756cd02b86053a65 autopilot-gtk/.git/refs/tags/pkg/import/1.4+15.04.20141218-0ubuntu10000664000000000000000000000005115044127642020655 0ustar 2bf087501126c27cef11479f7b4904fa45429469 autopilot-gtk/.git/refs/tags/pkg/import/1.4+15.10.20150826-0ubuntu10000664000000000000000000000005115044127642020657 0ustar fd1a9ee6e3a01e9e3151667d2589dc708b67d743 autopilot-gtk/.git/refs/tags/pkg/import/1.4+15.10.20150826-0ubuntu20000664000000000000000000000005115044127642020660 0ustar 6681b6026831dbe7b6ff9bc2c12ba3d730db6ef6 autopilot-gtk/.git/refs/tags/pkg/import/1.6.00000664000000000000000000000005115044127642015770 0ustar 84aa64cda6dbe90b67c8a819d3649caed53caccf autopilot-gtk/.git/refs/tags/pkg/import/1.6.0build10000664000000000000000000000005115044127642017071 0ustar e03735064971d50c2af8bf24f9f1fa05a14c3eb0 autopilot-gtk/.git/refs/tags/pkg/import/1.6.10000664000000000000000000000005115044127642015771 0ustar dd88d9cb27a219a8da53ccfbb8ae5d65c7c37cd6 autopilot-gtk/.git/refs/tags/pkg/import/1.6.1build10000664000000000000000000000005115044127642017072 0ustar e7d13298a95f80fc2867effee5d5492f44a4493f autopilot-gtk/.git/refs/tags/pkg/import/1.6.1ubuntu10000664000000000000000000000005115044127642017315 0ustar 15d75c6ce542e4276a07262a756ae88be0d1b0e2 autopilot-gtk/.git/refs/tags/pkg/upstream/0000775000000000000000000000000015044127642015735 5ustar autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/0000775000000000000000000000000015044127642017257 5ustar autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/0.4daily13.02.08.gz0000664000000000000000000000005115044127642021753 0ustar 3829ce33c7a169c0e1132afdf3c1ea4fe2875c60 autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/0.4daily13.02.14.gz0000664000000000000000000000005115044127642021750 0ustar 0a4f5bb3c4600ec8814387484f16fb3266939895 autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/0.4daily13.02.22.gz0000664000000000000000000000005115044127642021747 0ustar dfc2bc82c9fb10d117611b4798ab8ba9aa80a5d5 autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/0.4daily13.03.11.gz0000664000000000000000000000005115044127642021746 0ustar 7384e1cbc46cd7569a4636983662bc3285b50e1a autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/1.4+14.04.20131128.1.gz0000664000000000000000000000005115044127642021620 0ustar 10847be41e1ca6b3e68a4a767befac4dc1e3e26c autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/1.4+14.04.20131218.gz0000664000000000000000000000005115044127642021461 0ustar f5fdab603c9384bbd8bed30b1d822b85c313fc3b autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/1.4+14.04.20140107.gz0000664000000000000000000000005115044127642021456 0ustar 25772cc77a144bbde3ea8df669235b44a5e6e2dd autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/1.4+14.10.20140526.gz0000664000000000000000000000005115044127642021460 0ustar 21d2bc3df3bee110215b702d4f47fea4b3941578 autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/1.4+15.04.20141218.gz0000664000000000000000000000005115044127642021463 0ustar 6b819502ed7dc257c1e84138110bb21552d8e488 autopilot-gtk/.git/refs/tags/pkg/upstream/ubuntu/1.4+15.10.20150826.gz0000664000000000000000000000005115044127642021465 0ustar 2a0973a2131e0a07286c25ca4848610757fad553 autopilot-gtk/CMakeLists.txt0000664000000000000000000000062515044127643013322 0ustar cmake_minimum_required(VERSION 2.6) project(autopilot-gtk) include (GNUInstallDirs) set (VERSION 0.2) set (CMAKE_CXX_FLAGS "-DGNOME_DESKTOP_USE_UNSTABLE_API -std=c++11 -fno-permissive") INCLUDE(FindPkgConfig) add_subdirectory(lib) enable_testing() add_test(autopilot sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/tests/autopilot; GTK_PATH=${CMAKE_CURRENT_BINARY_DIR}/lib autopilot3-sandbox-run -a -v tests") autopilot-gtk/debian/0000775000000000000000000000000015044415152011774 5ustar autopilot-gtk/debian/changelog0000664000000000000000000003436215044415152013656 0ustar autopilot-gtk (1.6.1ubuntu2) questing; urgency=medium * Fix FTBFS. autopilot only supports x11, MIR and uinput. (LP: #2106392) -- Athos Ribeiro Tue, 05 Aug 2025 11:51:22 -0300 autopilot-gtk (1.6.1ubuntu1) noble; urgency=medium * Build-depend on python3-zombie-imp. -- Matthias Klose Tue, 26 Mar 2024 19:12:01 +0100 autopilot-gtk (1.6.1build1) noble; urgency=medium * No-change rebuild against libglib2.0-0t64 -- Steve Langasek Fri, 08 Mar 2024 03:51:41 +0000 autopilot-gtk (1.6.1) groovy; urgency=medium [Jean-Baptiste Lallement] * Updated dependencies to python3 of evdev and gi (LP: #1856574) -- Christian Ehrhardt Thu, 13 Aug 2020 10:00:26 +0200 autopilot-gtk (1.6.0build1) focal; urgency=medium * No-change rebuild for libgcc-s1 package name change. -- Matthias Klose Mon, 23 Mar 2020 07:10:08 +0100 autopilot-gtk (1.6.0) focal; urgency=medium * Remove the dependency on python2 version of autopilot (LP: #1856574) * Update the dependencies to python3 version of autopilot. * Fixed the testsuite. * Bump version number and align it with autopilot * Update Standards-Version to 4.4.1 -- Jean-Baptiste Lallement Tue, 17 Dec 2019 07:55:05 +0100 autopilot-gtk (1.4+15.10.20150826-0ubuntu2) cosmic; urgency=medium * tests/hello_color.ui: Set a border-width on the GtkButtonBox. The testsuite is trying to select all GtkButtonBoxes with border-width equal to 5 without explicitly construcitng one. This worked fine with Ambiance, but now that the default theme is Yaru nothing matches any more, since presumably this value is different there. Ideally the testsuite should be independent of the theme, so we fix this bug by making the test program's .ui file set a border-width of 5 on the GtkButtonBox. -- Iain Lane Wed, 05 Sep 2018 16:38:14 +0100 autopilot-gtk (1.4+15.10.20150826-0ubuntu1) wily; urgency=medium [ CI Train Bot ] * New rebuild forced. [ Iain Lane ] * Wait until the dialog actually goes away before checking for its disappearance to fix failing test. -- CI Train Bot Wed, 26 Aug 2015 20:34:29 +0000 autopilot-gtk (1.4+15.04.20141218-0ubuntu1) vivid; urgency=low [ Iain Lane ] * debian/tests/control: Test-Depend on light-themes. The tests check some properties of the Ubuntu theme - ensure it's installed. -- Ubuntu daily release Thu, 18 Dec 2014 17:05:15 +0000 autopilot-gtk (1.4+14.10.20140526-0ubuntu1) utopic; urgency=low [ Martin Pitt ] * Update build and test deps for autopilot-legacy. Replace gnome- system-log test with gnome-calculator test . [ Ubuntu daily release ] * New rebuild forced -- Ubuntu daily release Mon, 26 May 2014 10:04:31 +0000 autopilot-gtk (1.4+14.04.20140107-0ubuntu2) trusty; urgency=medium * No-change rebuild against trusty's xpathselect. The previous auto-upload was built against the PPA's xpathselect which isn't in trusty yet, making this uninstallable. -- Martin Pitt Wed, 08 Jan 2014 07:30:56 +0100 autopilot-gtk (1.4+14.04.20140107-0ubuntu1) trusty; urgency=low [ Martin Pitt ] * Tone down "unsupported type" warning into a debug message. (LP: #1250452) * Add stress test case for querying lots of properties in a tight loop. (LP: #1266689) [ Ubuntu daily release ] * Automatic snapshot from revision 70 -- Ubuntu daily release Tue, 07 Jan 2014 22:47:25 +0000 autopilot-gtk (1.4+14.04.20131218-0ubuntu2) trusty; urgency=medium * No-change rebuild against trusty's xpathselect. The previous auto-upload was built against the PPA's xpathselect which isn't in trusty yet, making this uninstallable. -- Martin Pitt Thu, 19 Dec 2013 07:08:09 +0100 autopilot-gtk (1.4+14.04.20131218-0ubuntu1) trusty; urgency=low [ Martin Pitt ] * Fix tests for GTK 3.10. * Avoid unnecessary, inefficient, and crash-prone temporary std::strings. (LP: #1261685) * Respect DEB_BUILD_OPTIONS=nocheck. Add autopkgtest. Add missing at- spi2-core test dependency (caused tests to run 20 min instead of 40 s). [ Ubuntu daily release ] * Automatic snapshot from revision 66 -- Ubuntu daily release Wed, 18 Dec 2013 18:40:27 +0000 autopilot-gtk (1.4+14.04.20131128.1-0ubuntu1) trusty; urgency=low [ Martin Pitt ] * Drop generated GDBus sources from bzr and generate them during build. * Avoid unnecessary string duplication when matching properties. This also fixes a rare crash when cleaning up the temporary string object. (LP: #1254996) [ Mathieu Trudel-Lapierre ] * Fix source format: make it 1.0. [ Timo Jyrinki ] * Wrap-and-sort dependencies, remove trailing whitespace. [ Ubuntu daily release ] * Automatic snapshot from revision 62 -- Ubuntu daily release Thu, 28 Nov 2013 10:03:59 +0000 autopilot-gtk (1.4+14.04.20131106.1-0ubuntu1) trusty; urgency=low [ Thomi Richards ] * Update packaging details so upgrading from 1.3 -> 1.4 is seamless. (LP: #1227797) * Make autopilot-gtk print the wire protocol version when it start up. (LP: #1248293) [ Martin Pitt ] * Build-depend on autopilot >= 1.4 to ensure protocol compatibility in tests [ Ubuntu daily release ] * Automatic snapshot from revision 57 -- Ubuntu daily release Wed, 06 Nov 2013 10:03:24 +0000 autopilot-gtk (1.4-0ubuntu1) saucy; urgency=low [ Thomi Richards ] * Version bump, updatedx to new xpathselect API. -- Thomi Richards Thu, 15 Aug 2013 15:12:39 +1200 autopilot-gtk (1.3+14.04.20130912ubuntu.unity.next-0ubuntu1) saucy; urgency=low * Automatic snapshot from revision 52 (ubuntu-unity/next) -- Ubuntu daily release Thu, 12 Sep 2013 22:03:46 +0000 autopilot-gtk (1.3+13.10.20130628-0ubuntu1) saucy; urgency=low [ Martin Pitt ] * Handle enum and flags properties. (LP: #1193342). (LP: #1193342) * Expose GtkBuilder widget identifiers as "BuilderName" property. (LP: #1082391). (LP: #1082391) * This fixes the two test failures on raring which Francis saw in https://code.launchpad.net/~pitti/autopilot-gtk/add- tests/+merge/171036/comments/382574 I also sneaked in an unrelated, but trivial change for dropping a leftover debugging statement, in the interest of saving human reviewer and builder resources. * Support GtkTextBuffer properties, to introspect GtkTextView contents. (LP: #1194371) [ Ubuntu daily release ] * Automatic snapshot from revision 51 -- Ubuntu daily release Fri, 28 Jun 2013 00:01:10 +0000 autopilot-gtk (1.3+13.10.20130627-0ubuntu1) saucy; urgency=low [ Martin Pitt ] * Add make test/ctest integration, and run tests during package build. * Add integration test suite (LP: #1083612). (LP: #1083612) [ Alberto Mardegan ] * Initialize rect fields to -1 This makes the globalRect variable return negative values (for some reason, not -1 but -2147483648) when the rectangle is offscreen. (LP: #1176234) [ Ubuntu daily release ] * Automatic snapshot from revision 46 -- Ubuntu daily release Thu, 27 Jun 2013 00:01:15 +0000 autopilot-gtk (1.3daily13.06.05-0ubuntu1) saucy; urgency=low [ Alberto Mardegan ] * Export the ATK objects hierarchy as well AtkObject interfaces are meant for accessibility, and expose more information which can be useful for automated testing. For instance, it is possible to enumerate and introspect all the cells in a GtkTreeView. This patch exposes the ATK objects hierarchies as children of the root node; the existing GtkWidget hierarchy is left untouched, and can still be used. . (LP: #1160827) [ Thomi Richards ] * fix property searching. (LP: #1175738) * Fix crashing bug. (LP: #1177161) * This change fixes an issue with queries that look for gtk windows matching a particular property value. A set of 2 tests has been added to verify the queries that were otherwise failing with a void return set. [ Christopher Lee ] * Add GetVersion to the DBus introspection. [ David Barth ] * This change fixes an issue with queries that look for gtk windows matching a particular property value. A set of 2 tests has been added to verify the queries that were otherwise failing with a void return set. [ Allan LeSage ] * This change fixes an issue with queries that look for gtk windows matching a particular property value. A set of 2 tests has been added to verify the queries that were otherwise failing with a void return set. [ Ubuntu daily release ] * Automatic snapshot from revision 42 -- Ubuntu daily release Wed, 05 Jun 2013 07:08:46 +0000 autopilot-gtk (1.3daily13.05.24ubuntu.unity.next-0ubuntu1) raring; urgency=low [ Thomi Richards ] * This change fixes an issue with queries that look for gtk windows matching a particular property value. A set of 2 tests has been added to verify the queries that were otherwise failing with a void return set. [ Allan LeSage ] * This change fixes an issue with queries that look for gtk windows matching a particular property value. A set of 2 tests has been added to verify the queries that were otherwise failing with a void return set. [ David Barth ] * This change fixes an issue with queries that look for gtk windows matching a particular property value. A set of 2 tests has been added to verify the queries that were otherwise failing with a void return set. [ Ubuntu daily release ] * Automatic snapshot from revision 41 (ubuntu-unity/next) -- Ubuntu daily release Fri, 24 May 2013 00:01:41 +0000 autopilot-gtk (1.3daily13.05.09ubuntu.unity.next-0ubuntu1) raring; urgency=low * Automatic snapshot from revision 39 (ubuntu-unity/next) -- Ubuntu daily release Thu, 09 May 2013 00:00:58 +0000 autopilot-gtk (1.3daily13.05.08ubuntu.unity.next-0ubuntu1) raring; urgency=low [ Thomi Richards ] * Autopilot-gtk crashes when a query returns no results. (LP: #1177161) [ Ubuntu daily release ] * Automatic snapshot from revision 37 (ubuntu-unity/next) -- Ubuntu daily release Wed, 08 May 2013 00:00:58 +0000 autopilot-gtk (1.3daily13.05.03ubuntu.unity.next-0ubuntu1) raring; urgency=low [ Christopher Lee ] * Bump version number [ Thomi Richards ] * property matching is broken (LP: #1175738) [ Christopher Lee , Thomi Richards ] * DBus wire protocol changes required (LP: #1155351) [ Alberto Mardegan ] * GtkTreeView's contents cannot be introspected (LP: #1160827) [ Ubuntu daily release ] * Automatic snapshot from revision 35 (ubuntu-unity/next) -- Ubuntu daily release Fri, 03 May 2013 00:00:55 +0000 autopilot-gtk (0.4daily13.03.11-0ubuntu1) raring; urgency=low [ Thomi Richards ] * Rebuild against libxpathselect1.2 [ Ubuntu daily release ] * Automatic snapshot from revision 31 -- Ubuntu daily release Mon, 11 Mar 2013 11:31:34 +0000 autopilot-gtk (0.4daily13.02.22-0ubuntu1) raring; urgency=low [ Thomi Richards ] * Need a log message to verify that the plugin loaded OK. (LP: #1130861) [ Automatic PS uploader ] * Automatic snapshot from revision 28 -- Automatic PS uploader Fri, 22 Feb 2013 00:01:29 +0000 autopilot-gtk (0.4daily13.02.14-0ubuntu1) raring; urgency=low * Automatic snapshot from revision 26 -- Automatic PS uploader Thu, 14 Feb 2013 00:01:51 +0000 autopilot-gtk (0.4daily13.02.08-0ubuntu1) raring; urgency=low [ Mathieu Trudel-Lapierre ] * Automatic snapshot from revision 1 (bootstrap). * debian/control: - Bump Build-Depends on debhelper to 9. - Update style: use trailing commas at the end of dep lists. - Update Vcs-Bzr, Vcs-Browser and add a notice to uploaders. - Adjust short, long descriptions for libautopilot-gtk packages. - Add Pre-Depends:; Multi-Arch: for libautopilot-gtk0 for multiarch. * debian/compat: bump to compat level 9. * debian/rules: - Override dh_install to remove *.la/*.a files and fail the build if there are files not being installed or missing from the build. - Override dh_makeshlibs to strictly check symbols. * debian/source/format: migrate back to source format 1.0. * debian/copyright: update format line. * debian/*.install: update paths for multiarch. [ Allan LeSage ] * debian/control: - Replace, Conflict, and Provide autopilot-gtk and libautopilot-gtk0. - Replace and Conflict libautopilot-gtk-dev. - Update Standards-Version to 3.9.4. - Remove '0' from libautopilot-gtk package. - Remove libautopilot-gtk-dev package, no longer needed. - Remove libindicate-dev from Build-Depends. * debian/libautopilot-gtk-dev.install: remove, no longer needed. * debian/libautopilot-gtk.install: remove, one-package install. * lib/CMakeLists.txt: - Remove SOVERSION. - Rename from autopilot-gtk to autopilot. - Install directly to gtk-3.0/modules. - Remove pc file to simplify. - Remove headers. * lib/autopilot-gtk.pc.in: remove to simplify. [ allanlesage@gmail.com, Allan LeSage ] * Hang in eog if no log_handler defined (?) (LP: #1111746) [ Automatic PS uploader ] * Automatic snapshot from revision 24 -- Automatic PS uploader Fri, 08 Feb 2013 16:34:17 +0000 autopilot-gtk (0.3-0ubuntu1) quantal; urgency=low * Fixed segfault on non-static name over gnome-calculator. -- Allan LeSage Fri, 19 Oct 2012 10:23:49 -0500 autopilot-gtk (0.2-0ubuntu1) quantal; urgency=low * Corrected packaging. -- Allan LeSage Thu, 18 Oct 2012 16:10:27 -0500 autopilot-gtk (0.1-0ubuntu1) quantal; urgency=low * Initial release -- Allan LeSage Wed, 15 Aug 2012 15:45:52 -0500 autopilot-gtk/debian/compat0000664000000000000000000000000215044127643013177 0ustar 9 autopilot-gtk/debian/control0000664000000000000000000000326515044402460013403 0ustar Source: autopilot-gtk Priority: extra Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Allan LeSage Build-Depends: autopilot-desktop (>= 1.6), bamfdaemon, at-spi2-core, cmake, dbus-x11, debhelper (>= 9), gnome-calculator, gsettings-desktop-schemas, gnome-icon-theme-symbolic, libglib2.0-dev, libgtk-3-dev, libxpathselect-dev (>= 1.4), pkg-config, python3-evdev, python3-gi, python3-zombie-imp, xvfb, light-themes Standards-Version: 4.4.1 Section: libs Homepage: https://launchpad.net/autopilot-gtk # If you aren't a member of ~autopilot but need to upload # packaging changes, just go ahead. ~autopilot will notice # and sync up the code again. Vcs-Git: https://git.launchpad.net/autopilot-gtk Vcs-Browser: https://git.launchpad.net/autopilot-gtk XS-Testsuite: autopkgtest Package: libautopilot-gtk Section: libs Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends}, Depends: python3-autopilot (>= 1.6), ${misc:Depends}, ${shlibs:Depends}, Replaces: autopilot-gtk, libautopilot-gtk-dev, libautopilot-gtk0, Conflicts: autopilot-gtk, libautopilot-gtk-dev, libautopilot-gtk0, Provides: autopilot-gtk, libautopilot-gtk0, Description: Makes GTK+ applications introspectable by autopilot. This allows autopilot to test any existing GTK+ application, without having to rebuild the application under test. autopilot-gtk/debian/copyright0000664000000000000000000000305215044127643013734 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: autopilot-gtk Source: http://launchpad.net/autopilot-gtk Files: * Copyright: 2012 Canonical Ltd. License: GPL-3 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3, as published by the Free Software Foundation. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". Files: debian/* Copyright: 2012 Allan LeSage License: GPL-2 This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". autopilot-gtk/debian/rules0000775000000000000000000000101415044127643013055 0ustar #!/usr/bin/make -f #export DH_VERBOSE=1 export DPKG_GENSYMBOLS_CHECK_LEVEL = 4 %: dh $@ override_dh_auto_test: ifeq (, $(findstring nocheck, $(DEB_BUILD_OPTIONS))) mkdir -p debian/tmp/home/run env HOME=$(CURDIR)/debian/tmp/home XDG_RUNTIME_DIR=$(CURDIR)/debian/tmp/home/run \ xvfb-run -a -e $(CURDIR)/debian/tmp/X.log dh_auto_test || \ { echo "==== X.org log ===="; cat $(CURDIR)/debian/tmp/X.log; false; } endif override_dh_install: dh_install --fail-missing override_dh_makeshlibs: dh_makeshlibs -V autopilot-gtk/debian/source/0000775000000000000000000000000015044414377013304 5ustar autopilot-gtk/debian/source/format0000664000000000000000000000000415044127643014506 0ustar 1.0 autopilot-gtk/debian/tests/0000775000000000000000000000000015044407725013145 5ustar autopilot-gtk/debian/tests/autopilot0000664000000000000000000000011015044127643015076 0ustar #!/bin/sh set -eu cd tests/autopilot autopilot3-sandbox-run -a -v tests autopilot-gtk/debian/tests/control0000664000000000000000000000046715044127643014555 0ustar Tests: autopilot Depends: @, autopilot-desktop (>= 1.6), bamfdaemon, at-spi2-core, xvfb, dbus-x11, gnome-calculator, gsettings-desktop-schemas, gnome-icon-theme-symbolic, python3-gi, gir1.2-gtk-3.0, light-themes autopilot-gtk/lib/0000775000000000000000000000000015044127643011325 5ustar autopilot-gtk/lib/CMakeLists.txt0000664000000000000000000000241715044127643014071 0ustar set(SOURCES main.cpp Variant.cpp GtkNode.cpp Introspection.cpp IntrospectionService.c GtkRootNode.cpp) set(HEADERS main.h GtkNode.h GtkRootNode.h Introspection.h IntrospectionService.h Variant.h) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -Werror -Wl,--no-undefined") add_library(autopilot SHARED ${SOURCES}) pkg_check_modules(GLIB REQUIRED glib-2.0) pkg_check_modules(GTK REQUIRED gtk+-3.0) pkg_check_modules(XPATHSELECT REQUIRED xpathselect) include_directories(${GLIB_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${XPATHSELECT_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR}) link_directories(${GLIB_LIBRARY_DIRS}) target_link_libraries(autopilot ${GLIB_LIBRARIES} ${GTK_LIBRARIES} ${XPATHSELECT_LIBRARIES}) add_custom_command( OUTPUT IntrospectionService.c IntrospectionService.h COMMAND gdbus-codegen ARGS --generate-c-code IntrospectionService --interface-prefix com.canonical ${CMAKE_CURRENT_SOURCE_DIR}/IntrospectionService.xml DEPENDS IntrospectionService.xml ) add_custom_target(generate_introspection_service DEPENDS IntrospectionService.xml) add_dependencies(autopilot generate_introspection_service) execute_process(COMMAND ln -s . lib/modules) install(TARGETS autopilot LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/gtk-3.0/modules) autopilot-gtk/lib/GtkNode.cpp0000664000000000000000000003431415044127643013371 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #include #include #include #include "GtkNode.h" #include "Variant.h" const std::string GtkNode::AP_ID_NAME = "id"; static guint32 cur_obj_id = 2; // start at 2 since 1 is reserved for the root node GtkNode::GtkNode(GObject* obj, GtkNode::Ptr const& parent) : object_(obj) , parent_(parent) { std::string parent_path = parent ? parent->GetPath() : ""; full_path_ = parent_path + "/" + GetName(); if (object_ != NULL) { g_object_ref(object_); GQuark OBJ_ID = g_quark_from_static_string("AUTOPILOT_OBJECT_ID"); gpointer val = g_object_get_qdata (object_, OBJ_ID); if (val == NULL) { g_object_set_qdata (object_, OBJ_ID, reinterpret_cast(cur_obj_id++)); } } } GtkNode::GtkNode(GObject* obj) : object_(obj) { full_path_ = "/" + GetName(); if (object_ != NULL) { g_object_ref(object_); GQuark OBJ_ID = g_quark_from_static_string("AUTOPILOT_OBJECT_ID"); gpointer val = g_object_get_qdata (object_, OBJ_ID); if (val == NULL) { g_object_set_qdata (object_, OBJ_ID, reinterpret_cast(cur_obj_id++)); } } } GtkNode::~GtkNode() { g_clear_object(&object_); } // we cannot represent GEnums, GFlags, etc. through D-BUS and autopilot's API, // so convert them to strings, ints, and other primitive types static void convert_value (GParamSpec *pspec, GValue *value) { if (G_VALUE_HOLDS_ENUM(value)) { GEnumValue *ev = g_enum_get_value(G_PARAM_SPEC_ENUM(pspec)->enum_class, g_value_get_enum(value)); if (ev != NULL) { //g_debug("attribute %s of type %s holds enum %s", g_param_spec_get_name(pspec), // g_type_name(pspec->value_type), ev->value_name); g_value_unset(value); *value = G_VALUE_INIT; g_value_init(value, G_TYPE_STRING); g_value_set_string(value, ev->value_name); } } // representing flags as strings is too unwieldy; let's just represent them // as integer if (G_VALUE_HOLDS_FLAGS(value)) { guint flags = g_value_get_flags(value); //g_debug("attribute %s of type %s holds flags %x", g_param_spec_get_name(pspec), // g_type_name(pspec->value_type), flags); g_value_unset(value); *value = G_VALUE_INIT; g_value_init(value, G_TYPE_UINT); g_value_set_uint(value, flags); } if (pspec->value_type == GTK_TYPE_TEXT_BUFFER) { GtkTextBuffer *buf = GTK_TEXT_BUFFER(g_value_get_object(value)); if (buf != NULL) { //g_debug("attribute %s of type %s holds GtkTextBuffer", g_param_spec_get_name(pspec), // g_type_name(pspec->value_type)); GtkTextIter start, end; gtk_text_buffer_get_start_iter(buf, &start); gtk_text_buffer_get_end_iter(buf, &end); gchar* text = gtk_text_iter_get_text(&start, &end); g_value_unset(value); *value = G_VALUE_INIT; g_value_init(value, G_TYPE_STRING); g_value_set_string(value, (text != NULL) ? text : ""); g_free(text); } } } GVariant* GtkNode::Introspect() const { GVariantBuilder builder; g_variant_builder_init(&builder, G_VARIANT_TYPE("a{sv}")); // add a GVariant of all our properties guint length; GParamSpec** properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(object_), &length); variant::BuilderWrapper builder_wrapper(&builder); for (uint i = 0; i < length; ++i) { GParamSpec* param_spec = properties[i]; // ATK's accessible-table-* properties generate "invalid property id" warnings if (g_str_has_prefix(g_param_spec_get_name(param_spec), "accessible-table-")) continue; // see Launchpad bug #1108155: GtkTreePath mis-casts while copying, actuates here in "root" property if (g_strcmp0(g_type_name(param_spec->value_type), "GtkTreePath") != 0) { // some properties are only writeable; some toxic nodes change their names (?) if (param_spec->flags & G_PARAM_READABLE) { GValue value = G_VALUE_INIT; g_value_init(&value, param_spec->value_type); g_object_get_property(object_, g_param_spec_get_name(param_spec), &value); convert_value(param_spec, &value); builder_wrapper.add_gvalue(param_spec->name, &value); g_value_unset(&value); //Free the memory acquired by the value object. Absence of this was causig the applications to crash. } } else { //g_debug("skipped %s of type GtkTreePath", g_param_spec_get_name(param_spec)); } } g_free(properties); // add our unique autopilot-id builder_wrapper.add(AP_ID_NAME.c_str(), GetId()); // add the names of our children builder_wrapper.add("Children", GetChildNodeNames()); // add the GtkBuilder name if (GTK_IS_BUILDABLE (object_)) builder_wrapper.add("BuilderName", gtk_buildable_get_name(GTK_BUILDABLE (object_))); // add the GlobalRect property: "I am a GtkWidget" edition if (GTK_IS_WIDGET(object_)) { // FIXME: we'd like to remove this duplication (to GetGlobalRect) GtkWidget *widget = GTK_WIDGET (object_); GdkWindow *gdk_window = gtk_widget_get_window(widget); if (GDK_IS_WINDOW(gdk_window)) { GdkRectangle rect; GetGlobalRect(&rect); builder_wrapper.add("globalRect", rect); } } else if (ATK_IS_COMPONENT(object_)) { AddAtkComponentProperties(builder_wrapper, ATK_COMPONENT(object_)); } return g_variant_builder_end(&builder); } void GtkNode::AddAtkComponentProperties(variant::BuilderWrapper &builder_wrapper, AtkComponent *atk_component) const { AtkStateSet *states = atk_object_ref_state_set(ATK_OBJECT(atk_component)); /* Expose a few states which might be especially interesting for autopilot */ bool visible = atk_state_set_contains_state(states, ATK_STATE_VISIBLE); builder_wrapper.add("visible", visible); if (visible) { gint x, y, width, height; x = y = width = height = -1; atk_component_get_extents(atk_component, &x, &y, &width, &height, ATK_XY_SCREEN); GdkRectangle r; r.x = x; r.y = y; r.width = width; r.height = height; builder_wrapper.add("globalRect", r); } builder_wrapper.add("active", bool(atk_state_set_contains_state(states, ATK_STATE_ACTIVE))); builder_wrapper.add("checked", bool(atk_state_set_contains_state(states, ATK_STATE_CHECKED))); builder_wrapper.add("editable", bool(atk_state_set_contains_state(states, ATK_STATE_EDITABLE))); builder_wrapper.add("enabled", bool(atk_state_set_contains_state(states, ATK_STATE_ENABLED))); builder_wrapper.add("focused", bool(atk_state_set_contains_state(states, ATK_STATE_FOCUSED))); builder_wrapper.add("pressed", bool(atk_state_set_contains_state(states, ATK_STATE_PRESSED))); builder_wrapper.add("selected", bool(atk_state_set_contains_state(states, ATK_STATE_SELECTED))); builder_wrapper.add("sensitive", bool(atk_state_set_contains_state(states, ATK_STATE_SENSITIVE))); builder_wrapper.add("showing", bool(atk_state_set_contains_state(states, ATK_STATE_SHOWING))); g_object_unref(G_OBJECT(states)); } void GtkNode::GetGlobalRect(GdkRectangle* rect) const { GtkWidget *widget = GTK_WIDGET(object_); GdkWindow *gdk_window = gtk_widget_get_window(widget); GtkAllocation allocation; gint x, y; gtk_widget_get_allocation (widget, &allocation); gdk_window_get_root_coords(gdk_window, allocation.x, allocation.y, &x, &y); // if we wished to get the root root coords we might do this //gdk_window_get_root_coords(gdk_window, 0, 0, &x, &y); //g_debug ("root coords for widget %p(%s): %d %d (size %d %d)\n", widget, G_OBJECT_TYPE_NAME(widget), x, y, allocation.width, allocation.height); // FIXME: suck this up rect->x = x; rect->y = y; rect->width = allocation.width; rect->height = allocation.height; return; } std::string GtkNode::GetName() const { // autopilot uses the name of the GObject type if (!object_) { return std::string(); } return G_OBJECT_TYPE_NAME(object_); } std::string GtkNode::GetPath() const { return full_path_; } int32_t GtkNode::GetId() const { GQuark OBJ_ID = g_quark_from_static_string("AUTOPILOT_OBJECT_ID"); gpointer val = g_object_get_qdata (object_, OBJ_ID); // this uglyness is required in order to stop the compiler complaining about the fact // that we're casting a 64 bit type (gpointer) down to a 32 bit type (gint32) and may // be truncating the value. It's safe to do, however, since we control what values are // set in this quark, and they were initial gint32 values anyway. guint32 id = static_cast(reinterpret_cast(val)); return id; } xpathselect::Node::Ptr GtkNode::GetParent() const { return parent_; } bool GtkNode::MatchStringProperty(const std::string& name, const std::string& value) const { if (name == "BuilderName" && GTK_IS_BUILDABLE(object_)) { const gchar* builder_name = gtk_buildable_get_name(GTK_BUILDABLE (object_)); return builder_name != NULL && value.compare(builder_name) == 0; } GObjectClass* klass = G_OBJECT_GET_CLASS(object_); GParamSpec* pspec = g_object_class_find_property(klass, name.c_str()); if (pspec == NULL) return false; // read the property into a GValue g_debug("Matching property %s of type (%s).", g_param_spec_get_name(pspec), g_type_name(G_PARAM_SPEC_VALUE_TYPE(pspec))); GValue dest_value = G_VALUE_INIT; g_value_init(&dest_value, G_PARAM_SPEC_VALUE_TYPE(pspec)); g_object_get_property(object_, name.c_str(), &dest_value); convert_value(pspec, &dest_value); if (G_VALUE_TYPE(&dest_value) == G_TYPE_STRING) { const gchar *str = g_value_get_string(&dest_value); int result = g_strcmp0 (str, value.c_str()); g_value_unset(&dest_value); return result == 0; } else { g_debug("Property %s exists, but is not a string (is %s).", g_param_spec_get_name(pspec), g_type_name(G_VALUE_TYPE(&dest_value)) ); g_value_unset(&dest_value); return false; } } bool GtkNode::MatchIntegerProperty(const std::string& name, int32_t value) const { if (name == "id") return value == GetId(); GObjectClass* klass = G_OBJECT_GET_CLASS(object_); GParamSpec* pspec = g_object_class_find_property(klass, name.c_str()); if (pspec == NULL) return false; // read the property into a GValue g_debug("Matching property %s of type (%s).", g_param_spec_get_name(pspec), g_type_name(G_PARAM_SPEC_VALUE_TYPE(pspec))); GValue dest_value = G_VALUE_INIT; g_value_init(&dest_value, G_PARAM_SPEC_VALUE_TYPE(pspec)); g_object_get_property(object_, name.c_str(), &dest_value); convert_value(pspec, &dest_value); if (G_VALUE_TYPE(&dest_value) == G_TYPE_INT) { int v = g_value_get_int(&dest_value); g_value_unset(&dest_value); return value == v; } else if (G_VALUE_TYPE(&dest_value) == G_TYPE_UINT) { int v = g_value_get_uint(&dest_value); g_value_unset(&dest_value); return value == v; } else { g_debug("Property %s exists, but is not an integer (is %s).", g_param_spec_get_name(pspec), g_type_name(G_VALUE_TYPE(&dest_value)) ); g_value_unset(&dest_value); return false; } } bool GtkNode::MatchBooleanProperty(const std::string& name, bool value) const { GObjectClass* klass = G_OBJECT_GET_CLASS(object_); GParamSpec* pspec = g_object_class_find_property(klass, name.c_str()); if (pspec == NULL) return false; // read the property into a GValue g_debug("Matching property %s of type (%s).", g_param_spec_get_name(pspec), g_type_name(G_PARAM_SPEC_VALUE_TYPE(pspec))); GValue dest_value = G_VALUE_INIT; g_value_init(&dest_value, G_PARAM_SPEC_VALUE_TYPE(pspec)); g_object_get_property(object_, name.c_str(), &dest_value); convert_value(pspec, &dest_value); if (G_VALUE_TYPE(&dest_value) == G_TYPE_BOOLEAN) { bool v = g_value_get_boolean(&dest_value); g_value_unset(&dest_value); return value == v; } else { g_debug("Property %s exists, but is not a boolean (is %s).", g_param_spec_get_name(pspec), g_type_name(G_VALUE_TYPE(&dest_value)) ); g_value_unset(&dest_value); return false; } } xpathselect::NodeVector GtkNode::Children() const { //g_debug("getting the children of a node"); xpathselect::NodeVector children; if (GTK_IS_CONTAINER(object_)) { GList* gtk_children = gtk_container_get_children(GTK_CONTAINER(object_)); for (GList* elem = gtk_children; elem; elem = elem->next) { children.push_back(std::make_shared(G_OBJECT(elem->data), shared_from_this())); } g_list_free(gtk_children); } else if (ATK_IS_OBJECT(object_)) { AtkObject *atk_object = ATK_OBJECT(object_); int n_children = atk_object_get_n_accessible_children(atk_object); for (int i = 0; i < n_children; i++) { AtkObject *child = atk_object_ref_accessible_child(atk_object, i); children.push_back(std::make_shared(G_OBJECT(child), shared_from_this())); } } return children; } GVariant* GtkNode::GetChildNodeNames() const { //g_debug("getting the names of a node's children"); GVariantBuilder builder; g_variant_builder_init(&builder, G_VARIANT_TYPE_STRING_ARRAY); for (xpathselect::Node::Ptr child : Children()) { g_variant_builder_add(&builder, "s", child->GetName().c_str()); } return g_variant_builder_end(&builder); } autopilot-gtk/lib/GtkNode.h0000664000000000000000000000425515044127643013037 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #ifndef GTKNODE_H #define GTKNODE_H #include #include #include #include #include #include #include "Variant.h" // #include class GtkNode: public xpathselect::Node, public std::enable_shared_from_this { public: typedef std::shared_ptr Ptr; GtkNode(GObject* object, Ptr const& parent); GtkNode(GObject* object); virtual ~GtkNode(); virtual GVariant* Introspect() const; virtual std::string GetName() const; virtual std::string GetPath() const; virtual int32_t GetId() const; virtual xpathselect::Node::Ptr GetParent() const; virtual bool MatchStringProperty(const std::string& name, const std::string& value) const; virtual bool MatchIntegerProperty(const std::string& name, int32_t value) const; virtual bool MatchBooleanProperty(const std::string& name, bool value) const; virtual xpathselect::NodeVector Children() const; static const std::string AP_ID_NAME; private: GObject *object_; std::string full_path_; Ptr parent_; virtual GVariant* GetChildNodeNames() const; virtual void GetGlobalRect(GdkRectangle* rect) const; void AddAtkComponentProperties(variant::BuilderWrapper &builder_wrapper, AtkComponent *atk_component) const; }; #endif // GTKNODE_H autopilot-gtk/lib/GtkRootNode.cpp0000664000000000000000000000603115044127643014230 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #include "GtkRootNode.h" #include #include #include #include #include "Variant.h" GtkRootNode::GtkRootNode() : GtkNode(NULL) { } GVariant* GtkRootNode::Introspect() const { GVariantBuilder builder; g_variant_builder_init(&builder, G_VARIANT_TYPE("a{sv}")); variant::BuilderWrapper builder_wrapper(&builder); // add our unique autopilot-id builder_wrapper.add(AP_ID_NAME.c_str(), GetId()); // add the names of our children builder_wrapper.add("Children", GetChildNodeNames()); return g_variant_builder_end(&builder); } int32_t GtkRootNode::GetId() const { return 1; } std::string GtkRootNode::GetName() const { return "Root"; } std::string GtkRootNode::GetPath() const { return "/" + GetName(); } bool GtkRootNode::MatchIntegerProperty(const std::string& name, int32_t value) const { // Root node only matches one property - id: if (name == "id") return value == GetId(); return false; } bool GtkRootNode::MatchBooleanProperty(const std::string& name, bool value) const { return false; } bool GtkRootNode::MatchStringProperty(const std::string& name, const std::string& value) const { return false; } xpathselect::NodeVector GtkRootNode::Children() const { //g_debug("getting the children of a node"); xpathselect::NodeVector children; // add all the toplevel nodes as children to the root node GList* toplevels_list = gtk_window_list_toplevels(); GList* elem; for (elem = toplevels_list; elem; elem = elem->next) { GObject *node = reinterpret_cast(elem->data); children.push_back(std::make_shared(node, shared_from_this())); // if the AtkObjects are available, expose the Atk hierarchy as well AtkObject *atk_object = gtk_widget_get_accessible(GTK_WIDGET(node)); if (atk_object != NULL) children.push_back(std::make_shared(G_OBJECT(atk_object), shared_from_this())); } g_list_free(toplevels_list); return children; } GVariant* GtkRootNode::GetChildNodeNames() const { //g_debug("getting the names of a node's children"); GVariantBuilder builder; g_variant_builder_init(&builder, G_VARIANT_TYPE_STRING_ARRAY); for (xpathselect::Node::Ptr child : Children()) { g_variant_builder_add(&builder, "s", child->GetName().c_str()); } return g_variant_builder_end(&builder); } autopilot-gtk/lib/GtkRootNode.h0000664000000000000000000000271015044127643013675 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #ifndef ROOTGTKNODE_H #define ROOTGTKNODE_H #include "GtkNode.h" #include #include #include class GtkRootNode: public GtkNode { public: GtkRootNode(); virtual GVariant* Introspect() const; virtual std::string GetName() const; virtual std::string GetPath() const; virtual int32_t GetId() const; virtual bool MatchIntegerProperty(const std::string& name, int32_t value) const; virtual bool MatchBooleanProperty(const std::string& name, bool value) const; virtual bool MatchStringProperty(const std::string& name, const std::string& value) const; virtual xpathselect::NodeVector Children() const; private: virtual GVariant* GetChildNodeNames() const; }; #endif // ROOTGTKNODE_H autopilot-gtk/lib/Introspection.cpp0000664000000000000000000001041115044127643014666 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #include "Introspection.h" #include #include #include #include #include #include "GtkNode.h" #include "GtkRootNode.h" std::string AUTOPILOT_INTROSPECTION_OBJECT_PATH = "/com/canonical/Autopilot/Introspection"; void bus_acquired (GObject *object, GAsyncResult * res, gpointer user_data) { //g_debug("bus acquired"); GDBusConnection *bus; GError *error = NULL; bus = g_bus_get_finish (res, &error); if (!bus) { //g_warning ("unable to connect to the session bus: %s", error->message); g_error_free (error); return; } g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (autopilot_introspection), bus, AUTOPILOT_INTROSPECTION_OBJECT_PATH.c_str(), &error); if (error) { //g_warning ("unable to export autopilot introspection service on dbus: %s", error->message); g_error_free (error); return; } g_signal_connect (autopilot_introspection, "handle-get-state", G_CALLBACK(handle_get_state), NULL); g_signal_connect (autopilot_introspection, "handle-get-version", G_CALLBACK(handle_get_version), NULL); g_object_unref (bus); } gboolean handle_get_state (AutopilotIntrospection* introspection_service, GDBusMethodInvocation* invocation, const gchar * arg, gpointer user_data) { //g_debug("handling get-state method call"); GVariant* state; state = Introspect(arg); autopilot_introspection_complete_get_state(introspection_service, invocation, state); return TRUE; } gboolean handle_get_version (AutopilotIntrospection *introspection_service, GDBusMethodInvocation *invocation) { autopilot_introspection_complete_get_version(introspection_service, invocation, WIRE_PROTO_VERSION.c_str()); return TRUE; } GVariant* Introspect(std::string const& query_string) { //g_debug("introspecting our current GTK+ context"); GVariantBuilder* builder = g_variant_builder_new(G_VARIANT_TYPE("a(sv)")); std::list node_list = GetNodesThatMatchQuery(query_string); for (auto node: node_list) { std::string object_path = node->GetPath(); g_variant_builder_add(builder, "(sv)", object_path.c_str(), node->Introspect()); //g_debug("dumped object '%s'", object_path.c_str()); } GVariant* state = g_variant_new("a(sv)", builder); g_variant_builder_unref(builder); return state; } std::list GetNodesThatMatchQuery(std::string const& query_string) { //g_debug("getting nodes that match query"); std::shared_ptr root = std::make_shared(); //g_debug("selecting nodes"); std::list node_list; xpathselect::NodeVector selected_nodes_list; selected_nodes_list = xpathselect::SelectNodes(root, query_string); //g_debug("finished selecting nodes"); for (auto node : selected_nodes_list) { // node may be our root node wrapper *or* an ordinary GObject wrapper auto object_ptr = std::static_pointer_cast(node); if (object_ptr) node_list.push_back(object_ptr); } return node_list; } autopilot-gtk/lib/Introspection.h0000664000000000000000000000316515044127643014343 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #ifndef INTROSPECTION_H #define INTROSPECTION_H #include #include #include "GtkNode.h" #include "IntrospectionService.h" extern AutopilotIntrospection* autopilot_introspection; static std::string WIRE_PROTO_VERSION("1.4"); void bus_acquired (GObject *object, GAsyncResult * res, gpointer user_data); gboolean handle_get_state (AutopilotIntrospection* introspection_service, GDBusMethodInvocation* invocation, const gchar * arg, gpointer user_data); gboolean handle_get_version (AutopilotIntrospection *introspection_service, GDBusMethodInvocation *invocation); GVariant* Introspect(std::string const& query_string); std::list GetNodesThatMatchQuery(std::string const& query_string); #endif // INTROSPECTION_H autopilot-gtk/lib/IntrospectionService.xml0000664000000000000000000000073315044127643016233 0ustar autopilot-gtk/lib/Variant.cpp0000664000000000000000000002001715044127643013435 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2010 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Tim Penhey */ #include #include #include "Variant.h" #include "autopilot_types.h" namespace variant { BuilderWrapper::BuilderWrapper(GVariantBuilder* builder) : builder_(builder) {} BuilderWrapper& BuilderWrapper::add(char const* name, bool value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_boolean(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, char const* value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); if (value) g_variant_builder_add(&b, "v", g_variant_new_string(value)); else g_variant_builder_add(&b, "v", g_variant_new_string("")); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, std::string const& value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_string(value.c_str())); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, int value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_int32(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, long int value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_int64(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, long long int value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_int64(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, unsigned int value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_uint32(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, long unsigned int value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_uint64(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, long long unsigned int value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_uint64(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, float value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_double(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, double value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", g_variant_new_double(value)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } BuilderWrapper& BuilderWrapper::add(char const* name, GVariant* value) { if (value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_PLAIN)); g_variant_builder_add(&b, "v", value); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); } return *this; } BuilderWrapper& BuilderWrapper::add_gvalue(char const* name, GValue* value) { switch (G_VALUE_TYPE(value)) { case G_TYPE_CHAR: { add(name, g_value_get_schar(value)); } break; case G_TYPE_UCHAR: { add(name, g_value_get_uchar(value)); } break; case G_TYPE_BOOLEAN: { add(name, (bool) g_value_get_boolean(value)); } break; case G_TYPE_INT: { add(name, g_value_get_int(value)); } break; case G_TYPE_UINT: { add(name, g_value_get_uint(value)); } break; case G_TYPE_LONG: { add(name, g_value_get_long(value)); } break; case G_TYPE_ULONG: { add(name, g_value_get_ulong(value)); } break; case G_TYPE_INT64: { add(name, g_value_get_int64(value)); } break; case G_TYPE_UINT64: { add(name, g_value_get_uint64(value)); } break; case G_TYPE_ENUM: { add(name, g_value_get_enum(value)); } break; case G_TYPE_FLAGS: { add(name, g_value_get_flags(value)); } break; case G_TYPE_FLOAT: { add(name, g_value_get_float(value)); } break; case G_TYPE_DOUBLE: { add(name, g_value_get_double(value)); } break; case G_TYPE_STRING: { add(name, g_value_get_string(value)); } break; case G_TYPE_POINTER: { add(name, g_value_get_pointer(value)); } break; case G_TYPE_BOXED: { add(name, g_value_get_boxed(value)); } break; case G_TYPE_PARAM: { add(name, g_value_get_param(value)); } break; case G_TYPE_OBJECT: { add(name, g_value_get_object(value)); } break; default: g_debug("unsupported type: %s", g_type_name(G_VALUE_TYPE(value))); {} break; } return *this; } BuilderWrapper& BuilderWrapper::BuilderWrapper::add(char const* name, GdkRectangle value) { GVariantBuilder b; g_variant_builder_init(&b, G_VARIANT_TYPE("av")); g_variant_builder_add(&b, "v", g_variant_new_int32(TYPE_RECT)); g_variant_builder_add(&b, "v", g_variant_new_int32(value.x)); g_variant_builder_add(&b, "v", g_variant_new_int32(value.y)); g_variant_builder_add(&b, "v", g_variant_new_int32(value.width)); g_variant_builder_add(&b, "v", g_variant_new_int32(value.height)); g_variant_builder_add( builder_, "{sv}", name, g_variant_builder_end(&b) ); return *this; } } autopilot-gtk/lib/Variant.h0000664000000000000000000000350615044127643013106 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2011 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Tim Penhey */ #ifndef VARIANT_H #define VARIANT_H #include #include #include #include namespace variant { class BuilderWrapper { public: BuilderWrapper(GVariantBuilder* builder); BuilderWrapper& add(char const* name, bool value); BuilderWrapper& add(char const* name, char const* value); BuilderWrapper& add(char const* name, std::string const& value); BuilderWrapper& add(char const* name, int value); BuilderWrapper& add(char const* name, long int value); BuilderWrapper& add(char const* name, long long int value); BuilderWrapper& add(char const* name, unsigned int value); BuilderWrapper& add(char const* name, long unsigned int value); BuilderWrapper& add(char const* name, long long unsigned int value); BuilderWrapper& add(char const* name, float value); BuilderWrapper& add(char const* name, double value); BuilderWrapper& add(char const* name, GVariant* value); BuilderWrapper& add_gvalue(char const* name, GValue* value); BuilderWrapper& add(char const* name, GdkRectangle value); private: GVariantBuilder* builder_; }; } #endif // VARIANT_H autopilot-gtk/lib/autopilot_types.h0000664000000000000000000000210415044127643014737 0ustar /* -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- * Copyright (C) 2013 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef AUTOPILOT_TYPES_H #define AUTOPILOT_TYPES_H /// IMPORTANT: THese constants are taken from the autopilot XPathSelect protocol document. /// Only add options here if the support has been added for them in autopilot itself. enum autopilot_type_id { TYPE_PLAIN = 0, TYPE_RECT = 1, TYPE_POINT = 2, TYPE_SIZE = 3, TYPE_COLOR = 4, TYPE_DATETIME = 5, TYPE_TIME = 6, }; #endif autopilot-gtk/lib/main.cpp0000664000000000000000000000604115044127643012756 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #include #include #include #include #include #include "main.h" #include "Introspection.h" #include "IntrospectionService.h" namespace { std::string filename; GLogLevelFlags levels_to_log; std::ostream& get_log_stream() { if (!filename.empty()) { static std::ofstream fstream(filename); return fstream; } else { return std::cout; } } std::string get_level_name(GLogLevelFlags lvl) { switch(lvl) { case G_LOG_LEVEL_DEBUG: return "DEBUG"; case G_LOG_LEVEL_INFO: return "INFO"; case G_LOG_LEVEL_MESSAGE: return "MESSAGE"; case G_LOG_LEVEL_WARNING: return "WARNING"; case G_LOG_LEVEL_CRITICAL: return "CRITICAL"; case G_LOG_LEVEL_ERROR: return "ERROR"; default: return "UNKNOWN"; } } } AutopilotIntrospection* autopilot_introspection = NULL; void LogHandler (const gchar* log_domain, GLogLevelFlags log_level, const gchar* message, gpointer user_data) { if (log_level & levels_to_log) { std::string domain = log_domain ? log_domain : "default"; get_log_stream() << "[" << domain << "] " << get_level_name(log_level) << ": " << message << std::endl; } } void initialise_logging() { if (getenv("AP_GTK_LOG_VERBOSE")) { levels_to_log = (GLogLevelFlags) ( G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION); } else { levels_to_log = (GLogLevelFlags)( G_LOG_LEVEL_WARNING | G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION); } char* fname = getenv("AP_GTK_LOG_FILE"); if (fname && strcmp(fname, "") != 0) { filename = fname; } g_log_set_default_handler(LogHandler, NULL); } int gtk_module_init(gint argc, char *argv[]) { initialise_logging(); autopilot_introspection = autopilot_introspection_skeleton_new (); g_bus_get (G_BUS_TYPE_SESSION, NULL, bus_acquired, NULL); // always log this: std::cout << "Autopilot GTK interface loaded. Wire protocol version is " << WIRE_PROTO_VERSION << "." << std::endl; return 0; } int display_init_func(GdkDisplay* display) { // FIXME: module fails to load if this is not defined, but is it necessary? return 0; } autopilot-gtk/lib/main.h0000664000000000000000000000153115044127643012422 0ustar // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*- /* * Copyright (C) 2012 Canonical Ltd * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authored by: Allan LeSage */ #ifndef MAIN_H #define MAIN_H extern "C" { int gtk_module_init(gint argc, char *argv[]); } #endif // MAIN_H autopilot-gtk/tests/0000775000000000000000000000000015044127643011721 5ustar autopilot-gtk/tests/autopilot/0000775000000000000000000000000015044127643013741 5ustar autopilot-gtk/tests/autopilot/tests/0000775000000000000000000000000015044415152015076 5ustar autopilot-gtk/tests/autopilot/tests/__init__.py0000664000000000000000000000000015044127643017202 0ustar autopilot-gtk/tests/autopilot/tests/test_actions.py0000664000000000000000000001536215044127643020163 0ustar # blackbox testing of autopilot API against our hello_color.py test GTK program # Author: Martin Pitt # Copyright (C) 2013 Canonical Ltd # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os.path import os import time from autopilot.testcase import AutopilotTestCase from autopilot.introspection.dbus import StateNotFoundError from autopilot.matchers import Eventually from testtools.matchers import Equals, NotEquals, raises tests_dir = os.path.dirname(os.path.dirname(os.path.dirname( os.path.realpath(__file__)))) test_app = os.path.join(tests_dir, 'hello_color.py') class ActionsTest(AutopilotTestCase): """Test performing actions in the UI and verify results""" def setUp(self): super(ActionsTest, self).setUp() # we want to test the position of GtkMenuItems here, disable global menubar os.environ['UBUNTU_MENUPROXY'] = '0' self.app = self.launch_test_application(test_app, app_type='gtk') def test_greeting_keyboard(self): """Greeting with keyboard navigation""" entry_name = self.app.select_single(BuilderName='entry_name') entry_color = self.app.select_single(BuilderName='entry_color') # FIXME: This isn't necessary for real X, but under Xvfb there is no # default focus sometimes if not entry_name.has_focus: self.mouse.click_object(entry_name) # type in name and color self.keyboard.type('Joe') self.keyboard.press_and_release('Tab') self.keyboard.type('red') # entries should now have the typed text self.assertThat(entry_name.text, Eventually(Equals('Joe'))) self.assertThat(entry_color.text, Eventually(Equals('red'))) # should not have any dialogs self.assertThat( lambda: self.app.select_single('GtkMessageDialog'), raises(StateNotFoundError) ) # focus and activate the "Greet" button self.keyboard.press_and_release('Tab') self.keyboard.press_and_release('Enter') # should get the greeting dialog md = self.app.wait_select_single('GtkMessageDialog', visible=True) # we expect the message dialog to show the corresponding greeting self.assertNotEqual(md.select_single('GtkLabel', label=u'Hello Joe, you like red.'), None) # close the dialog self.keyboard.press_and_release('Enter') self.assertThat( lambda: self.app.select_single('GtkMessageDialog', visible=True), raises(StateNotFoundError) ) def test_greeting_mouse(self): """Greeting with mouse navigation""" entry_name = self.app.select_single(BuilderName='entry_name') entry_color = self.app.select_single(BuilderName='entry_color') # FIXME: This isn't necessary for real X, but under Xvfb there is no # default focus sometimes if not entry_name.has_focus: self.mouse.click_object(entry_name) # type in name and color self.keyboard.type('Joe') self.mouse.click_object(entry_color) self.keyboard.type('blue') # entries should now have the typed text self.assertThat(entry_name.text, Eventually(Equals('Joe'))) self.assertThat(entry_color.text, Eventually(Equals('blue'))) # should not have any dialogs self.assertThat( lambda: self.app.select_single('GtkMessageDialog'), raises(StateNotFoundError) ) # focus and activate the "Greet" button btn = self.app.select_single('GtkButton', label='Greet') self.assertNotEqual(btn, None) self.mouse.click_object(btn) # should get the greeting dialog md = self.app.wait_select_single('GtkMessageDialog', visible=True) # we expect the message dialog to show the corresponding greeting self.assertNotEqual(md.select_single('GtkLabel', label=u'Hello Joe, you like blue.'), None) # close the dialog btn = md.wait_select_single('GtkButton', visible=True) time.sleep(1) self.mouse.click_object(btn) # We don't have Eventually(raises(... support, so wait until the second # assert should be okay to test. self.assertThat(md.visible, Eventually(Equals(False))) self.assertThat( lambda: self.app.select_single('GtkMessageDialog', visible=True), raises(StateNotFoundError) ) def test_clear(self): """Using Clear button with mouse""" # type in name and color self.keyboard.type('Joe') self.keyboard.press_and_release('Tab') self.keyboard.type('blue') # clear btn = self.app.select_single('GtkButton', label='gtk-delete') self.mouse.click_object(btn) # entries should be clear now entries = self.app.select_many('GtkEntry') self.assertEqual(len(entries), 2) for e in entries: self.assertThat(e.text, Eventually(Equals(''))) def test_menu(self): """Browse the menu""" file_menu = self.app.select_single('GtkMenuItem', label='_File') help_menu = self.app.select_single('GtkMenuItem', label='_Help') self.assertNotEqual(file_menu, None) self.assertNotEqual(help_menu, None) # the top-level menus should be visible and thus have a rect for m in (file_menu, help_menu): self.assertGreaterEqual(m.globalRect[0], 0) self.assertGreaterEqual(m.globalRect[1], 0) self.assertGreater(m.globalRect[2], 0) self.assertGreater(m.globalRect[3], 0) # the submenus are not visible by default m = self.app.select_single('GtkImageMenuItem', label='gtk-open') self.assertFalse(hasattr(m, 'globalRect')) # after opening, submenus should become visible self.mouse.click_object(file_menu) m = self.app.wait_select_single('GtkImageMenuItem', label='gtk-open', visible=True) self.assertGreaterEqual(m.globalRect[0], 0) self.assertGreaterEqual(m.globalRect[1], 0) self.assertGreater(m.globalRect[2], 0) self.assertGreater(m.globalRect[3], 0) autopilot-gtk/tests/autopilot/tests/test_gnome_app.py0000664000000000000000000000474415044415152020465 0ustar # blackbox testing of autopilot API against gnome-calculator # Author: Martin Pitt # Copyright (C) 2013 Canonical Ltd # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os from autopilot.testcase import AutopilotTestCase from autopilot.matchers import Eventually from testtools.matchers import Equals from fixtures import EnvironmentVariable class GnomeAppTest(AutopilotTestCase): """Test autopilot against an actual GNOME application""" def setUp(self): super(GnomeAppTest, self).setUp() patched_env = EnvironmentVariable('LANGUAGE', '') patched_env = EnvironmentVariable('LANG', '') patched_env = EnvironmentVariable('LC_MESSAGES', 'C') self.useFixture(patched_env) xdg_st = os.getenv('XDG_SESSION_TYPE', "").lower() if xdg_st in ['x11', 'mir'] or os.path.exists('/dev/uinput'): self.app = self.launch_test_application('gnome-calculator') def test_builder_button(self): """Find button by builder ID""" xdg_st = os.getenv('XDG_SESSION_TYPE', "").lower() if xdg_st not in ['x11', 'mir'] and not os.path.exists('/dev/uinput'): self.skipTest("autopilot only supports x11, MIR, or uinput.") l = self.app.select_single(BuilderName='calc_result_button') self.assertNotEqual(l, None) self.assertEqual(l.visible, True) self.assertEqual(l.label, '=') def test_calc(self): """Run a calculation""" xdg_st = os.getenv('XDG_SESSION_TYPE', "").lower() if xdg_st not in ['x11', 'mir'] and not os.path.exists('/dev/uinput'): self.skipTest("autopilot only supports x11, MIR, or uinput.") display = self.app.select_single(BuilderName='displayitem') self.mouse.click_object(display) self.assertThat(display.buffer, Equals('')) self.keyboard.type('1+1') self.keyboard.press_and_release('Enter') self.assertThat(display.buffer, Eventually(Equals('2'))) autopilot-gtk/tests/autopilot/tests/test_properties.py0000664000000000000000000001277015044127643020717 0ustar # blackbox testing of autopilot API against our hello_color.py test GTK program # Author: Martin Pitt # Copyright (C) 2013 Canonical Ltd # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os.path import unittest from autopilot.testcase import AutopilotTestCase tests_dir = os.path.dirname(os.path.dirname(os.path.dirname( os.path.realpath(__file__)))) test_app = os.path.join(tests_dir, 'hello_color.py') class PropertyTest(AutopilotTestCase): """Widget properties""" def setUp(self): super(PropertyTest, self).setUp() self.app = self.launch_test_application(test_app, app_type='gtk') def test_gtk_builder_name(self): """GtkBuilder name lookup""" w = self.app.select_single(BuilderName='button_greet') self.assertNotEqual(w, None) self.assertEqual(w.label, 'Greet') w = self.app.select_single(BuilderName='button_quit') self.assertNotEqual(w, None) self.assertEqual(w.label, 'gtk-quit') w = self.app.select_single(BuilderName='entry_color') self.assertNotEqual(w, None) def test_button(self): """GtkButton properties""" btn_greet = self.app.select_single('GtkButton', label='Greet') self.assertNotEqual(btn_greet, None) btn_quit = self.app.select_single('GtkButton', label='gtk-quit') self.assertNotEqual(btn_quit, None) self.assertEqual(btn_greet.use_stock, False) self.assertEqual(btn_quit.use_stock, True) # only GtkButton, GtkFileChooserButton, and GtkComboBox have # focus-on-click, and we don't use the latter two self.assertEqual(btn_greet.focus_on_click, True) self.assertEqual(btn_quit.focus_on_click, True) # all buttons are visible and thus should have a rect self.assertTrue(btn_greet.visible) self.assertTrue(btn_quit.visible) self.assertEqual(len(btn_greet.globalRect), 4) self.assertEqual(len(btn_quit.globalRect), 4) # all our buttons have a GtkBuilder ID self.assertEqual(btn_greet.BuilderName, 'button_greet') self.assertEqual(btn_quit.BuilderName, 'button_quit') def test_entry(self): """GtkEntry properties""" entry_name = self.app.select_single(BuilderName='entry_name') entry_color = self.app.select_single(BuilderName='entry_color') self.assertTrue(entry_name.visible) self.assertTrue(entry_color.visible) # the entries should have the same size and x alignment self.assertEqual(entry_name.globalRect[0], entry_color.globalRect[0]) self.assertEqual(entry_name.globalRect[2:], entry_color.globalRect[2:]) # FIXME: This isn't necessary for real X, but under Xvfb there is no # default focus sometimes if not entry_name.has_focus: self.mouse.click_object(entry_name) # the color entry is below the name entry self.assertLess(entry_name.globalRect[1], entry_color.globalRect[1]) # first entry has default focus self.assertEqual(entry_name.has_focus, True) self.assertEqual(entry_color.has_focus, False) # both entries are empty by default self.assertEqual(entry_name.text, '') self.assertEqual(entry_color.text, '') # text-length is an unique property for GtkEntry self.assertEqual(entry_name.text_length, 0) self.assertEqual(entry_color.text_length, 0) def test_enum_flags_properties(self): '''enum and flags properties''' # enum btn_greet = self.app.select_single('GtkButton', label='Greet') self.assertEqual(btn_greet.relief, 'GTK_RELIEF_NORMAL') self.assertEqual(btn_greet.resize_mode, 'GTK_RESIZE_PARENT') res = self.app.select_many(relief='GTK_RELIEF_NORMAL', visible=True) self.assertGreaterEqual(len(res), 3) self.assertIn('Button', str(type(res[0]))) # flags self.assertGreaterEqual(btn_greet.events, 0) res = self.app.select_many('GtkButton', events=btn_greet.events) self.assertGreater(len(res), 0) def test_textview_properties(self): """GtkTextView properties""" t = self.app.select_single(BuilderName='textview_demo') self.assertNotEqual(t, None) self.assertEqual(t.editable, True) self.assertEqual(t.overwrite, False) # the buffer property points to a GtkTextBuffer object, which we want # to translate to a plain string self.assertEqual(t.buffer, 'This is a test application.') # select by buffer contents w = self.app.select_single(buffer='This is a test application.') self.assertEqual(w.BuilderName, 'textview_demo') def test_stress(self): """Query lots widgets in a tight loop""" for i in range(300): w = self.app.select_single(BuilderName='button_greet') self.assertEqual(w.label, 'Greet') w = self.app.select_single('GtkButton', label='gtk-quit') self.assertEqual(w.use_stock, True) autopilot-gtk/tests/autopilot/tests/test_widget_tree.py0000664000000000000000000001555715044127643021033 0ustar # blackbox testing of autopilot API against our hello_color.py test GTK program # Author: Martin Pitt # Copyright (C) 2013 Canonical Ltd # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os.path import unittest from autopilot.introspection.dbus import StateNotFoundError from autopilot.testcase import AutopilotTestCase from testtools.matchers import raises tests_dir = os.path.dirname(os.path.dirname(os.path.dirname( os.path.realpath(__file__)))) test_app = os.path.join(tests_dir, 'hello_color.py') class WidgetTreeTest(AutopilotTestCase): """Widget tree iteration and search""" def setUp(self): super(WidgetTreeTest, self).setUp() self.app = self.launch_test_application(test_app, app_type='gtk') def test_get_children_recursive(self): """Recursive get_children() This should not crash, and deliver valid widgets. """ widgets = set() self._get_widgets(self.app, widgets) for c in widgets: self.assertIn('.Gtk', str(type(c))) self.assertGreaterEqual(c.id, 0) # uncomment this to get a dump of all widgets and properties #print(type(c)) #for p in c.get_properties(): # print ' ', p, repr(getattr(c, p)) def test_get_children_by_type(self): # multiple instances res = self.app.get_children_by_type('GtkWindow') self.assertGreaterEqual(len(res), 3) self.assertIn('.GtkWindow', str(type(res[0]))) # one qualified instance res = self.app.get_children_by_type('GtkWindow', Children=['GtkBox']) self.assertGreaterEqual(len(res), 1) # no instances self.assertEqual(self.app.get_children_by_type('GtkTable'), []) def test_select_single_unique(self): """select_single() on widget types with only one instance""" for wtype in ('GtkMenuBar', 'GtkAboutDialog'): w = self.app.select_single(wtype) self.assertIn('.' + wtype, str(type(w))) def test_select_single_nonunique(self): """select_single() on widget types with multiple instances""" # we have more than one instance of these for wtype in ('GtkButton', 'GtkEntry'): self.assertRaises(ValueError, self.app.select_single, wtype) # we have no instances of these for wtype in ('GtkTable', 'NonExistent'): RaisedStateNotFound = False try: self.app.select_single(wtype) except StateNotFoundError: RaisedStateNotFound = True self.assertTrue(RaisedStateNotFound) # qualified: visible property is not unique self.assertRaises(ValueError, self.app.select_single, 'GtkButton', visible=True) # qualified: label property is unique within GtkButton w = self.app.select_single('GtkButton', label='gtk-quit') self.assertIn('.GtkButton', str(type(w))) self.assertEqual(w.label, 'gtk-quit') def test_select_single_noclass(self): """select_single() without specifying a class""" # gtk-delete label is unique to our Button w = self.app.select_single(label='gtk-delete') self.assertIn('.GtkButton', str(type(w))) self.assertEqual(w.label, 'gtk-delete') # gtk-quit label is not unique globally, it's also a menu item self.assertRaises(ValueError, self.app.select_single, label='gtk-quit') # ... but it is unique for focussable widgets (menus don't allow that) w = self.app.select_single(label='gtk-quit', can_focus=True) self.assertIn('.GtkButton', str(type(w))) self.assertEqual(w.label, 'gtk-quit') def test_select_many_string(self): """select_many() with string properties""" # by class, unqualified, multiple instances res = self.app.select_many('GtkButton') # we have three in our main window, plus some in the about dialog self.assertGreaterEqual(len(res), 3) self.assertIn('.GtkButton', str(type(res[0]))) # .. but exactly three in the main window main_window = self.app.select_single('GtkWindow', Children=['GtkBox'], visible=True) res = main_window.select_many('GtkButton') self.assertEqual(len(res), 3) # by class, unqualified, single instance res = self.app.select_many('GtkMenuBar') self.assertEqual(len(res), 1) self.assertIn('.GtkMenuBar', str(type(res[0]))) # by class, unqualified, no instance res = self.app.select_many('GtkTable') self.assertEqual(res, []) # by class, qualified res = self.app.select_many('GtkButton', label='Greet') self.assertEqual(len(res), 1) self.assertIn('.GtkButton', str(type(res[0]))) self.assertEqual(res[0].label, 'Greet') # untyped res = self.app.select_many(label='gtk-delete') self.assertEqual(len(res), 1) self.assertIn('.GtkButton', str(type(res[0]))) self.assertEqual(res[0].label, 'gtk-delete') res = self.app.select_many(label='gtk-quit') # button and menu item self.assertEqual(len(res), 2) def test_select_int(self): """select_*() with int properties""" # with class res = self.app.select_many('GtkButtonBox', border_width=5) self.assertEqual(len(res), 1) self.assertNotEqual(self.app.select_single('GtkButtonBox', border_width=5), None) # without class res = self.app.select_many(border_width=5) self.assertGreater(len(res), 2) self.assertNotEqual(self.app.select_single(border_width=2), None) def test_select_bool(self): """select_*() with boolean properties""" # with class res = self.app.select_many('GtkButton', visible=True) self.assertGreater(len(res), 2) res = self.app.select_many('GtkAboutDialog', visible=False) self.assertGreater(len(res), 0) # without class res = self.app.select_many(visible=True) self.assertGreater(len(res), 5) res = self.app.select_many(visible=False) self.assertGreater(len(res), 4) @classmethod def _get_widgets(klass, obj, widget_set): """Recursively add all children of obj to widget_set""" for c in obj.get_children(): widget_set.add(c) klass._get_widgets(c, widget_set) autopilot-gtk/tests/autopilot/tests/test_xpath_query.py0000664000000000000000000001052115044127643021064 0ustar # blackbox testing of autopilot API against our hello_color.py test GTK program # Author: Martin Pitt # Copyright (C) 2013 Canonical Ltd # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os.path import unittest from autopilot.testcase import AutopilotTestCase tests_dir = os.path.dirname(os.path.dirname(os.path.dirname( os.path.realpath(__file__)))) test_app = os.path.join(tests_dir, 'hello_color.py') class XPathQueryTest(AutopilotTestCase): """XPath queries""" def setUp(self): super(XPathQueryTest, self).setUp() self.app = self.launch_test_application(test_app, app_type='gtk') def xtest_have_path(self): """All children have a unique path""" widgets = set() self._get_widgets(self.app, widgets) seen_paths = set() for widget in widgets: path = widget.get_class_query_string() self.assertNotIn(path, seen_paths) seen_paths.add(path) # we can resolve the path back to the widget state = self.app.get_state_by_path(path) # state is an array with one (path, props) element props = state[0][1] self.assertEqual(props['id'], widget.id) self.assertEqual(props['visible'], widget.visible) def xtest_select_full_path(self): """Select widgets with full XPath""" # three buttons in main dialog's ButtonBox state = self.app.get_state_by_path('/Root/GtkWindow/GtkBox/GtkButtonBox/GtkButton') self.assertEqual(len(state), 3) labels = [str(props[1]['label']) for props in state] labels.sort() self.assertEqual(labels, ['Greet', 'gtk-delete', 'gtk-quit']) # select button with particular label for l in ['Greet', 'gtk-delete', 'gtk-quit']: state = self.app.get_state_by_path('/Root/GtkWindow/GtkBox/GtkButtonBox/GtkButton[label=%s]' % l) self.assertEqual(len(state), 1) self.assertEqual(state[0][1]['label'], l) def xtest_select_path_pattern(self): """Select widgets with XPath path pattern""" # three buttons in main dialog's ButtonBox state = self.app.get_state_by_path('//GtkWindow//GtkButton') self.assertEqual(len(state), 3) labels = [str(props[1]['label']) for props in state] labels.sort() self.assertEqual(labels, ['Greet', 'gtk-delete', 'gtk-quit']) # at least four buttons in the whole tree state = self.app.get_state_by_path('/Root//GtkButton') self.assertGreaterEqual(len(state), 4) # FIXME: Fix this test, it fails with: # AttributeError: Class 'Root' has no attribute 'get_state_by_path' @unittest.expectedFailure def test_select_by_attribute(self): """Select widgets with attribute pattern""" state = self.app.get_state_by_path('//*[label="gtk-delete"]') self.assertEqual(len(state), 1, state) self.assertEqual(state[0][1]['label'], [0, 'gtk-delete']) self.assertTrue(state[0][0].endswith('/GtkButton'), state[0][0]) # https://launchpad.net/bugs/1179806 # TODO: Make this pass! @unittest.expectedFailure def test_select_by_attribute_spaces(self): """Select widgets with attribute pattern containing spaces""" for state_str in ('//*[label="Hello\\x20Color!"]', '//*[label="Hello Color!"]'): state = self.app.get_state_by_path(state_str) self.assertEqual(len(state), 1, str(state)) self.assertEqual(state[0][1]['label'], 'Hello Color!') self.assertTrue(state[0][0].endswith('/GtkLabel'), state[0][0]) @classmethod def _get_widgets(klass, obj, widget_set): """Recursively add all children of obj to widget_set""" for c in obj.get_children(): widget_set.add(c) klass._get_widgets(c, widget_set) autopilot-gtk/tests/hello_color.py0000775000000000000000000000347615044127643014611 0ustar #!/usr/bin/python3 import sys import os.path import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class HelloColorApp(Gtk.Application): def __init__(self): self.widgets = Gtk.Builder.new() self.widgets.add_from_file((os.path.join(os.path.dirname(sys.argv[0]), 'hello_color.ui'))) assert self.widgets.connect_signals(self) is None def run(self): self.widgets.get_object('window_app').show() Gtk.main() def on_quit(self, *args): Gtk.main_quit() def on_file_open(self, *args): md = Gtk.FileChooserDialog('Select a file..', parent=self.widgets.get_object('window_app'), buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) result = md.run() md.hide() if result == Gtk.ResponseType.OK: self.widgets.get_object('label_status').set_text('Loaded %s' % md.get_filenames()[0]) def on_button_greet(self, *args): name = self.widgets.get_object('entry_name').get_text() color = self.widgets.get_object('entry_color').get_text() md = Gtk.MessageDialog(message_type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.CLOSE, text='Hello %s, you like %s.' % (name, color)) md.run() md.hide() def on_button_clear(self, *args): self.widgets.get_object('entry_name').set_text('') self.widgets.get_object('entry_color').set_text('') self.widgets.get_object('label_status').set_text('') def on_about(self, *args): d = self.widgets.get_object('dialog_about') d.run() d.hide() if __name__ == '__main__': HelloColorApp().run() autopilot-gtk/tests/hello_color.ui0000664000000000000000000002760315044127643014571 0ustar False 5 dialog Hello Color! (C) 2013 Canonical Ltd. Martin Pitt gpl-3-0 False TextView Demo True False True False textbuffer_demo This is a test application. False Hello Color True False vertical True False True False _File True True False gtk-open True False True True True False gtk-quit True False True True True False _Help True True False gtk-about True False True True False True 0 True False start 5 5 5 5 5 5 True False Name 0 0 1 1 True False Color 0 1 1 1 True True True 1 0 1 1 True True 1 1 1 1 True True 1 True False 0 5 10 False True 2 True 5 False 10 True end 5 Greet True True True False True 0 gtk-delete True True True True False True 1 gtk-quit True True True True right False True 2 False True 3