summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-07-30 10:47:14 +0200
committerChristian Grothoff <christian@grothoff.org>2021-07-30 10:47:14 +0200
commitf3181db7c364e4f91d68fb987164402dc33f68ce (patch)
treeb3af7e9de477006c2ba0fe623c95030f344ef3b3 /contrib
downloadanastasis-gtk-f3181db7c364e4f91d68fb987164402dc33f68ce.tar.gz
anastasis-gtk-f3181db7c364e4f91d68fb987164402dc33f68ce.tar.bz2
anastasis-gtk-f3181db7c364e4f91d68fb987164402dc33f68ce.zip
folding history in preparation of GNU Anastasis-gtk v0.0.0 release
Diffstat (limited to 'contrib')
-rw-r--r--contrib/.gitignore1
-rw-r--r--contrib/Makefile.am44
-rw-r--r--contrib/anastasis_gtk_about_window.glade.in44
-rw-r--r--contrib/anastasis_gtk_auth_add_email.glade159
-rw-r--r--contrib/anastasis_gtk_auth_add_post.glade327
-rw-r--r--contrib/anastasis_gtk_auth_add_question.glade336
-rw-r--r--contrib/anastasis_gtk_auth_add_sms.glade158
-rw-r--r--contrib/anastasis_gtk_auth_add_video.glade172
-rw-r--r--contrib/anastasis_gtk_challenge_code.glade272
-rw-r--r--contrib/anastasis_gtk_challenge_question.glade234
-rw-r--r--contrib/anastasis_gtk_edit_policy.glade222
-rw-r--r--contrib/anastasis_gtk_edit_providers.glade275
-rw-r--r--contrib/anastasis_gtk_main_window.glade4037
-rw-r--r--contrib/anastasis_gtk_open_file_dialog.glade103
-rw-r--r--contrib/anastasis_gtk_open_secret_dialog.glade97
-rw-r--r--contrib/anastasis_gtk_save_file_dialog.glade101
-rw-r--r--contrib/anastasis_gtk_save_secret_dialog.glade101
-rw-r--r--contrib/authentication_methods.pngbin0 -> 82253 bytes
-rw-r--r--contrib/bandiera_stelle.pngbin0 -> 2519 bytes
-rw-r--r--contrib/continent_selection.jpgbin0 -> 97890 bytes
-rw-r--r--contrib/country_selection.jpgbin0 -> 203711 bytes
-rw-r--r--contrib/enter_secret.jpgbin0 -> 41829 bytes
-rwxr-xr-xcontrib/get_version.sh21
-rw-r--r--contrib/logo.pngbin0 -> 1915 bytes
-rw-r--r--contrib/ngi_ledger.pngbin0 -> 9757 bytes
-rw-r--r--contrib/noun_blindfold_3574196.svg1
-rw-r--r--contrib/pay_with_taler.pngbin0 -> 39336 bytes
-rwxr-xr-xcontrib/pogen.sh4
-rw-r--r--contrib/policy_confirmation.pngbin0 -> 67779 bytes
-rw-r--r--contrib/qr_dummy.pngbin0 -> 239 bytes
-rw-r--r--contrib/satisfy_challenge.pngbin0 -> 85123 bytes
-rw-r--r--contrib/this_stays_private.glade70
-rw-r--r--contrib/user_attributes.pngbin0 -> 29782 bytes
33 files changed, 6779 insertions, 0 deletions
diff --git a/contrib/.gitignore b/contrib/.gitignore
new file mode 100644
index 0000000..0e92db4
--- /dev/null
+++ b/contrib/.gitignore
@@ -0,0 +1 @@
+anastasis_gtk_about_window.glade
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
new file mode 100644
index 0000000..add354e
--- /dev/null
+++ b/contrib/Makefile.am
@@ -0,0 +1,44 @@
+# This Makefile.am is in the public domain
+# Process this file with automake to produce Makefile.in
+
+SUBDIRS = .
+
+pkgdatadir= $(prefix)/share/anastasis/
+
+IMAGES = \
+ qr_dummy.png \
+ logo.png \
+ country_selection.jpg \
+ continent_selection.jpg \
+ user_attributes.png \
+ enter_secret.jpg \
+ pay_with_taler.png \
+ authentication_methods.png \
+ satisfy_challenge.png \
+ noun_blindfold_3574196.svg \
+ ngi_ledger.png \
+ bandiera_stelle.png
+
+EXTRA_DIST = \
+ $(pkgdata_DATA) \
+ get_version.sh \
+ pogen.sh
+
+pkgdata_DATA = \
+ $(IMAGES) \
+ this_stays_private.glade \
+ anastasis_gtk_about_window.glade \
+ anastasis_gtk_auth_add_email.glade \
+ anastasis_gtk_auth_add_post.glade \
+ anastasis_gtk_auth_add_question.glade \
+ anastasis_gtk_auth_add_sms.glade \
+ anastasis_gtk_auth_add_video.glade \
+ anastasis_gtk_challenge_code.glade \
+ anastasis_gtk_challenge_question.glade \
+ anastasis_gtk_edit_providers.glade \
+ anastasis_gtk_edit_policy.glade \
+ anastasis_gtk_open_file_dialog.glade \
+ anastasis_gtk_open_secret_dialog.glade \
+ anastasis_gtk_main_window.glade \
+ anastasis_gtk_save_file_dialog.glade \
+ anastasis_gtk_save_secret_dialog.glade
diff --git a/contrib/anastasis_gtk_about_window.glade.in b/contrib/anastasis_gtk_about_window.glade.in
new file mode 100644
index 0000000..b7ee59f
--- /dev/null
+++ b/contrib/anastasis_gtk_about_window.glade.in
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface>
+ <requires lib="gtk+" version="3.0"/>
+ <object class="GtkAboutDialog" id="about_window">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <property name="program-name">anastasis-gtk</property>
+ <property name="version">@ANASTASIS_GTK_VERSION3@</property>
+ <property name="copyright" translatable="yes">(C) @ANASTASIS_GTK_YEARFROM@-@ANASTASIS_YEARTO@ Anastasis SARL</property>
+ <property name="website">https://anastasis.lu/</property>
+ <property name="website-label" translatable="yes">Anastasis</property>
+ <property name="authors">Belen Pena
+Christian Grothoff
+Dennis Neufeld</property>
+ <property name="documenters">Christian Grothoff
+Dominik Meister
+Dennis Neufeld</property>
+ <property name="logo">logo.svg</property>
+ <property name="license-type">gpl-3-0</property>
+ <signal name="response" handler="ANASTASIS_GTK_about_close_response" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_auth_add_email.glade b/contrib/anastasis_gtk_auth_add_email.glade
new file mode 100644
index 0000000..2975bdf
--- /dev/null
+++ b/contrib/anastasis_gtk_auth_add_email.glade
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Belen Pena, Christian Grothoff, Dennis Neufeld
+
+-->
+<interface domain="">
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description Key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Belen Pena, Christian Grothoff, Dennis Neufeld -->
+ <object class="GtkDialog" id="anastasis_gtk_b_email_dialog">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="anastasis_gtk_b_email_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_email_dialog_btn_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_email_dialog_btn_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Email address:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_email_dialog_mailaddress_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="has-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">36</property>
+ <property name="primary-icon-stock">gtk-dialog-authentication</property>
+ <property name="input-purpose">email</property>
+ <signal name="changed" handler="anastasis_gtk_b_email_dialog_mailaddress_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_email_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_email_dialog_btn_ok</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Add email authentication</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_email_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_email_dialog_btn_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_auth_add_post.glade b/contrib/anastasis_gtk_auth_add_post.glade
new file mode 100644
index 0000000..0887a40
--- /dev/null
+++ b/contrib/anastasis_gtk_auth_add_post.glade
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description Key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkDialog" id="anastasis_gtk_b_post_dialog">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="anastasis_gtk_b_post_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_post_dialog_btn_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_post_dialog_btn_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Full name:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_post_dialog_full_name_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="has-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <signal name="changed" handler="anastasis_gtk_b_post_dialog_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Street:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_post_dialog_street_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <signal name="changed" handler="anastasis_gtk_b_post_dialog_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_City:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_post_dialog_city_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <signal name="changed" handler="anastasis_gtk_b_post_dialog_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Postcode:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_post_dialog_postcode_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <signal name="changed" handler="anastasis_gtk_b_post_dialog_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Countr_y:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_post_dialog_country_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <signal name="changed" handler="anastasis_gtk_b_post_dialog_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_post_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_post_dialog_btn_ok</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Add post authentication</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_post_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_post_dialog_btn_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_auth_add_question.glade b/contrib/anastasis_gtk_auth_add_question.glade
new file mode 100644
index 0000000..3984a69
--- /dev/null
+++ b/contrib/anastasis_gtk_auth_add_question.glade
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description Key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkDialog" id="anastasis_gtk_b_question_dialog">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="anastasis_gtk_b_question_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_question_dialog_btn_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_question_dialog_btn_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="question_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Security _question:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_question_dialog_question_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">60</property>
+ <property name="primary-icon-stock">gtk-dialog-question</property>
+ <signal name="changed" handler="anastasis_gtk_b_question_dialog_question_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">10</property>
+ <property name="margin-right">10</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">15</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="answer_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Answer:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_question_dialog_answer_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">60</property>
+ <property name="primary-icon-stock">gtk-dialog-authentication</property>
+ <signal name="changed" handler="anastasis_gtk_b_question_dialog_answer_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">10</property>
+ <property name="margin-right">10</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image1">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">15</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_question_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_question_dialog_btn_ok</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Add security question authentication</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_question_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_question_dialog_btn_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_auth_add_sms.glade b/contrib/anastasis_gtk_auth_add_sms.glade
new file mode 100644
index 0000000..f6ad2f7
--- /dev/null
+++ b/contrib/anastasis_gtk_auth_add_sms.glade
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description Key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkDialog" id="anastasis_gtk_b_sms_dialog">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="anastasis_gtk_b_sms_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_sms_dialog_btn_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_sms_dialog_btn_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Phone number:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_b_sms_dialog_phonenumber_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">24</property>
+ <property name="primary-icon-stock">gtk-dialog-authentication</property>
+ <property name="placeholder-text" translatable="yes">+41123456789</property>
+ <property name="input-purpose">phone</property>
+ <signal name="changed" handler="anastasis_gtk_b_sms_dialog_phonenumber_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_sms_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_sms_dialog_btn_ok</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Add sms authentication</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_sms_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_sms_dialog_btn_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_auth_add_video.glade b/contrib/anastasis_gtk_auth_add_video.glade
new file mode 100644
index 0000000..5524075
--- /dev/null
+++ b/contrib/anastasis_gtk_auth_add_video.glade
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkDialog" id="anastasis_gtk_b_video_dialog">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_video_dialog_btn_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_b_video_dialog_btn_cancel_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_video_dialog_btn_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Choose a photo:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFileChooserButton">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="has-focus">True</property>
+ <property name="title" translatable="yes"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage">
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_video_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_video_dialog_btn_ok</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Add video authentication</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_video_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_b_video_dialog_btn_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_challenge_code.glade b/contrib/anastasis_gtk_challenge_code.glade
new file mode 100644
index 0000000..11de07b
--- /dev/null
+++ b/contrib/anastasis_gtk_challenge_code.glade
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkDialog" id="anastasis_gtk_c_code_dialog">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="anastasis_gtk_c_code_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_c_code_dialog_btn_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_c_code_dialog_btn_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_c_code_error_label">
+ <property name="can-focus">False</property>
+ <property name="label">ERROR MESSAGE (SET DYNAMICALLY BY PROGRAM)</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="foreground" value="#a5a51d1d2d2d"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_c_challenge_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_c_challenge_pre_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Challenge:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_c_challenge_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">SET DYNAMICALLY BY PROGRAM</property>
+ <attributes>
+ <attribute name="style" value="italic"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Code sent to:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="challenge_instructions_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">SET DYNAMICALLY BY PROGRAM</property>
+ <attributes>
+ <attribute name="style" value="italic"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Enter the code:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_c_code_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="width-chars">24</property>
+ <property name="text">A-</property>
+ <property name="primary-icon-stock">gtk-dialog-authentication</property>
+ <property name="placeholder-text" translatable="yes">A-</property>
+ <signal name="changed" handler="anastasis_gtk_c_code_dialog_answer_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_c_code_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_c_code_dialog_btn_ok</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel" id="anastasis_gtk_c_code_dialog_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Security token challenge</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_c_code_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_c_code_dialog_btn_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_challenge_question.glade b/contrib/anastasis_gtk_challenge_question.glade
new file mode 100644
index 0000000..97cc1ec
--- /dev/null
+++ b/contrib/anastasis_gtk_challenge_question.glade
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkDialog" id="anastasis_gtk_c_question_dialog">
+ <property name="can-focus">False</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="anastasis_gtk_c_question_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_b_question_dialog_btn_cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_c_question_dialog_btn_ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_c_question_error_label">
+ <property name="can-focus">False</property>
+ <property name="label">ERROR MESSAGE (SET DYNAMICALLY BY PROGRAM)</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="foreground" value="#a5a51d1d2d2d"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Security question:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="security_question_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">SET DYNAMICALLY BY PROGRAM</property>
+ <attributes>
+ <attribute name="style" value="italic"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Answer:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_c_question_dialog_answer_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">60</property>
+ <property name="primary-icon-stock">gtk-dialog-authentication</property>
+ <signal name="changed" handler="anastasis_gtk_c_question_dialog_answer_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_question_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_c_question_dialog_btn_ok</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Solve secuity question challenge</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">anastasis_gtk_b_question_dialog_btn_cancel</action-widget>
+ <action-widget response="-5">anastasis_gtk_c_question_dialog_btn_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_edit_policy.glade b/contrib/anastasis_gtk_edit_policy.glade
new file mode 100644
index 0000000..c2d538c
--- /dev/null
+++ b/contrib/anastasis_gtk_edit_policy.glade
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.24"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkAdjustment" id="adjustment_h">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment_v">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkDialog" id="anastasis_gtk_policy_edit_dialog">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="title" translatable="yes">Edit policy</property>
+ <property name="modal">True</property>
+ <property name="window-position">center</property>
+ <property name="type-hint">dialog</property>
+ <property name="gravity">center</property>
+ <signal name="response" handler="anastasis_gtk_policy_edit_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="cancel_button">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ok_button">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="edit_dialog_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="edit_frame_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Map challenges to providers to select them!</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">15</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="policy_scrolled_window">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hadjustment">adjustment_h</property>
+ <property name="vadjustment">adjustment_v</property>
+ <property name="shadow-type">in</property>
+ <property name="propagate-natural-width">True</property>
+ <property name="propagate-natural-height">True</property>
+ <child>
+ <object class="GtkViewport" id="grid_viewport">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hadjustment">adjustment_h</property>
+ <property name="vadjustment">adjustment_v</property>
+ <child>
+ <!-- n-columns=3 n-rows=3 -->
+ <object class="GtkGrid" id="policy_grid">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="row-spacing">10</property>
+ <property name="column-spacing">5</property>
+ <property name="row-homogeneous">True</property>
+ <child>
+ <object class="GtkLabel" id="methods_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">5</property>
+ <property name="margin-right">5</property>
+ <property name="label" translatable="yes">Authentication method</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="provider_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Anastasis provider</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">cancel_button</action-widget>
+ <action-widget response="-5">ok_button</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_edit_providers.glade b/contrib/anastasis_gtk_edit_providers.glade
new file mode 100644
index 0000000..5f520fa
--- /dev/null
+++ b/contrib/anastasis_gtk_edit_providers.glade
@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of Anastasis-gtk.
+
+Anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Anastasis-gtk 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 Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with Anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type lgplv3 -->
+ <!-- interface-name Anastasis-gtk -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkListStore" id="provider_liststore">
+ <columns>
+ <!-- column-name url -->
+ <column type="gchararray"/>
+ <!-- column-name status -->
+ <column type="gchararray"/>
+ <!-- column-name status_color -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkDialog" id="edit_provider_dialog">
+ <property name="can-focus">False</property>
+ <property name="modal">True</property>
+ <property name="window-position">center</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="edit_provider_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="cancel_button">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="close_button">
+ <property name="label">gtk-apply</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="receives-default">False</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">10</property>
+ <property name="label" translatable="yes">Provider URL:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="url_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="has-focus">True</property>
+ <property name="is-focus">True</property>
+ <property name="activates-default">True</property>
+ <property name="width-chars">54</property>
+ <property name="primary-icon-stock">gtk-edit</property>
+ <property name="secondary-icon-activatable">False</property>
+ <property name="secondary-icon-sensitive">False</property>
+ <property name="placeholder-text" translatable="yes">https://</property>
+ <signal name="changed" handler="url_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="add_button">
+ <property name="label">gtk-add</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <signal name="clicked" handler="url_add_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">10</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkTreeView" id="provider_tree_view">
+ <property name="height-request">300</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="model">provider_liststore</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection">
+ <property name="mode">browse</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">URL</property>
+ <child>
+ <object class="GtkCellRendererText" id="url_renderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title" translatable="yes">Status</property>
+ <child>
+ <object class="GtkCellRendererText" id="status"/>
+ <attributes>
+ <attribute name="foreground">2</attribute>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Known providers</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">cancel_button</action-widget>
+ <action-widget response="-10">close_button</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Add Anastasis provider</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">cancel_button</action-widget>
+ <action-widget response="-10">close_button</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_main_window.glade b/contrib/anastasis_gtk_main_window.glade
new file mode 100644
index 0000000..a0ec921
--- /dev/null
+++ b/contrib/anastasis_gtk_main_window.glade
@@ -0,0 +1,4037 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff, Dennis Neufeld
+
+-->
+<interface domain="">
+ <requires lib="gtk+" version="3.22"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description Key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff, Dennis Neufeld -->
+ <object class="GtkImage" id="add_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-add</property>
+ </object>
+ <object class="GtkListStore" id="anastasis_gtk_backup_progress_liststore">
+ <columns>
+ <!-- column-name description -->
+ <column type="gchararray"/>
+ <!-- column-name state_name -->
+ <column type="gchararray"/>
+ <!-- column-name tooltip -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">1. Location &amp; currency</col>
+ <col id="1">^(CONTINENT|COUNTRY)_SELECTING$</col>
+ <col id="2" translatable="yes">Where you live will determine which personal information can be used to identify your backup.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2. Personal information</col>
+ <col id="1">^USER_ATTRIBUTES_COLLECTING$</col>
+ <col id="2" translatable="yes">Your personal information will not be shared with anyone. But you must provide the same information during recovery.\</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">3. Authorization methods</col>
+ <col id="1">^AUTHENTICATIONS_EDITING$</col>
+ <col id="2" translatable="yes">Specify which methods could be used to authenticate you during recovery.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">4. Recovery policies</col>
+ <col id="1">^POLICIES_REVIEWING$</col>
+ <col id="2" translatable="yes">These are possible ways how the secret could be recovered. Please review and possibly edit the policies.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">5. Enter secret</col>
+ <col id="1">^SECRET_EDITING$</col>
+ <col id="2" translatable="yes">Please specify the secret to be backed up.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">6. Payment (optional)</col>
+ <col id="1">^.*_PAYING$</col>
+ <col id="2" translatable="yes">Some Anastasis providers require payment for their service. Please pay.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">7. Backup completed</col>
+ <col id="1">BACKUP_FINISHED</col>
+ <col id="2" translatable="yes">Your backup is complete. Please do test the recovery on occasion.</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="anastasis_gtk_recovery_progress_liststore">
+ <columns>
+ <!-- column-name description -->
+ <column type="gchararray"/>
+ <!-- column-name state_name -->
+ <column type="gchararray"/>
+ <!-- column-name tooltip -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">1. Location &amp; currency</col>
+ <col id="1">^(CONTINENT|COUNTRY)_SELECTING$</col>
+ <col id="2" translatable="yes">Where you live will determine which personal information can be used to identify your backup.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">2. Personal information</col>
+ <col id="1">^USER_ATTRIBUTES_COLLECTING$</col>
+ <col id="2" translatable="yes">Your personal information will not be shared with anyone. But you must provide the same information during recovery.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">3. Select secret</col>
+ <col id="1">^SECRET_SELECTING$</col>
+ <col id="2" translatable="yes">Please select which secret to recover. You may switch to a different version or provider.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">4. Solve challenges</col>
+ <col id="1">^CHALLENGE_SELECTING$</col>
+ <col id="2" translatable="yes">Please select an authentication challenge to pass to recover the secret.</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">5. Secret recovered</col>
+ <col id="1">^RECOVERY_FINISHED$</col>
+ <col id="2" translatable="yes">Your secret was successfully recovered.</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="authentication_methods_liststore">
+ <columns>
+ <!-- column-name type -->
+ <column type="gchararray"/>
+ <!-- column-name visualization -->
+ <column type="gchararray"/>
+ <!-- column-name index -->
+ <column type="guint"/>
+ </columns>
+ </object>
+ <object class="GtkAdjustment" id="backup_adjustmenth">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="backup_adjustmentv">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkImage" id="backup_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">5</property>
+ <property name="margin-right">5</property>
+ <property name="stock">gtk-go-up</property>
+ </object>
+ <object class="GtkListStore" id="backup_provider_liststore">
+ <columns>
+ <!-- column-name provider_url -->
+ <column type="gchararray"/>
+ <!-- column-name policy_version -->
+ <column type="guint64"/>
+ <!-- column-name expiration_time_str -->
+ <column type="gchararray"/>
+ <!-- column-name success_flag -->
+ <column type="gboolean"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="challenge_status_liststore">
+ <columns>
+ <!-- column-name challenge_offset -->
+ <column type="guint"/>
+ <!-- column-name challenge_uuid -->
+ <column type="gchararray"/>
+ <!-- column-name solved -->
+ <column type="gboolean"/>
+ <!-- column-name challenge_status -->
+ <column type="gchararray"/>
+ <!-- column-name payment_qr_code -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name error_message -->
+ <column type="gchararray"/>
+ <!-- column-name payto_uri -->
+ <column type="gchararray"/>
+ <!-- column-name paying -->
+ <column type="gboolean"/>
+ <!-- column-name has_error -->
+ <column type="gboolean"/>
+ <!-- column-name cost -->
+ <column type="gchararray"/>
+ <!-- column-name redirect_url -->
+ <column type="gchararray"/>
+ <!-- column-name have_redirect -->
+ <column type="gboolean"/>
+ <!-- column-name not_solved -->
+ <column type="gboolean"/>
+ <!-- column-name type -->
+ <column type="gchararray"/>
+ <!-- column-name instructions -->
+ <column type="gchararray"/>
+ <!-- column-name provider_url -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="continent_liststore">
+ <columns>
+ <!-- column-name continent_name -->
+ <column type="gchararray"/>
+ <!-- column-name continent_i18n_name -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="country_liststore">
+ <columns>
+ <!-- column-name country_name -->
+ <column type="gchararray"/>
+ <!-- column-name country_code -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkListStore" id="currency_liststore">
+ <columns>
+ <!-- column-name currency_name -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">CHF</col>
+ </row>
+ <row>
+ <col id="0">EUR</col>
+ </row>
+ <row>
+ <col id="0">USD</col>
+ </row>
+ <row>
+ <col id="0">KUDOS</col>
+ </row>
+ <row>
+ <col id="0">TESTKUDOS</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkImage" id="email_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <object class="GtkAdjustment" id="expiration_year_adjustment">
+ <property name="upper">9999</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-yes</property>
+ </object>
+ <object class="GtkImage" id="image_question">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-dialog-question</property>
+ </object>
+ <object class="GtkImage" id="open_file_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-open</property>
+ </object>
+ <object class="GtkImage" id="open_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">5</property>
+ <property name="margin-right">5</property>
+ <property name="stock">gtk-open</property>
+ </object>
+ <object class="GtkTreeStore" id="policy_review_treestore">
+ <columns>
+ <!-- column-name policy_name -->
+ <column type="gchararray"/>
+ <!-- column-name method_type -->
+ <column type="gchararray"/>
+ <!-- column-name cost -->
+ <column type="gchararray"/>
+ <!-- column-name provider_url -->
+ <column type="gchararray"/>
+ <!-- column-name expiration_time_str -->
+ <column type="gchararray"/>
+ <!-- column-name policy_index -->
+ <column type="guint"/>
+ <!-- column-name is_challenge -->
+ <column type="gboolean"/>
+ <!-- column-name method_index -->
+ <column type="guint"/>
+ <!-- column-name was_solved -->
+ <column type="gboolean"/>
+ </columns>
+ </object>
+ <object class="GtkAdjustment" id="policy_version_adjustment">
+ <property name="upper">4294967295</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkEntryBuffer" id="provider_url_entrybuffer">
+ <property name="text" translatable="yes">https://</property>
+ </object>
+ <object class="GtkAdjustment" id="recovery_adjustmenth">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="recovery_adjustmentv">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkImage" id="restart_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-goto-first</property>
+ </object>
+ <object class="GtkImage" id="restore_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">5</property>
+ <property name="margin-right">4</property>
+ <property name="stock">gtk-go-down</property>
+ </object>
+ <object class="GtkAdjustment" id="secret_box_adjustmenth">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="secret_box_adjustmentv">
+ <property name="upper">100</property>
+ <property name="step-increment">1</property>
+ <property name="page-increment">10</property>
+ </object>
+ <object class="GtkListStore" id="unpaid_qrcodes_liststore">
+ <columns>
+ <!-- column-name qr -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name url -->
+ <column type="gchararray"/>
+ <!-- column-name provider -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkImage" id="video_image">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stock">gtk-orientation-portrait</property>
+ </object>
+ <object class="GtkWindow" id="anastasis_gtk_main_window">
+ <property name="can-focus">False</property>
+ <property name="events">GDK_BUTTON_PRESS_MASK | GDK_STRUCTURE_MASK</property>
+ <property name="window-position">center</property>
+ <property name="default-width">700</property>
+ <property name="default-height">500</property>
+ <signal name="delete-event" handler="anastasis_gtk_quit_cb" swapped="no"/>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_main_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkMenuBar" id="anastasis_gtk_menubar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkMenuItem" id="anastasis_gtk_file_menuitem">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_File</property>
+ <property name="use-underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="anastasis_gtk_file_menu">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkImageMenuItem" id="anastasis_quit_imagemenuitem">
+ <property name="label">gtk-quit</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="use-underline">True</property>
+ <property name="use-stock">True</property>
+ <signal name="activate" handler="anastasis_gtk_quit_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="anastasis_gtk_help_menuitem">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Help</property>
+ <property name="use-underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="anastasis_gtk_help_menu">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkImageMenuItem" id="anastasis_gtk_about_imagemenuitem">
+ <property name="label">gtk-about</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="use-underline">True</property>
+ <property name="use-stock">True</property>
+ <signal name="activate" handler="anastasis_gtk_about_imagemenuitem_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImageMenuItem" id="anastasis_gtk_animation">
+ <property name="label">Show animation</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="image">image1</property>
+ <property name="use-stock">False</property>
+ <signal name="activate" handler="anastasis_gtk_animation_activate_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_progress_vbox">
+ <property name="can-focus">False</property>
+ <property name="margin-right">5</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkScrolledWindow" id="anastasis_gtk_backup_progress_scrolled_window">
+ <property name="can-focus">False</property>
+ <property name="hadjustment">backup_adjustmenth</property>
+ <property name="vadjustment">backup_adjustmentv</property>
+ <property name="window-placement-set">False</property>
+ <property name="shadow-type">in</property>
+ <property name="propagate-natural-width">True</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_backup_progress_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hadjustment">backup_adjustmenth</property>
+ <property name="vadjustment">backup_adjustmentv</property>
+ <property name="model">anastasis_gtk_backup_progress_liststore</property>
+ <property name="headers-clickable">False</property>
+ <property name="enable-search">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
+ <property name="tooltip-column">2</property>
+ <signal name="button-press-event" handler="anastasis_gtk_backup_progress_treeview_button_press_event_cb" swapped="no"/>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="anastasis_gtk_backup_progress_tree_selection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="anastasis_gtk_backup_progress_description_column">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Back up a secret</property>
+ <child>
+ <object class="GtkCellRendererText" id="anastasis_gtk_backup_progress_description">
+ <property name="ypad">15</property>
+ </object>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="anastasis_gtk_recovery_progress_scrolled_window">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hadjustment">recovery_adjustmenth</property>
+ <property name="vadjustment">recovery_adjustmentv</property>
+ <property name="window-placement-set">False</property>
+ <property name="shadow-type">in</property>
+ <property name="propagate-natural-width">True</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_recovery_progress_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hadjustment">recovery_adjustmenth</property>
+ <property name="vadjustment">recovery_adjustmentv</property>
+ <property name="model">anastasis_gtk_recovery_progress_liststore</property>
+ <property name="headers-clickable">False</property>
+ <property name="enable-search">False</property>
+ <property name="search-column">0</property>
+ <property name="show-expanders">False</property>
+ <property name="tooltip-column">2</property>
+ <signal name="button-press-event" handler="anastasis_gtk_recovery_progress_treeview_button_press_event_cb" swapped="no"/>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="anastasis_gtk_recovery_progress_tree_selection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="anastasis_gtk_recovery_progress_description_colum">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Recover a secret</property>
+ <child>
+ <object class="GtkCellRendererText" id="anastasis_gtk_recovery_progress_description">
+ <property name="ypad">15</property>
+ </object>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="anastasis_gtk_scrolledwindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hadjustment">recovery_adjustmentv</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkViewport" id="anastasis_gtk_viewport">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_super_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_error_label">
+ <property name="can-focus">False</property>
+ <property name="label">DYNAMIC ERROR MESSAGE</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="foreground" value="#a5a51d1d2d2d"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="anastasis_gtk_start_frame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">10</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_primary_action_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="margin-left">10</property>
+ <property name="margin-right">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">20</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="label" translatable="yes">What do you want to do?</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="1.5"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">15</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_backup_button">
+ <property name="label" translatable="yes">_Back up a secret</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Begin fresh backup process</property>
+ <property name="image">backup_image</property>
+ <property name="use-underline">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_backup_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_recovery_button">
+ <property name="label" translatable="yes">_Restore a secret</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Begin secret recovery process</property>
+ <property name="image">restore_image</property>
+ <property name="use-underline">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_recovery_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_open_state">
+ <property name="label">_Open a saved action</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Continue from file with saved Anastasis state</property>
+ <property name="image">open_image</property>
+ <property name="use-underline">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_open_state_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_continent_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_continent_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_continent_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">continent_liststore</property>
+ <property name="enable-search">False</property>
+ <property name="search-column">0</property>
+ <property name="activate-on-single-click">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="anastasis_gtk_continent_selection">
+ <signal name="changed" handler="anastasis_gtk_continent_selection_changed_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="continent_column">
+ <property name="title" translatable="yes">Continent</property>
+ <child>
+ <object class="GtkCellRendererText" id="continent_name_cell_renderer"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_country_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">country_liststore</property>
+ <property name="enable-search">False</property>
+ <property name="search-column">0</property>
+ <property name="activate-on-single-click">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="anastasis_gtk_country_selection">
+ <signal name="changed" handler="anastasis_gtk_country_selection_changed_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="country_column">
+ <property name="title" translatable="yes">Country</property>
+ <child>
+ <object class="GtkCellRendererText" id="country_name_cell_renderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_currency_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">currency_liststore</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="anastasis_gtk_currency_selection">
+ <property name="mode">multiple</property>
+ <signal name="changed" handler="anastasis_gtk_currency_selection_changed_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title" translatable="yes">Currencies</property>
+ <property name="sort-column-id">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="currency"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">These questions determine which personal attributes we can ask you for, and which backup providers could be used.</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Where do you live? In which currencies do you want to pay?</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_identity_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkBox" id="who_are_you_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">10</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_identity_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">15</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_full_name_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_full_name_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_ia_full_name_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin-left">20</property>
+ <property name="margin-start">20</property>
+ <property name="label" translatable="yes">Full name:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_ia_full_name_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="placeholder-text" translatable="yes">Max Mustermann</property>
+ <signal name="changed" handler="AG_identity_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image1">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_birthdate_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_birthdate_hbox">
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_ia_birthdate_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-left">20</property>
+ <property name="margin-start">20</property>
+ <property name="label" translatable="yes">Birthdate:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCalendar" id="anastasis_gtk_ia_birthdate_cal">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="year">1980</property>
+ <property name="month">8</property>
+ <property name="day">22</property>
+ <property name="show-week-numbers">True</property>
+ <signal name="day-selected" handler="AG_identity_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox2">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label2">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image2">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_birthplace_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_birthplace_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_ia_birthplace_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin-left">20</property>
+ <property name="margin-start">20</property>
+ <property name="label" translatable="yes">Birthplace:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_ia_birthplace_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="placeholder-text" translatable="yes">Earth</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image3">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_ahv_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_ahv_hbox">
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_ia_ahv_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin-left">20</property>
+ <property name="margin-start">20</property>
+ <property name="label" translatable="yes">AHV number:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_ia_ahv_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="max-length">16</property>
+ <property name="width-chars">17</property>
+ <property name="max-width-chars">16</property>
+ <property name="caps-lock-warning">False</property>
+ <property name="placeholder-text" translatable="yes">756.1222.3425.89</property>
+ <property name="input-purpose">number</property>
+ <signal name="changed" handler="AG_identity_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox4">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label4">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image4">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_tin_de_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_tin_de_hbox">
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_ia_tin_de_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin-left">20</property>
+ <property name="margin-start">20</property>
+ <property name="label" translatable="yes">Steuerliche Identifikationsnummer:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_ia_tin_de_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="max-length">11</property>
+ <property name="width-chars">12</property>
+ <property name="max-width-chars">11</property>
+ <property name="placeholder-text" translatable="yes">12345678912</property>
+ <property name="input-purpose">number</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox5">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label5">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image5">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_ssn_de_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_ssn_de_hbox">
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_ia_ssn_de_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">Falls vorhanden sollte diese Nummer auf jeden Fall angegeben werden. Nur Beamte, Selbstständige und andere Personen die keine Rentenversicherungsnummer haben sollten dieses Feld leer lassen.</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin-left">20</property>
+ <property name="margin-start">20</property>
+ <property name="label" translatable="yes">Sozialversicherungsnummer (optional):</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_ia_ssn_de_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="max-length">12</property>
+ <property name="width-chars">13</property>
+ <property name="max-width-chars">12</property>
+ <property name="placeholder-text" translatable="yes">14230460S534</property>
+ <property name="input-purpose">alpha</property>
+ <signal name="changed" handler="AG_identity_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox6">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label6">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image6">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_ssn_us_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_ia_ssn_us_hbox">
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_ia_ssn_us_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin-left">20</property>
+ <property name="margin-start">20</property>
+ <property name="label" translatable="yes">Social security number:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_ia_ssn_us_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="max-length">11</property>
+ <property name="width-chars">12</property>
+ <property name="max-width-chars">11</property>
+ <property name="placeholder-text" translatable="yes">000-00-0000</property>
+ <signal name="changed" handler="AG_identity_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="private_hbox7">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label7">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">40</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image7">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_private_explainer_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">20</property>
+ <property name="baseline-position">top</property>
+ <child>
+ <object class="GtkBox" id="private_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">This stays private</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="1.5"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="explainer_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">15</property>
+ <property name="label" translatable="yes">The information you have entered here:
+• Will be hashed, and therefore unreadable
+• The non-hashed version is not shared</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="encrypt_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">&lt;a href="https://taler.net/papers/thesis-anastasis-2020.pdf"&gt;How Anastasis encrypts your data&lt;/a&gt;</property>
+ <property name="use-markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="free_software_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Anastasis is &lt;a href="https://www.gnu.org/philosophy/free-sw.html"&gt;Free Software&lt;/a&gt;</property>
+ <property name="use-markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="funding_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">10</property>
+ <property name="label" translatable="yes">Anastasis is developed by &lt;a href="https://anastasis.lu/en/about.html#team"&gt;privacy advocates&lt;/a&gt;
+with &lt;a href="https://www.ngi.eu/ngi-projects/ledger/"&gt;funding&lt;/a&gt; from the European Commission.</property>
+ <property name="use-markup">True</property>
+ <property name="justify">center</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="ec_image">
+ <property name="width-request">128</property>
+ <property name="height-request">128</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">center</property>
+ <property name="margin-left">10</property>
+ <property name="margin-right">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="pixbuf">bandiera_stelle.png</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Who are you?</property>
+ <attributes>
+ <attribute name="style" value="normal"/>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_b_authentication_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-right">50</property>
+ <property name="margin-end">50</property>
+ <property name="hexpand">True</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_add_auth_button_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">4</property>
+ <property name="spacing">8</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_sms">
+ <property name="label" translatable="yes">SMS</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="has-focus">True</property>
+ <property name="receives-default">True</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_sms_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_email">
+ <property name="label" translatable="yes">Email</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="image">email_image</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_email_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_question">
+ <property name="label" translatable="yes">Question</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="image">image_question</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_question_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_post">
+ <property name="label" translatable="yes">Post</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_post_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_btn_add_auth_video">
+ <property name="label" translatable="yes">_Video</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="image">video_image</property>
+ <property name="use-underline">True</property>
+ <signal name="clicked" handler="anastasis_gtk_btn_add_auth_video_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Which authorization method should be added?</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">30</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_b_authentication_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_authentication_methods_list">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">authentication_methods_liststore</property>
+ <property name="enable-search">False</property>
+ <property name="search-column">0</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="anastasis_gtk_authentication_methods_selection">
+ <signal name="changed" handler="auth_method_selection_changed_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="auth_method_type">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Type</property>
+ <property name="clickable">True</property>
+ <property name="reorderable">True</property>
+ <property name="sort-indicator">True</property>
+ <property name="sort-column-id">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="type"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="auth_method_visual">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Details</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="visualization"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="anastasis_gtk_authorization_methods_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Authorization methods configured so far:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_authorization_meta_button_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_edit_provider_list">
+ <property name="label" translatable="yes">_Add provider</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="image">add_image</property>
+ <property name="use-underline">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_edit_provider_list_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_authentication_method_delete_button">
+ <property name="label">gtk-delete</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_authentication_method_delete_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Configure authorization methods!</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_b_policy_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="top-padding">10</property>
+ <property name="bottom-padding">10</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_review_policy_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">policy_review_treestore</property>
+ <signal name="button-press-event" handler="anastasis_gtk_review_policy_treeview_button_press_event_cb" swapped="no"/>
+ <signal name="key-press-event" handler="anastasis_gtk_review_policy_treeview_key_press_event_cb" swapped="no"/>
+ <signal name="row-activated" handler="anastasis_gtk_review_policy_treeview_row_activated_cb" swapped="no"/>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="policy_name_column0">
+ <property name="resizable">True</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Policy</property>
+ <child>
+ <object class="GtkCellRendererText" id="policy_name_column"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="challenge_type_column">
+ <property name="resizable">True</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Type</property>
+ <child>
+ <object class="GtkCellRendererText" id="challenge_type_column1"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="cost_column">
+ <property name="resizable">True</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Cost</property>
+ <child>
+ <object class="GtkCellRendererText" id="cost_text_column"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="provider_column">
+ <property name="resizable">True</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Provider</property>
+ <child>
+ <object class="GtkCellRendererText" id="provider_url_column"/>
+ <attributes>
+ <attribute name="text">3</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="expiration_column">
+ <property name="visible">False</property>
+ <property name="resizable">True</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Expiration</property>
+ <child>
+ <object class="GtkCellRendererText" id="expiration_time_str"/>
+ <attributes>
+ <attribute name="text">4</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Review recovery policies</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_challenge_frame">
+ <property name="name">anastasis_gtk_challenge_frame</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_challenge_status_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="tooltip-text" translatable="yes">Here you can see your progress in satisfying authorization challenges and can select the next challenge to solve.</property>
+ <property name="model">challenge_status_liststore</property>
+ <signal name="row-activated" handler="anastasis_gtk_challenge_status_treeview_row_activated_cb" swapped="no"/>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="anastasis_gtk_challenge_status_treeselection">
+ <signal name="changed" handler="anastasis_gtk_challenge_status_treeselection_changed_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title" translatable="yes">#</property>
+ <property name="sort-column-id">0</property>
+ <child>
+ <object class="GtkCellRendererToggle" id="solved">
+ <signal name="toggled" handler="anastasis_gtk_challenge_status_solved_toggled_cb" swapped="no"/>
+ </object>
+ <attributes>
+ <attribute name="sensitive">12</attribute>
+ <attribute name="activatable">12</attribute>
+ <attribute name="active">2</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererText" id="challenge_number"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title" translatable="yes">Status</property>
+ <child>
+ <object class="GtkCellRendererText" id="status_text"/>
+ <attributes>
+ <attribute name="text">3</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="type1">
+ <property name="title" translatable="yes">Type</property>
+ <child>
+ <object class="GtkCellRendererText" id="type_column"/>
+ <attributes>
+ <attribute name="text">13</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title" translatable="yes">Cost</property>
+ <child>
+ <object class="GtkCellRendererText" id="cost"/>
+ <attributes>
+ <attribute name="text">9</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="hint">
+ <property name="title" translatable="yes">Instructions</property>
+ <child>
+ <object class="GtkCellRendererText" id="instructions_text">
+ <property name="ellipsize">end</property>
+ <property name="max-width-chars">20</property>
+ </object>
+ <attributes>
+ <attribute name="text">14</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Provider</property>
+ <child>
+ <object class="GtkCellRendererText" id="provider_url_text_column"/>
+ <attributes>
+ <attribute name="text">15</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title" translatable="yes">Details</property>
+ <child>
+ <object class="GtkCellRendererText" id="emsg">
+ <property name="foreground">red</property>
+ </object>
+ <attributes>
+ <attribute name="visible">8</attribute>
+ <attribute name="text">5</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererPixbuf" id="qrcode"/>
+ <attributes>
+ <attribute name="visible">7</attribute>
+ <attribute name="pixbuf">4</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererText" id="redirect_url"/>
+ <attributes>
+ <attribute name="visible">11</attribute>
+ <attribute name="text">10</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">Here you can see your progress in satisfying authorization challenges and possible next steps.</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Select open challenge to solve:</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_choose_policy_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="tooltip-text" translatable="yes">This table shows possible ways to recover the secret. For each policy, the challenges that must still be satisfied are listed.</property>
+ <property name="model">policy_review_treestore</property>
+ <property name="enable-search">False</property>
+ <property name="search-column">0</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="solved_column">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Solved</property>
+ <child>
+ <object class="GtkCellRendererToggle" id="solved_column2">
+ <property name="activatable">False</property>
+ </object>
+ <attributes>
+ <attribute name="active">8</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="policy_name_column1">
+ <property name="resizable">True</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Policy</property>
+ <child>
+ <object class="GtkCellRendererText" id="policy_name_column2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="challenge_type_column2">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Type</property>
+ <child>
+ <object class="GtkCellRendererText" id="challenge_type_column3"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="policy_cost1">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Cost</property>
+ <child>
+ <object class="GtkCellRendererText" id="cost_column1"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="provider_column1">
+ <property name="resizable">True</property>
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Provider</property>
+ <child>
+ <object class="GtkCellRendererText" id="provider_url_column1"/>
+ <attributes>
+ <attribute name="text">3</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">This table shows possible ways to recover the secret. For each policy, the challenges that must still be satisfied are listed.</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Recovery policies:</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Select challenge to recover secret:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_enter_secret_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkScrolledWindow" id="secret_frame_scrolled_window">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="vexpand">True</property>
+ <property name="hadjustment">secret_box_adjustmenth</property>
+ <property name="vadjustment">secret_box_adjustmentv</property>
+ <property name="shadow-type">in</property>
+ <property name="propagate-natural-width">True</property>
+ <property name="propagate-natural-height">True</property>
+ <child>
+ <object class="GtkViewport" id="secret_frame_viewport">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="hadjustment">secret_box_adjustmenth</property>
+ <property name="vadjustment">secret_box_adjustmentv</property>
+ <child>
+ <object class="GtkBox" id="secret_frame_main_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <property name="baseline-position">top</property>
+ <child>
+ <object class="GtkBox" id="secret_name_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes">Secret's name</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_secret_name_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="has-focus">True</property>
+ <signal name="changed" handler="anastasis_gtk_enter_secret_name_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="secret_name_explanation_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Names should be unique, so that you can easily
+identify your secret later.</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">20</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="secret_entry_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="secret_text_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Provide secret as text</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkEntry" id="anastasis_gtk_enter_secret_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="valign">start</property>
+ <property name="margin-left">5</property>
+ <property name="margin-right">5</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="hexpand">True</property>
+ <property name="primary-icon-stock">gtk-dialog-authentication</property>
+ <property name="placeholder-text" translatable="yes">Type or paste your secret here</property>
+ <property name="input-purpose">password</property>
+ <signal name="changed" handler="anastasis_gtk_enter_secret_entry_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_secret_clear_text_button">
+ <property name="label">gtk-clear</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_secret_clear_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="name">anastasis_gtk_enter_secret_file_box</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_secret_file_chooser_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="secret_by_file_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Or provide secret as a file:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_enter_secret_open_button">
+ <property name="label">Choose file</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="image">open_file_image</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_enter_secret_open_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_secret_file_name_hbox">
+ <property name="can-focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="secret_file_name_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Your secret file:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_secret_file_name_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">DYNAMICALLY GENERATED</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_secret_clear_file_button">
+ <property name="label">gtk-clear</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_secret_clear_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="pack-type">end</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">20</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="expiration_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <property name="baseline-position">top</property>
+ <child>
+ <object class="GtkLabel" id="recovery_expiration_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Your secret's recovery data expires on:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="expiration_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="expiration_date_without_year_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">DYNAMICALLY SET</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="expiration_year_spin_button">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="max-length">4</property>
+ <property name="width-chars">4</property>
+ <property name="max-width-chars">4</property>
+ <property name="input-purpose">digits</property>
+ <property name="adjustment">expiration_year_adjustment</property>
+ <property name="numeric">True</property>
+ <property name="value">9999</property>
+ <signal name="value-changed" handler="expiration_year_spin_button_value_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">20</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="payment_info_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkBox" id="backup_free_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel" id="backup_fee_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Backup fee:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="backup_fee_value_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">DYNAMICALLY SET</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="backup_fee_explainer_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">You pay this fee to back up your secret.
+The fee may increase with the expiry
+date of your secret's recovery data.</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">20</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="label" translatable="yes">Provide secret to backup:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_pay_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-top">5</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Please pay with GNU Taler:</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_main_window_unpaid_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">5</property>
+ <property name="margin-right">5</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkTreeView" id="unpaid_qr_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">unpaid_qrcodes_liststore</property>
+ <property name="enable-search">False</property>
+ <property name="search-column">1</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="unpaid_qr_tree_selection">
+ <signal name="changed" handler="unpaid_qr_tree_selection_changed_cb" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="spacing">10</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Payment QR Code</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GtkCellRendererPixbuf" id="unpaid_pixbuf"/>
+ <attributes>
+ <attribute name="pixbuf">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="Pay URI">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Taler Pay URI</property>
+ <child>
+ <object class="GtkCellRendererText" id="pay_uri"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">5</property>
+ <property name="label" translatable="yes">Payment required:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_completed_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_success_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_backup_complete_box">
+ <property name="name">anastasis_gtk_backup_complete_box</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_success_backup_label">
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Your backup is complete.</property>
+ <property name="justify">center</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="recovery_expiration_box">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="backup_expiration_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Your backup is valid until:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="backup_expiration_date_label">
+ <property name="can-focus">False</property>
+ <property name="label">DYNAMICALLY GENERATED</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">20</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_success_backup_version_label">
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Backups were made at the following providers:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkTreeView" id="anastasis_gtk_backup_complete_treeview">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="model">backup_provider_liststore</property>
+ <property name="search-column">0</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Provider</property>
+ <child>
+ <object class="GtkCellRendererText" id="provider_url"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="spacing">5</property>
+ <property name="sizing">autosize</property>
+ <property name="title" translatable="yes">Version</property>
+ <child>
+ <object class="GtkCellRendererText" id="policy_version"/>
+ <attributes>
+ <attribute name="visible">3</attribute>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="visible">False</property>
+ <property name="title" translatable="yes">Expiration time</property>
+ <child>
+ <object class="GtkCellRendererText" id="expiration"/>
+ <attributes>
+ <attribute name="visible">3</attribute>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_success_recovery_box">
+ <property name="name">anastasis_gtk_success_recovery_box</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_success_recovery_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Your secret was recovered.</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">15</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="recovery_secret_name_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Secret name:</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="recovery_secret_name_value_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">DYNAMICALLY GENERATED</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_secret_value_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">The secret is shown here. You can also copy it to the clipboard or save it to a file.</property>
+ <property name="label">THE SECRET TEXT</property>
+ <property name="wrap">True</property>
+ <property name="wrap-mode">word-char</property>
+ <property name="ellipsize">end</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_secret_copy_button">
+ <property name="label">gtk-copy</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Copy secret to clipboard</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_secret_copy_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_secret_save_as_button">
+ <property name="label">gtk-save-as</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Save secret to file</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_secret_save_as_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_secret_qr_image">
+ <property name="width-request">400</property>
+ <property name="height-request">400</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">10</property>
+ <property name="margin-right">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="anastasis_gtk_backup_success_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="label" translatable="yes">Success!</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFrame" id="anastasis_gtk_select_secret_frame">
+ <property name="can-focus">False</property>
+ <property name="label-xalign">0</property>
+ <property name="shadow-type">none</property>
+ <child>
+ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="left-padding">12</property>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_secret_select_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkBox" id="provider_selection_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_provider_url_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">This is the URL of the provider from which we downloaded the recovery document.</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Select a provider</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="anastasis_gtk_provider_url_combo_box_text">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">5</property>
+ <property name="margin-right">5</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="has-entry">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="anastasis_gtk_provider_url_entry">
+ <property name="can-focus">True</property>
+ <property name="max-length">1024</property>
+ <property name="width-chars">32</property>
+ <property name="placeholder-text" translatable="yes">https://</property>
+ <property name="input-purpose">url</property>
+ <signal name="changed" handler="anastasis_gtk_provider_url_entry_changed_cb" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">20</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="backup_version_selection_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_backup_version_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">This is the version of the backup at the provider. By default, the latest available backup version is obtained.</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Select a backup version</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="anastasis_gtk_policy_version_spin_button">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="margin-right">5</property>
+ <property name="margin-end">5</property>
+ <property name="text" translatable="yes">0</property>
+ <property name="input-purpose">number</property>
+ <property name="adjustment">policy_version_adjustment</property>
+ <property name="climb-rate">1</property>
+ <property name="numeric">True</property>
+ <signal name="changed" handler="anastasis_gtk_policy_version_spin_button_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="backup_version_explainer_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">To see other backup versions,
+choose a different provider.</property>
+ <attributes>
+ <attribute name="weight" value="normal"/>
+ <attribute name="foreground" value="#777776767b7b"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_secret_identification_vbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="secret_name_explainer_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">The secret name associated with this backup version is:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="anastasis_gtk_secret_name_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label">COMPUTATIONALLY GENERATED</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="secret_recovery_change_explainer_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">If this is not the secret you want to recover,
+select a different provider or backup version.</property>
+ <attributes>
+ <attribute name="foreground" value="#777776767b7b"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">20</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Select secret to recover</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">10</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_illustration_vbox">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_continent_selection_image">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_country_selection_image">
+ <property name="width-request">100</property>
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_user_attributes_image">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_b_authentication_methods_image">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_b_policies_image">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_enter_secret_image">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_pay_image">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="anastasis_gtk_completed_image">
+ <property name="can-focus">False</property>
+ <property name="vexpand">True</property>
+ <property name="stock">gtk-missing-image</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="anastasis_gtk_main_control_vbox">
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_main_window_prev_button">
+ <property name="label">gtk-go-back</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_main_window_back_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_restart_button">
+ <property name="label" translatable="yes">_Restart</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="tooltip-text" translatable="yes">Go back to the beginning.</property>
+ <property name="image">restart_image</property>
+ <property name="use-underline">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_restart_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_main_window_quit_button">
+ <property name="label">gtk-quit</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_main_window_quit_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_main_window_save_as_button">
+ <property name="label">gtk-save-as</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_main_window_save_as_button_clicked_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="anastasis_gtk_main_window_forward_button">
+ <property name="label">gtk-media-next</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ <signal name="clicked" handler="anastasis_gtk_main_window_forward_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">10</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkStatusbar" id="anastasis_gtk_statusbar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">8</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_open_file_dialog.glade b/contrib/anastasis_gtk_open_file_dialog.glade
new file mode 100644
index 0000000..3dd68a7
--- /dev/null
+++ b/contrib/anastasis_gtk_open_file_dialog.glade
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkFileFilter" id="anastasis_file_filter">
+ <patterns>
+ <pattern>*.ana</pattern>
+ </patterns>
+ </object>
+ <object class="GtkFileChooserDialog" id="open_file_dialog">
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="modal">True</property>
+ <property name="window-position">center</property>
+ <property name="destroy-with-parent">True</property>
+ <property name="type-hint">dialog</property>
+ <property name="filter">anastasis_file_filter</property>
+ <signal name="response" handler="open_directory_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-open</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button2</action-widget>
+ <action-widget response="-5">button1</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_open_secret_dialog.glade b/contrib/anastasis_gtk_open_secret_dialog.glade
new file mode 100644
index 0000000..829b288
--- /dev/null
+++ b/contrib/anastasis_gtk_open_secret_dialog.glade
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description Key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkFileChooserDialog" id="open_file_dialog">
+ <property name="can-focus">False</property>
+ <property name="can-default">True</property>
+ <property name="modal">True</property>
+ <property name="window-position">center</property>
+ <property name="destroy-with-parent">True</property>
+ <property name="type-hint">dialog</property>
+ <signal name="response" handler="open_secret_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-open</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button2</action-widget>
+ <action-widget response="-5">button1</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_save_file_dialog.glade b/contrib/anastasis_gtk_save_file_dialog.glade
new file mode 100644
index 0000000..42b6385
--- /dev/null
+++ b/contrib/anastasis_gtk_save_file_dialog.glade
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkFileFilter" id="anastasis_file_filter">
+ <patterns>
+ <pattern>*.ana</pattern>
+ </patterns>
+ </object>
+ <object class="GtkFileChooserDialog" id="save_file_dialog">
+ <property name="can-focus">False</property>
+ <property name="window-position">center</property>
+ <property name="type-hint">dialog</property>
+ <property name="action">save</property>
+ <property name="filter">anastasis_file_filter</property>
+ <signal name="response" handler="save_directory_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label">gtk-save</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button1</action-widget>
+ <action-widget response="-3">button2</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/anastasis_gtk_save_secret_dialog.glade b/contrib/anastasis_gtk_save_secret_dialog.glade
new file mode 100644
index 0000000..fff6fe6
--- /dev/null
+++ b/contrib/anastasis_gtk_save_secret_dialog.glade
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2019-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Christian Grothoff
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.6"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description key backup and recovery -->
+ <!-- interface-copyright 2019-2021 Anastasis SARL -->
+ <!-- interface-authors Christian Grothoff -->
+ <object class="GtkFileFilter" id="anastasis_file_filter">
+ <patterns>
+ <pattern>*.secret</pattern>
+ </patterns>
+ </object>
+ <object class="GtkFileChooserDialog" id="save_file_dialog">
+ <property name="can-focus">False</property>
+ <property name="window-position">center</property>
+ <property name="type-hint">dialog</property>
+ <property name="action">save</property>
+ <property name="filter">anastasis_file_filter</property>
+ <signal name="response" handler="save_secret_dialog_response_cb" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label">gtk-save</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-stock">True</property>
+ <property name="always-show-image">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button1</action-widget>
+ <action-widget response="-3">button2</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/contrib/authentication_methods.png b/contrib/authentication_methods.png
new file mode 100644
index 0000000..c0906a7
--- /dev/null
+++ b/contrib/authentication_methods.png
Binary files differ
diff --git a/contrib/bandiera_stelle.png b/contrib/bandiera_stelle.png
new file mode 100644
index 0000000..dfb0583
--- /dev/null
+++ b/contrib/bandiera_stelle.png
Binary files differ
diff --git a/contrib/continent_selection.jpg b/contrib/continent_selection.jpg
new file mode 100644
index 0000000..24697e8
--- /dev/null
+++ b/contrib/continent_selection.jpg
Binary files differ
diff --git a/contrib/country_selection.jpg b/contrib/country_selection.jpg
new file mode 100644
index 0000000..ea9c05f
--- /dev/null
+++ b/contrib/country_selection.jpg
Binary files differ
diff --git a/contrib/enter_secret.jpg b/contrib/enter_secret.jpg
new file mode 100644
index 0000000..42def95
--- /dev/null
+++ b/contrib/enter_secret.jpg
Binary files differ
diff --git a/contrib/get_version.sh b/contrib/get_version.sh
new file mode 100755
index 0000000..3ca8a02
--- /dev/null
+++ b/contrib/get_version.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# This file is in the public domain.
+# Gets the version number from VCS, or from the contents of the file $1
+version=
+if test -f "$1"
+then
+ version=$(cat $1)
+fi
+if test "x$version" = "x" -a -d "./.git"
+then
+ version=$(git log -1 | grep 'commit [a-f0-9]\+' | sed -e 's/commit //')
+ if test ! "x$version" = "x"
+ then
+ version="git-$version"
+ fi
+fi
+if test "x$version" = "x"
+then
+ version="unknown"
+fi
+echo $version
diff --git a/contrib/logo.png b/contrib/logo.png
new file mode 100644
index 0000000..008546f
--- /dev/null
+++ b/contrib/logo.png
Binary files differ
diff --git a/contrib/ngi_ledger.png b/contrib/ngi_ledger.png
new file mode 100644
index 0000000..67de3a7
--- /dev/null
+++ b/contrib/ngi_ledger.png
Binary files differ
diff --git a/contrib/noun_blindfold_3574196.svg b/contrib/noun_blindfold_3574196.svg
new file mode 100644
index 0000000..e4c7d97
--- /dev/null
+++ b/contrib/noun_blindfold_3574196.svg
@@ -0,0 +1 @@
+<svg height='24px' width='24px' fill="#000000" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" version="1.1" x="0px" y="0px"><title>ic-158</title><desc>Created with Sketch.</desc><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><path d="M84.0452308,50.7606153 L20.0266763,28.6438622 C22.9345628,23.3928613 26.6504675,18.8300984 31.7277606,15.7271451 C41.4230006,9.80065135 53.3346593,8.78103952 64.4079379,12.9261538 C76.9973525,17.6379369 84.8189696,29.0526874 84.8189696,42.7154859 C84.8189696,45.6635366 84.5339595,48.3204097 84.0452308,50.7606153 L84.0452308,50.7606153 Z M86.4115001,58.3920177 C88.0765075,53.9998437 89.226342,48.9243337 89.226342,42.7154859 C89.226342,27.1654251 80.307779,14.1673351 65.9514976,8.79378467 C53.6000811,4.17121759 40.2888368,5.32416327 29.4310298,11.9614441 C16.0375145,20.1477506 11.321626,36.3409511 7.16008691,50.6292423 C6.48918688,52.9321925 5.85550466,55.1086715 5.19341937,57.2273073 C4.82515891,58.2920173 4.9887214,59.4724141 5.6331772,60.3979079 C6.29232424,61.3420292 7.37164079,61.9057569 8.52245472,61.9057569 L12.5312049,61.9057569 C16.0149879,61.9057569 18.8494182,64.7430229 18.8494182,68.2302915 L18.8494182,79.54112 C18.8494182,85.3636917 23.4693239,89.5901788 29.8355287,89.5901788 L33.6405602,89.5901788 C36.0695122,89.5901788 38.0449945,91.5686179 38.0449945,94 L42.452367,94 C42.452367,89.1352751 38.4994435,85.1783969 33.6405602,85.1783969 L29.8355287,85.1783969 C26.5613406,85.1783969 23.2567907,83.4352528 23.2567907,79.54112 L23.2567907,72.58423 C24.4595136,72.7508974 25.6308953,72.844035 26.7660386,72.844035 C32.1567448,72.844035 36.7805683,70.9616747 40.7854007,67.1626402 L37.7531285,63.9606669 C33.7042223,67.8018584 29.1744228,69.110687 23.2518936,68.1273499 C23.1950874,62.2547779 18.4106397,57.493975 12.5312049,57.493975 L9.72419828,57.493975 C10.2824655,55.6714188 12.453831,48.4635475 12.453831,48.4635475 L78.403794,64.8067487 C77.7436676,65.9508708 77.0698293,67.0734242 76.3989293,68.1881344 C72.684004,74.3538448 68.8437134,80.7293599 68.8437134,89.6627281 L68.8437134,94 L73.2510859,94 L73.2510859,89.6627281 C73.2510859,82.7744659 75.8151973,77.7881719 79.0129909,72.4038372 L88.0197014,75.9175764 L95,61.3939902 L86.4115001,58.3920177 Z" fill="#000000"></path></g></svg>
diff --git a/contrib/pay_with_taler.png b/contrib/pay_with_taler.png
new file mode 100644
index 0000000..489832f
--- /dev/null
+++ b/contrib/pay_with_taler.png
Binary files differ
diff --git a/contrib/pogen.sh b/contrib/pogen.sh
new file mode 100755
index 0000000..62e1662
--- /dev/null
+++ b/contrib/pogen.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+# This file is in the public domain.
+find src -name "*.c" | sort > po/POTFILES.in
+find contrib -name "*.glade" | sort >> po/POTFILES.in
diff --git a/contrib/policy_confirmation.png b/contrib/policy_confirmation.png
new file mode 100644
index 0000000..f2cca67
--- /dev/null
+++ b/contrib/policy_confirmation.png
Binary files differ
diff --git a/contrib/qr_dummy.png b/contrib/qr_dummy.png
new file mode 100644
index 0000000..9c0ffb3
--- /dev/null
+++ b/contrib/qr_dummy.png
Binary files differ
diff --git a/contrib/satisfy_challenge.png b/contrib/satisfy_challenge.png
new file mode 100644
index 0000000..8e5d518
--- /dev/null
+++ b/contrib/satisfy_challenge.png
Binary files differ
diff --git a/contrib/this_stays_private.glade b/contrib/this_stays_private.glade
new file mode 100644
index 0000000..650c3e4
--- /dev/null
+++ b/contrib/this_stays_private.glade
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2
+
+Copyright (C) 2020-2021 Anastasis SARL
+
+This file is part of anastasis-gtk.
+
+anastasis-gtk is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+anastasis-gtk 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 anastasis-gtk. If not, see <http://www.gnu.org/licenses/>.
+
+Author: Belen Pena
+
+-->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <!-- interface-license-type gplv3 -->
+ <!-- interface-name anastasis-gtk -->
+ <!-- interface-description Key backup and recovery -->
+ <!-- interface-copyright 2020-2021 Anastasis SARL -->
+ <!-- interface-authors Belen Pena -->
+ <object class="GtkWindow" id="private_dummy_window">
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkBox" id="private_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-left">10</property>
+ <property name="margin-right">10</property>
+ <child>
+ <object class="GtkLabel" id="privacy_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">This stays private</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">10</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="blindfold_image">
+ <property name="width-request">24</property>
+ <property name="height-request">24</property>
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="pixbuf">noun_blindfold_3574196.svg</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/contrib/user_attributes.png b/contrib/user_attributes.png
new file mode 100644
index 0000000..edf5807
--- /dev/null
+++ b/contrib/user_attributes.png
Binary files differ