summaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:39:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:39:48 +0000
commit3ade071f273aaa973e44bf95d6b1d4913a18f03b (patch)
treee2f99d267ae18427645404f215b984afbe73098d /data
parentInitial commit. (diff)
downloadnautilus-3ade071f273aaa973e44bf95d6b1d4913a18f03b.tar.xz
nautilus-3ade071f273aaa973e44bf95d6b1d4913a18f03b.zip
Adding upstream version 43.2.upstream/43.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'data')
-rw-r--r--data/dbus-interfaces.xml59
-rw-r--r--data/dbus-interfaces2.xml84
-rw-r--r--data/freedesktop-dbus-interfaces.xml43
-rw-r--r--data/icons/hicolor/scalable/apps/org.gnome.Nautilus.svg253
-rw-r--r--data/icons/hicolor/scalable/apps/org.gnome.NautilusDevel.svg1
-rw-r--r--data/icons/hicolor/symbolic/apps/org.gnome.Nautilus-symbolic.svg30
-rwxr-xr-xdata/lineup-parameters210
-rw-r--r--data/meson.build138
-rw-r--r--data/nautilus-autorun-software.desktop.in11
-rw-r--r--data/ontology/meson.build8
-rw-r--r--data/ontology/nautilus.description9
-rw-r--r--data/ontology/nautilus.ontology20
-rw-r--r--data/org.freedesktop.FileManager1.service.in3
-rw-r--r--data/org.gnome.Nautilus.Source.svg1595
-rw-r--r--data/org.gnome.Nautilus.appdata.xml.in.in62
-rw-r--r--data/org.gnome.Nautilus.desktop.in.in20
-rw-r--r--data/org.gnome.Nautilus.search-provider.ini.in5
-rw-r--r--data/org.gnome.Nautilus.service.in3
-rw-r--r--data/org.gnome.nautilus.gschema.xml258
-rw-r--r--data/shell-search-provider-dbus-interfaces.xml44
-rw-r--r--data/tracker/meson.build31
-rw-r--r--data/tracker/org.gnome.Nautilus.Tracker3.Miner.Extract.service.in7
-rw-r--r--data/tracker/org.gnome.Nautilus.Tracker3.Miner.Files.service.in7
-rw-r--r--data/tracker/org.gnome.Nautilus.domain.rule.in21
24 files changed, 2922 insertions, 0 deletions
diff --git a/data/dbus-interfaces.xml b/data/dbus-interfaces.xml
new file mode 100644
index 0000000..a388af0
--- /dev/null
+++ b/data/dbus-interfaces.xml
@@ -0,0 +1,59 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+
+<!--
+ Copyright (C) 2011 Red Hat, Inc.
+
+ This library 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 2 of the License, or (at your option) any later version.
+
+ This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+
+ Author: Alexander Larsson <alexl@redhat.com>
+-->
+
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name='org.gnome.Nautilus.FileOperations'>
+
+ <!--
+ This interface has been deprecated. Please switch to
+ org.gnome.Nautilus.FileOperations2 interace.
+ -->
+ <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
+
+ <method name='CopyURIs'>
+ <arg type='as' name='SourceFilesURIList' direction='in'/>
+ <arg type='s' name='DestinationDirectoryURI' direction='in'/>
+ </method>
+ <method name='MoveURIs'>
+ <arg type='as' name='SourceFilesURIList' direction='in'/>
+ <arg type='s' name='DestinationDirectoryURI' direction='in'/>
+ </method>
+ <method name='EmptyTrash'>
+ </method>
+ <method name='TrashFiles'>
+ <arg type='as' name='URIs' direction='in'/>
+ </method>
+ <method name='CreateFolder'>
+ <arg type='s' name='URI' direction='in'/>
+ </method>
+ <method name='RenameFile'>
+ <arg type='s' name='URI' direction='in'/>
+ <arg type='s' name='NewName' direction='in'/>
+ </method>
+ <method name='Undo'>
+ </method>
+ <method name='Redo'>
+ </method>
+ <property name="UndoStatus" type="i" access="read"/>
+ </interface>
+</node>
diff --git a/data/dbus-interfaces2.xml b/data/dbus-interfaces2.xml
new file mode 100644
index 0000000..8216be0
--- /dev/null
+++ b/data/dbus-interfaces2.xml
@@ -0,0 +1,84 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+
+<!--
+ Copyright (C) 2011 Red Hat, Inc.
+
+ This library 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 2 of the License, or (at your option) any later version.
+
+ This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+
+ Author: Alexander Larsson <alexl@redhat.com>
+-->
+
+<!--
+ org.gnome.Nautilus.FileOperations2:
+ @short_description: Nautilus File Operations D-Bus interface
+
+ This API is meant to be consumed by desktop components, and optimized
+ for their needs. This API is considered private and must not be used
+ by applications.
+
+ All methods takes platform_data argument that can be used to pass
+ extra data. Currently supported arguments are:
+ - parent-handle (s): the parent window identifier, used to set parent
+ window for dialogs; must be in x11:XID or
+ wayland:HANDLE form
+ - timestamp (u): the timestamp of the user interaction
+-->
+<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name='org.gnome.Nautilus.FileOperations2'>
+
+ <method name='CopyURIs'>
+ <arg type='as' name='sources' direction='in'/>
+ <arg type='s' name='destination' direction='in'/>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='MoveURIs'>
+ <arg type='as' name='sources' direction='in'/>
+ <arg type='s' name='destination' direction='in'/>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='EmptyTrash'>
+ <arg type="b" name="ask_confirmation" direction='in'/>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='TrashURIs'>
+ <arg type='as' name='uris' direction='in'/>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='DeleteURIs'>
+ <arg type='as' name='uris' direction='in'/>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='CreateFolder'>
+ <arg type='s' name='parent_uri' direction='in'/>
+ <arg type='s' name='new_folder_name' direction='in'/>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='RenameURI'>
+ <arg type='s' name='uri' direction='in'/>
+ <arg type='s' name='new_name' direction='in'/>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='Undo'>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+ <method name='Redo'>
+ <arg type='a{sv}' name='platform_data' direction='in'/>
+ </method>
+
+ <property name="UndoStatus" type="i" access="read"/>
+
+ </interface>
+</node>
diff --git a/data/freedesktop-dbus-interfaces.xml b/data/freedesktop-dbus-interfaces.xml
new file mode 100644
index 0000000..d648205
--- /dev/null
+++ b/data/freedesktop-dbus-interfaces.xml
@@ -0,0 +1,43 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+
+<!--
+ This library 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 2 of the License, or (at your option) any later version.
+
+ This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+-->
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name='org.freedesktop.FileManager1'>
+ <method name='ShowFolders'>
+ <arg type='as' name='URIs' direction='in'/>
+ <arg type='s' name='StartupId' direction='in'/>
+ </method>
+ <method name='ShowItems'>
+ <arg type='as' name='URIs' direction='in'/>
+ <arg type='s' name='StartupId' direction='in'/>
+ </method>
+ <method name='ShowItemProperties'>
+ <arg type='as' name='URIs' direction='in'/>
+ <arg type='s' name='StartupId' direction='in'/>
+ </method>
+ <property name="OpenLocations" type="as" access="read"/>
+ <!--
+ An extension to the official FileManager1 interface that allows Nautilus
+ to publish a mapping of windows to the locations in each window.
+ This can be used by shell extensions like dash-to-dock/ubuntu-dock to
+ associate special dock icons with windows where the icon's location is
+ open.
+ -->
+ <property name="OpenWindowsWithLocations" type="a{sas}" access="read"/>
+ </interface>
+</node>
diff --git a/data/icons/hicolor/scalable/apps/org.gnome.Nautilus.svg b/data/icons/hicolor/scalable/apps/org.gnome.Nautilus.svg
new file mode 100644
index 0000000..dea3e0f
--- /dev/null
+++ b/data/icons/hicolor/scalable/apps/org.gnome.Nautilus.svg
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1245">
+ <stop
+ id="stop1241"
+ offset="0"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ id="stop1243"
+ offset="1"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1697">
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0"
+ id="stop1685" />
+ <stop
+ id="stop1687"
+ offset="0.04545455"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.09090909"
+ id="stop1689" />
+ <stop
+ id="stop1691"
+ offset="0.90909094"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0.95454544"
+ id="stop1693" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="1"
+ id="stop1695" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="238"
+ x2="108"
+ y1="238"
+ x1="20"
+ id="linearGradient1049"
+ xlink:href="#linearGradient1697" />
+ <linearGradient
+ y2="238"
+ x2="74"
+ y1="238"
+ x1="50"
+ gradientTransform="translate(2,-22)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1185"
+ xlink:href="#linearGradient1697" />
+ <linearGradient
+ y2="200"
+ x2="65"
+ y1="204"
+ x1="65"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1348"
+ xlink:href="#linearGradient1245" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ transform="matrix(0.25,0,0,-0.25,-6,217)"
+ id="g15447-1" />
+ <g
+ id="g1207">
+ <rect
+ ry="8.017911"
+ rx="8.7725897"
+ y="234"
+ x="20"
+ height="58"
+ width="88"
+ id="rect1041"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1049);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect15435-6"
+ width="88"
+ height="108"
+ x="20"
+ y="180"
+ rx="8.7725897"
+ ry="8.017911" />
+ <rect
+ ry="4.0021734"
+ rx="4"
+ y="186"
+ x="24"
+ height="98"
+ width="80"
+ id="rect1167"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect15441-8"
+ width="80"
+ height="98"
+ x="24"
+ y="184"
+ rx="4"
+ ry="4.0021734" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect15443-6"
+ width="80"
+ height="2"
+ x="24"
+ y="216"
+ rx="0"
+ ry="0" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect15461-2"
+ width="80"
+ height="2"
+ x="24"
+ y="248"
+ rx="0"
+ ry="0" />
+ <g
+ id="g1088">
+ <path
+ id="path26035"
+ d="m 55,196 h 18 c 1.662,0 3,1 3,3 v 5 H 72.03125 L 72,200 H 56 l 0.03125,4 H 52 v -5 c 0,-1.662 1.338,-3 3,-3 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1185);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1059"
+ width="24"
+ height="4"
+ x="52"
+ y="202"
+ ry="1.5" />
+ <path
+ style="opacity:1;fill:url(#linearGradient1348);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 55,200 c -1.662,0 -3,1.338 -3,3 v 1 h 4 v -2 h 16 v 2 h 4 v -1 c 0,-1.662 -1.338,-3 -3,-3 z"
+ id="rect1061" />
+ <rect
+ y="202"
+ x="56"
+ height="2"
+ width="16"
+ id="rect1189"
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g1088"
+ id="use1090"
+ transform="translate(0,32)"
+ width="100%"
+ height="100%" />
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(0,64)"
+ id="use1092"
+ xlink:href="#g1088"
+ y="0"
+ x="0" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/data/icons/hicolor/scalable/apps/org.gnome.NautilusDevel.svg b/data/icons/hicolor/scalable/apps/org.gnome.NautilusDevel.svg
new file mode 100644
index 0000000..d64ac0f
--- /dev/null
+++ b/data/icons/hicolor/scalable/apps/org.gnome.NautilusDevel.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><defs><clipPath id="g"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="m"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="b"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="K"><path d="M0 0h128v128H0z"/></clipPath><clipPath id="l"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="c"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="k"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="j"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="d"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="i"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="e"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="h"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="f"><path d="M0 0h192v152H0z"/></clipPath><clipPath id="H"><path d="M0 0h128v128H0z"/></clipPath><clipPath id="n"><path d="M0 0h128v128H0z"/></clipPath><clipPath id="M"><path d="M0 0h128v128H0z"/></clipPath><linearGradient id="v" gradientUnits="userSpaceOnUse" x1="50" y1="238" x2="74" y2="238" gradientTransform="translate(2 -162)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="aa" gradientUnits="userSpaceOnUse" x1="65" y1="204" x2="65" y2="200" gradientTransform="translate(0 -108)"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="p" gradientUnits="userSpaceOnUse" x1="50" y1="238" x2="74" y2="238" gradientTransform="translate(2 -194)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="Q" gradientUnits="userSpaceOnUse" x1="50" y1="238" x2="74" y2="238" gradientTransform="translate(2 -194)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="Y" gradientUnits="userSpaceOnUse" x1="50" y1="238" x2="74" y2="238" gradientTransform="translate(2 -130)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="s" gradientUnits="userSpaceOnUse" x1="65" y1="204" x2="65" y2="200" gradientTransform="translate(0 -172)"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="W" gradientUnits="userSpaceOnUse" x1="65" y1="204" x2="65" y2="200" gradientTransform="translate(0 -140)"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="o" gradientUnits="userSpaceOnUse" x1="20" y1="238" x2="108" y2="238" gradientTransform="translate(0 -172)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="U" gradientUnits="userSpaceOnUse" x1="50" y1="238" x2="74" y2="238" gradientTransform="translate(2 -162)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="y" gradientUnits="userSpaceOnUse" x1="65" y1="204" x2="65" y2="200" gradientTransform="translate(0 -140)"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="L" gradientUnits="userSpaceOnUse" x1="300" y1="235" x2="428" y2="235" gradientTransform="matrix(0 .37 -.98462 0 295.385 -30.36)"><stop offset="0" stop-color="#f9f06b"/><stop offset="1" stop-color="#f5c211"/></linearGradient><linearGradient id="B" gradientUnits="userSpaceOnUse" x1="50" y1="238" x2="74" y2="238" gradientTransform="translate(2 -130)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="S" gradientUnits="userSpaceOnUse" x1="65" y1="204" x2="65" y2="200" gradientTransform="translate(0 -172)"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="E" gradientUnits="userSpaceOnUse" x1="65" y1="204" x2="65" y2="200" gradientTransform="translate(0 -108)"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><linearGradient id="P" gradientUnits="userSpaceOnUse" x1="20" y1="238" x2="108" y2="238" gradientTransform="translate(0 -172)"><stop offset="0" stop-color="#deddda"/><stop offset=".045" stop-color="#eeeeec"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#eeeeec"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient><mask id="u"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="r"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="ab"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="x"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="X"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="T"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="A"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="ad"><use xlink:href="#J"/></mask><mask id="V"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="D"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="Z"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="R"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="G"><g filter="url(#a)"><path fill-opacity=".1" d="M0 0h128v128H0z"/></g></mask><mask id="O"><g filter="url(#a)"><path fill-opacity=".8" d="M0 0h128v128H0z"/></g></mask><g id="w" clip-path="url(#d)"><path d="M61.5 78h21a1.5 1.5 0 011.5 1.5v1a1.5 1.5 0 01-1.5 1.5h-21a1.5 1.5 0 01-1.5-1.5v-1a1.5 1.5 0 011.5-1.5zm0 0"/></g><g id="F" clip-path="url(#g)"><path d="M64 110h16v2H64zm0 0"/></g><g id="C" clip-path="url(#f)"><path d="M61.5 110h21a1.5 1.5 0 011.5 1.5v1a1.5 1.5 0 01-1.5 1.5h-21a1.5 1.5 0 01-1.5-1.5v-1a1.5 1.5 0 011.5-1.5zm0 0"/></g><g id="J" clip-path="url(#H)" filter="url(#a)"><use xlink:href="#I"/></g><g id="z" clip-path="url(#e)"><path d="M64 78h16v2H64zm0 0"/></g><g id="I" clip-path="url(#n)"><path d="M28 62h72a8 8 0 018 8v42a8 8 0 01-8 8H28a8 8 0 01-8-8V70a8 8 0 018-8zm0 0" fill="url(#o)"/><path d="M28 8h72a8 8 0 018 8v92a8 8 0 01-8 8H28a8 8 0 01-8-8V16a8 8 0 018-8zm0 0" fill="#f6f5f4"/><path d="M28 14h72c2.21 0 4 1.79 4 4v90c0 2.21-1.79 4-4 4H28c-2.21 0-4-1.79-4-4V18c0-2.21 1.79-4 4-4zm0 0" fill="#1a5fb4"/><path d="M28 12h72c2.21 0 4 1.79 4 4v90c0 2.21-1.79 4-4 4H28c-2.21 0-4-1.79-4-4V16c0-2.21 1.79-4 4-4zm0 0" fill="#3584e4"/><path d="M24 44h80v2H24zm0 0M24 76h80v2H24zm0 0" fill="#1c71d8"/><path d="M55 24h18c1.66 0 3 1 3 3v5h-3.969L72 28H56l.031 4H52v-5c0-1.66 1.34-3 3-3zm0 0" fill="url(#p)"/><use xlink:href="#q" transform="translate(-8 -16)" mask="url(#r)"/><path d="M55 28c-1.66 0-3 1.34-3 3v1h4v-2h16v2h4v-1c0-1.66-1.34-3-3-3zm0 0" fill="url(#s)"/><use xlink:href="#t" transform="translate(-8 -16)" mask="url(#u)"/><path d="M55 56h18c1.66 0 3 1 3 3v5h-3.969L72 60H56l.031 4H52v-5c0-1.66 1.34-3 3-3zm0 0" fill="url(#v)"/><use xlink:href="#w" transform="translate(-8 -16)" mask="url(#x)"/><path d="M55 60c-1.66 0-3 1.34-3 3v1h4v-2h16v2h4v-1c0-1.66-1.34-3-3-3zm0 0" fill="url(#y)"/><use xlink:href="#z" transform="translate(-8 -16)" mask="url(#A)"/><path d="M55 88h18c1.66 0 3 1 3 3v5h-3.969L72 92H56l.031 4H52v-5c0-1.66 1.34-3 3-3zm0 0" fill="url(#B)"/><use xlink:href="#C" transform="translate(-8 -16)" mask="url(#D)"/><path d="M55 92c-1.66 0-3 1.34-3 3v1h4v-2h16v2h4v-1c0-1.66-1.34-3-3-3zm0 0" fill="url(#E)"/><use xlink:href="#F" transform="translate(-8 -16)" mask="url(#G)"/></g><g id="t" clip-path="url(#c)"><path d="M64 46h16v2H64zm0 0"/></g><g id="q" clip-path="url(#b)"><path d="M61.5 46h21a1.5 1.5 0 011.5 1.5v1a1.5 1.5 0 01-1.5 1.5h-21a1.5 1.5 0 01-1.5-1.5v-1a1.5 1.5 0 011.5-1.5zm0 0"/></g><g id="N" clip-path="url(#K)"><path d="M128 80.64V128H0V80.64zm0 0" fill="url(#L)"/><path d="M13.309 80.64L60.664 128H81.88l-47.36-47.36zm42.421 0L103.094 128h21.215L76.945 80.64zm42.43 0L128 110.48V89.27l-8.629-8.63zM0 88.548v21.215L18.238 128h21.215zm0 0"/></g><g id="ac" clip-path="url(#M)"><use xlink:href="#N" mask="url(#O)"/></g><filter id="a" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%"><feColorMatrix in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/></filter></defs><path d="M28 62h72a8 8 0 018 8v42a8 8 0 01-8 8H28a8 8 0 01-8-8V70a8 8 0 018-8zm0 0" fill="url(#P)"/><path d="M28 8h72a8 8 0 018 8v92a8 8 0 01-8 8H28a8 8 0 01-8-8V16a8 8 0 018-8zm0 0" fill="#f6f5f4"/><path d="M28 14h72c2.21 0 4 1.79 4 4v90c0 2.21-1.79 4-4 4H28c-2.21 0-4-1.79-4-4V18c0-2.21 1.79-4 4-4zm0 0" fill="#1a5fb4"/><path d="M28 12h72c2.21 0 4 1.79 4 4v90c0 2.21-1.79 4-4 4H28c-2.21 0-4-1.79-4-4V16c0-2.21 1.79-4 4-4zm0 0" fill="#3584e4"/><path d="M24 44h80v2H24zm0 0M24 76h80v2H24zm0 0" fill="#1c71d8"/><path d="M55 24h18c1.66 0 3 1 3 3v5h-3.969L72 28H56l.031 4H52v-5c0-1.66 1.34-3 3-3zm0 0" fill="url(#Q)"/><use xlink:href="#q" transform="translate(-8 -16)" mask="url(#R)"/><path d="M55 28c-1.66 0-3 1.34-3 3v1h4v-2h16v2h4v-1c0-1.66-1.34-3-3-3zm0 0" fill="url(#S)"/><use xlink:href="#t" transform="translate(-8 -16)" mask="url(#T)"/><path d="M55 56h18c1.66 0 3 1 3 3v5h-3.969L72 60H56l.031 4H52v-5c0-1.66 1.34-3 3-3zm0 0" fill="url(#U)"/><use xlink:href="#w" transform="translate(-8 -16)" mask="url(#V)"/><path d="M55 60c-1.66 0-3 1.34-3 3v1h4v-2h16v2h4v-1c0-1.66-1.34-3-3-3zm0 0" fill="url(#W)"/><use xlink:href="#z" transform="translate(-8 -16)" mask="url(#X)"/><path d="M55 88h18c1.66 0 3 1 3 3v5h-3.969L72 92H56l.031 4H52v-5c0-1.66 1.34-3 3-3zm0 0" fill="url(#Y)"/><use xlink:href="#C" transform="translate(-8 -16)" mask="url(#Z)"/><path d="M55 92c-1.66 0-3 1.34-3 3v1h4v-2h16v2h4v-1c0-1.66-1.34-3-3-3zm0 0" fill="url(#aa)"/><use xlink:href="#F" transform="translate(-8 -16)" mask="url(#ab)"/><use xlink:href="#ac" mask="url(#ad)"/></svg> \ No newline at end of file
diff --git a/data/icons/hicolor/symbolic/apps/org.gnome.Nautilus-symbolic.svg b/data/icons/hicolor/symbolic/apps/org.gnome.Nautilus-symbolic.svg
new file mode 100644
index 0000000..2281d98
--- /dev/null
+++ b/data/icons/hicolor/symbolic/apps/org.gnome.Nautilus-symbolic.svg
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:svg='http://www.w3.org/2000/svg' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='svg7384' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' version='1.1' inkscape:version='0.47 r22583' height='16' sodipodi:docname='system-file-manager-symbolic.svg' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2000/svg' width='16'>
+ <metadata id='metadata90'>
+ <rdf:RDF>
+ <cc:Work rdf:about=''>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+ <dc:title>Gnome Symbolic Icon Theme</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview inkscape:object-paths='true' inkscape:cy='-218.16054' inkscape:current-layer='layer11' inkscape:window-width='1920' pagecolor='#555753' showborder='false' showguides='true' inkscape:snap-nodes='false' objecttolerance='10' showgrid='true' inkscape:object-nodes='true' inkscape:pageshadow='2' inkscape:guide-bbox='true' inkscape:window-x='0' inkscape:snap-bbox='true' bordercolor='#666666' id='namedview88' inkscape:window-maximized='1' inkscape:snap-global='true' inkscape:window-y='26' gridtolerance='10' inkscape:zoom='1' inkscape:window-height='1021' borderopacity='1' guidetolerance='10' inkscape:snap-bbox-midpoints='false' inkscape:cx='-144.56708' inkscape:bbox-paths='false' inkscape:snap-grids='true' inkscape:pageopacity='1' inkscape:snap-to-guides='true'>
+ <inkscape:grid visible='true' spacingx='1px' type='xygrid' spacingy='1px' id='grid4866' empspacing='2' enabled='true' snapvisiblegridlinesonly='true'/>
+ </sodipodi:namedview>
+ <title id='title9167'>Gnome Symbolic Icon Theme</title>
+ <defs id='defs7386'/>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='layer9' inkscape:label='status' style='display:inline'/>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='layer10' inkscape:label='devices'/>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='layer11' inkscape:label='apps'>
+
+ <path inkscape:connector-curvature='0' d='M 205.1875,490 C 203.98238,490 203,491.01795 203,492.21875 l 0,11.5625 c 0,1.2008 0.98238,2.21875 2.1875,2.21875 l 9.625,0 c 1.20512,0 2.1875,-1.01795 2.1875,-2.21875 l 0,-11.5625 C 217,491.01795 216.01762,490 214.8125,490 l -9.625,0 z m -0.1875,3 10,0 0,11 -10,0 0,-11 z m 1,1 0,4 8.03125,0 0,-4 L 206,494 z m 2.34375,1.4375 a 0.50004997,0.50004997 0 0 1 0.0625,0 0.50004997,0.50004997 0 0 1 0.59375,0.5 l 0,0.0625 2,0 0,-0.0625 a 0.50004997,0.50004997 0 1 1 1,0 L 212,496 c 0,0.54535 -0.45465,1 -1,1 l -2,0 c -0.54535,0 -1,-0.45465 -1,-1 l 0,-0.0625 a 0.50004997,0.50004997 0 0 1 0.34375,-0.5 z m -2.3125,3.5625 0,4 8.03125,0 0,-4 -8.03125,0 z m 2.3125,1.4375 a 0.50004997,0.50004997 0 0 1 0.0625,0 0.50004997,0.50004997 0 0 1 0.59375,0.5 l 0,0.0625 2,0 0,-0.0625 a 0.50004997,0.50004997 0 1 1 1,0 L 212,501 c 0,0.54535 -0.45465,1 -1,1 l -2,0 c -0.54535,0 -1,-0.45465 -1,-1 l 0,-0.0625 a 0.50004997,0.50004997 0 0 1 0.34375,-0.5 z' id='rect11668-7' style='color:#000000;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate'/>
+ </g>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='layer12' inkscape:label='actions'/>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='layer13' inkscape:label='places'/>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='layer14' inkscape:label='mimetypes'/>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='layer15' inkscape:label='emblems' style='display:inline'/>
+ <g transform='translate(-202.0002,-490)' inkscape:groupmode='layer' id='g4953' inkscape:label='categories' style='display:inline'/>
+</svg>
diff --git a/data/lineup-parameters b/data/lineup-parameters
new file mode 100755
index 0000000..aae22de
--- /dev/null
+++ b/data/lineup-parameters
@@ -0,0 +1,210 @@
+#!/usr/bin/env python3
+#
+# Copyright © 2019 Michael Catanzaro <mcatanzaro@gnome.org>
+#
+# This program 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Based on original C lineup-parameters by Sébastien Wilmet <swilmet@gnome.org>
+# Rewritten in Python to allow simple execution from source directory.
+#
+# Usage: lineup-parameters [file]
+# If the file is not given, stdin is read.
+# The result is printed to stdout.
+#
+# The restrictions:
+# - The function name must be at column 0, followed by a space and an opening
+# parenthesis;
+# - One parameter per line;
+# - A parameter must follow certain rules (see the regex in the code), but it
+# doesn't accept all possibilities of the C language.
+# - The opening curly brace ("{") of the function must also be at column 0.
+#
+# If one restriction is missing, the function declaration is not modified.
+#
+# Example:
+#
+# gboolean
+# frobnitz (Frobnitz *frobnitz,
+# gint magic_number,
+# GError **error)
+# {
+# ...
+# }
+#
+# Becomes:
+#
+# gboolean
+# frobnitz (Frobnitz *frobnitz,
+# gint magic_number,
+# GError **error)
+# {
+# ...
+# }
+#
+# TODO: support "..." vararg parameter
+
+import argparse
+import re
+import sys
+
+from typing import NamedTuple
+
+# https://regexr.com/ is your friend.
+functionNameRegex = re.compile(r'^(\w+) ?\(')
+parameterRegex = re.compile(
+ r'^\s*(?P<type>(const\s+)?\w+)'
+ r'\s+(?P<stars>\**)'
+ r'\s*(?P<name>\w+)'
+ r'\s*(?P<end>,|\))'
+ r'\s*$')
+openingCurlyBraceRegex = re.compile(r'^{\s*$')
+
+
+def matchFunctionName(line):
+ match = functionNameRegex.match(line)
+ if match:
+ functionName = match.group(1)
+ firstParamPosition = match.end(0)
+ return (functionName, firstParamPosition)
+ return (None, 0)
+
+
+class ParameterInfo(NamedTuple):
+ paramType: str
+ name: str
+ numStars: int
+ isLastParameter: bool
+
+
+def matchParameter(line):
+ _, firstParamPosition = matchFunctionName(line)
+ match = parameterRegex.match(line[firstParamPosition:])
+ if match is None:
+ return None
+ paramType = match.group('type')
+ assert(paramType is not None)
+ name = match.group('name')
+ assert(name is not None)
+ stars = match.group('stars')
+ numStars = len(stars) if stars is not None else 0
+ end = match.group('end')
+ isLastParameter = True if end is not None and end == ')' else False
+ return ParameterInfo(paramType, name, numStars, isLastParameter)
+
+
+def matchOpeningCurlyBrace(line):
+ return True if openingCurlyBraceRegex.match(line) is not None else False
+
+
+# Length returned is number of lines the declaration takes up
+def getFunctionDeclarationLength(remainingLines):
+ for i in range(len(remainingLines)):
+ currentLine = remainingLines[i]
+ parameterInfo = matchParameter(currentLine)
+ if parameterInfo is None:
+ return 0
+ if parameterInfo.isLastParameter:
+ if i + 1 == len(remainingLines):
+ return 0
+ nextLine = remainingLines[i + 1]
+ if not matchOpeningCurlyBrace(nextLine):
+ return 0
+ return i + 1
+ return 0
+
+
+def getParameterInfos(remainingLines, length):
+ parameterInfos = []
+ for i in range(length):
+ parameterInfos.append(matchParameter(remainingLines[i]))
+ return parameterInfos
+
+
+def computeSpacing(parameterInfos):
+ maxTypeLength = 0
+ maxStarsLength = 0
+ for parameterInfo in parameterInfos:
+ maxTypeLength = max(maxTypeLength, len(parameterInfo.paramType))
+ maxStarsLength = max(maxStarsLength, parameterInfo.numStars)
+ return (maxTypeLength, maxStarsLength)
+
+
+def printParameter(parameterInfo, maxTypeLength, maxStarsLength, outfile):
+ outfile.write(f'{parameterInfo.paramType:<{maxTypeLength + 1}}')
+ paramNamePaddedWithStars = f'{parameterInfo.name:*>{parameterInfo.numStars + len(parameterInfo.name)}}'
+ outfile.write(f'{paramNamePaddedWithStars:>{maxStarsLength + len(parameterInfo.name)}}')
+
+
+def printFunctionDeclaration(remainingLines, length, useTabs, outfile):
+ functionName, _ = matchFunctionName(remainingLines[0])
+ assert(functionName is not None)
+ outfile.write(f'{functionName} (')
+ numSpacesToParenthesis = len(functionName) + 2
+ whitespace = ''
+ if useTabs:
+ tabs = ''.ljust(numSpacesToParenthesis // 8, '\t')
+ spaces = ''.ljust(numSpacesToParenthesis % 8)
+ whitespace = tabs + spaces
+ else:
+ whitespace = ''.ljust(numSpacesToParenthesis)
+ parameterInfos = getParameterInfos(remainingLines, length)
+ maxTypeLength, maxStarsLength = computeSpacing(parameterInfos)
+ numParameters = len(parameterInfos)
+ for i in range(numParameters):
+ parameterInfo = parameterInfos[i]
+ if i != 0:
+ outfile.write(whitespace)
+ printParameter(parameterInfo, maxTypeLength, maxStarsLength, outfile)
+ if i + 1 != numParameters:
+ outfile.write(',\n')
+ outfile.write(')\n')
+
+
+def parseContents(infile, useTabs, outfile):
+ lines = infile.readlines()
+ i = 0
+ while i < len(lines):
+ line = lines[i]
+ functionName, _ = matchFunctionName(line)
+ if functionName is None:
+ outfile.write(line)
+ i += 1
+ continue
+ remainingLines = lines[i:]
+ length = getFunctionDeclarationLength(remainingLines)
+ if length == 0:
+ outfile.write(line)
+ i += 1
+ continue
+ printFunctionDeclaration(remainingLines, length, useTabs, outfile)
+ i += length
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ description='Line up parameters of C functions')
+ parser.add_argument('infile', nargs='?',
+ type=argparse.FileType('r'),
+ default=sys.stdin,
+ help='input C source file')
+ parser.add_argument('-o', metavar='outfile', nargs='?',
+ type=argparse.FileType('w'),
+ default=sys.stdout,
+ help='where to output modified file')
+ parser.add_argument('--tabs', action='store_true',
+ help='whether use tab characters in the output')
+ args = parser.parse_args()
+ parseContents(args.infile, args.tabs, args.o)
+ args.infile.close()
+ args.o.close()
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 0000000..2df5a22
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,138 @@
+icondir = join_paths('icons', 'hicolor', 'scalable', 'apps')
+install_data(
+ join_paths(icondir, 'org.gnome.Nautilus' + profile + '.svg'),
+ install_dir: join_paths(datadir, icondir),
+ rename: '@0@.svg'.format(application_id)
+)
+
+icondir = join_paths('icons', 'hicolor', 'symbolic', 'apps')
+
+install_data(
+ join_paths(icondir, 'org.gnome.Nautilus-symbolic.svg'),
+ install_dir: join_paths(datadir, icondir),
+ rename: '@0@-symbolic.svg'.format(application_id)
+)
+
+po_dir = join_paths(meson.project_source_root(), 'po')
+
+desktop_conf = configuration_data()
+
+desktop_conf.set('icon', application_id)
+
+desktop = i18n.merge_file(
+ input: configure_file(
+ input: files('org.gnome.Nautilus.desktop.in.in'),
+ output: 'org.gnome.Nautilus.desktop.in',
+ configuration: desktop_conf
+ ),
+ output: '@0@.desktop'.format(application_id),
+ install: true,
+ install_dir: desktopdir,
+ po_dir: po_dir,
+ type: 'desktop'
+)
+
+desktop_autorun_software = i18n.merge_file(
+ input: 'nautilus-autorun-software.desktop.in',
+ output: 'nautilus-autorun-software.desktop',
+ install: true,
+ install_dir: desktopdir,
+ po_dir: po_dir,
+ type: 'desktop'
+)
+
+appdata_conf = configuration_data()
+
+appdata_conf.set('appid', application_id)
+
+appdata = i18n.merge_file(
+ input: configure_file(
+ input: files('org.gnome.Nautilus.appdata.xml.in.in'),
+ output: 'org.gnome.Nautilus.appdata.xml.in',
+ configuration: appdata_conf
+ ),
+ output: '@0@.appdata.xml'.format(application_id),
+ install: true,
+ install_dir: join_paths(datadir, 'metainfo'),
+ po_dir: po_dir
+)
+
+service_conf = configuration_data()
+service_conf.set('appid', application_id)
+service_conf.set('bindir', join_paths(prefix, bindir))
+
+configure_file(
+ input: 'org.gnome.Nautilus.service.in',
+ output: '@0@.service'.format(application_id),
+ configuration: service_conf,
+ install_dir: servicedir
+)
+
+configure_file(
+ input: 'org.freedesktop.FileManager1.service.in',
+ output: 'org.freedesktop.FileManager1.service',
+ configuration: service_conf,
+ install_dir: servicedir
+)
+
+search_provider_conf = configuration_data()
+
+search_provider_conf.set('appid', application_id)
+search_provider_conf.set('profile', profile)
+
+configure_file(
+ configuration: search_provider_conf,
+ input: files('org.gnome.Nautilus.search-provider.ini.in'),
+ install_dir: join_paths(datadir, 'gnome-shell', 'search-providers'),
+ output: '@0@.search-provider.ini'.format(application_id)
+)
+
+gnome.compile_schemas(
+ build_by_default: true,
+ depend_files: 'org.gnome.nautilus.gschema.xml'
+)
+
+install_data(
+ 'org.gnome.nautilus.gschema.xml',
+ install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
+)
+
+desktop_file_validate = find_program('desktop-file-validate', required: false)
+if desktop_file_validate.found()
+ test(
+ 'validate-desktop',
+ desktop_file_validate,
+ args: [
+ desktop.full_path()
+ ],
+ depends: [
+ desktop,
+ ]
+ )
+ test(
+ 'validate-desktop-autorun-software',
+ desktop_file_validate,
+ args: [
+ desktop_autorun_software.full_path()
+ ],
+ depends: [
+ desktop_autorun_software,
+ ]
+ )
+endif
+
+appstream_util = find_program('appstream-util', required: false)
+if appstream_util.found()
+ test(
+ 'validate-appdata', appstream_util,
+ args: [
+ 'validate-relax', '--nonet', appdata.full_path()
+ ],
+ depends: [
+ appdata,
+ ]
+ )
+endif
+
+subdir('ontology')
+subdir('tracker')
diff --git a/data/nautilus-autorun-software.desktop.in b/data/nautilus-autorun-software.desktop.in
new file mode 100644
index 0000000..a42c94e
--- /dev/null
+++ b/data/nautilus-autorun-software.desktop.in
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Run Software
+TryExec=nautilus-autorun-software
+Exec=nautilus-autorun-software %u
+# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
+Icon=application-x-executable
+NoDisplay=true
+Terminal=false
+StartupNotify=true
+Type=Application
+MimeType=x-content/unix-software;
diff --git a/data/ontology/meson.build b/data/ontology/meson.build
new file mode 100644
index 0000000..cb80e86
--- /dev/null
+++ b/data/ontology/meson.build
@@ -0,0 +1,8 @@
+ontology_data = files(
+ 'nautilus.description',
+ 'nautilus.ontology',
+)
+
+install_data(ontology_data,
+ install_dir: join_paths(datadir, 'nautilus', 'ontology')
+)
diff --git a/data/ontology/nautilus.description b/data/ontology/nautilus.description
new file mode 100644
index 0000000..42f4102
--- /dev/null
+++ b/data/ontology/nautilus.description
@@ -0,0 +1,9 @@
+@prefix dsc: <http://tracker.api.gnome.org/ontology/v3/dsc#> .
+
+<virtual-ontology-uri:nautilus.ontology> a dsc:Ontology ;
+ dsc:title "Nautilus ontology" ;
+ dsc:description "Tracker database schema for Nautilus private data." ;
+
+ dsc:localPrefix "nautilus" ;
+ dsc:baseUrl "https://gitlab.gnome.org/GNOME/nautilus#" ;
+ dsc:relativePath "./nautilus.ontology" ;
diff --git a/data/ontology/nautilus.ontology b/data/ontology/nautilus.ontology
new file mode 100644
index 0000000..a3706bc
--- /dev/null
+++ b/data/ontology/nautilus.ontology
@@ -0,0 +1,20 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix nrl: <http://tracker.api.gnome.org/ontology/v3/nrl#> .
+@prefix nautilus: <https://gitlab.gnome.org/GNOME/nautilus#> .
+
+nautilus: a nrl:Namespace, nrl:Ontology ;
+ nrl:prefix "nautilus" ;
+ nrl:lastModified "2020-05-01T10:00:00Z" .
+
+nautilus:File a rdfs:Class ;
+ rdfs:comment "Represents a file on disk by its URL. Equivalent to http://tracker.api.gnome.org/ontology/v3/nfo#FileDataObject" ;
+ rdfs:subClassOf rdfs:Resource ;
+ nrl:notify true .
+
+nautilus:starred a rdf:Property ;
+ rdfs:comment "Marks files that are starred in Nautilus." ;
+ rdfs:domain nautilus:File ;
+ rdfs:range xsd:boolean ;
+ nrl:maxCardinality 1 .
diff --git a/data/org.freedesktop.FileManager1.service.in b/data/org.freedesktop.FileManager1.service.in
new file mode 100644
index 0000000..6a0bbe0
--- /dev/null
+++ b/data/org.freedesktop.FileManager1.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.freedesktop.FileManager1
+Exec=@bindir@/nautilus --gapplication-service
diff --git a/data/org.gnome.Nautilus.Source.svg b/data/org.gnome.Nautilus.Source.svg
new file mode 100644
index 0000000..eb8ea2a
--- /dev/null
+++ b/data/org.gnome.Nautilus.Source.svg
@@ -0,0 +1,1595 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="96"
+ inkscape:export-xdpi="96"
+ inkscape:export-filename="Template.png"
+ width="192"
+ height="152"
+ id="svg11300"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+ sodipodi:docname="org.gnome.Nautilus.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline;enable-background:new"
+ viewBox="0 0 192 152">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ y2="236"
+ x2="96"
+ y1="236"
+ x1="32"
+ gradientTransform="translate(604.81684,170.58641)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1099"
+ xlink:href="#linearGradient1036" />
+ <linearGradient
+ id="linearGradient1036">
+ <stop
+ id="stop1032"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1;" />
+ <stop
+ id="stop1034"
+ offset="1"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ </linearGradient>
+ <radialGradient
+ r="32"
+ fy="-76"
+ fx="-244"
+ cy="-76"
+ cx="-244"
+ gradientTransform="matrix(0.88333331,0,0,0.88333331,-460.35018,463.11973)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1103"
+ xlink:href="#linearGradient1069" />
+ <linearGradient
+ id="linearGradient1069">
+ <stop
+ id="stop1065"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ id="stop1067-1"
+ offset="1"
+ style="stop-color:#949390;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="232"
+ x2="64"
+ y1="262.5"
+ x1="64"
+ id="linearGradient1027"
+ xlink:href="#linearGradient1025"
+ gradientTransform="translate(-470.5864,432.81685)" />
+ <linearGradient
+ id="linearGradient1025">
+ <stop
+ id="stop1021"
+ offset="0"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ id="stop1023"
+ offset="1"
+ style="stop-color:#77767b;stop-opacity:1" />
+ </linearGradient>
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect35304-9"
+ is_visible="true" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1609-7">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path1611-5"
+ d="m 252,116 28,-28 v -8 h -36 v 36 z"
+ style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient1697">
+ <stop
+ id="stop1685"
+ offset="0"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0.04545455"
+ id="stop1687" />
+ <stop
+ id="stop1689"
+ offset="0.09090909"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.90909094"
+ id="stop1691" />
+ <stop
+ id="stop1693"
+ offset="0.95454544"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ <stop
+ id="stop1695"
+ offset="1"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ </linearGradient>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1289">
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 64,-148 h 64 l 64,-64 64,64 h 192 c 17.728,0 32,14.272 32,32 v 288 c 0,17.728 -14.272,32 -32,32 H 256 l -64,-64 -64,64 H 64 C 46.272,204 32,189.728 32,172 v -288 c 0,-17.728 14.408898,-34.19889 32,-32 z"
+ id="path1291"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="scccsssscccssss" />
+ </clipPath>
+ <linearGradient
+ id="paint3_linear-2-6-5"
+ x2="1"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,6,-12,0,-64,209.99687)">
+ <stop
+ stop-color="#C01C27"
+ id="stop91-0-7-4" />
+ <stop
+ offset="1"
+ stop-color="#E01B24"
+ id="stop93-2-5-7" />
+ </linearGradient>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1609">
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path1611"
+ d="m 252,116 28,-28 v -8 h -36 v 36 z"
+ style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1697"
+ id="linearGradient1049"
+ x1="20"
+ y1="238"
+ x2="108"
+ y2="238"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1245">
+ <stop
+ style="stop-color:#9a9996;stop-opacity:1"
+ offset="0"
+ id="stop1241" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="1"
+ id="stop1243" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1108"
+ id="linearGradient25973"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.74469045,0,49.526429)"
+ x1="49.999802"
+ y1="196"
+ x2="54.000198"
+ y2="196" />
+ <linearGradient
+ id="linearGradient1108">
+ <stop
+ style="stop-color:#9a9996;stop-opacity:1"
+ offset="0"
+ id="stop1194" />
+ <stop
+ id="stop1196"
+ offset="0.25"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ id="stop1102"
+ offset="0.75"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="1"
+ id="stop1106" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1108"
+ id="linearGradient25975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.74469045,24,49.526429)"
+ x1="49.999802"
+ y1="196"
+ x2="54.000198"
+ y2="196" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1294"
+ id="linearGradient25977"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.059593)"
+ x1="59"
+ y1="192"
+ x2="59"
+ y2="196" />
+ <linearGradient
+ id="linearGradient1294">
+ <stop
+ id="stop1286"
+ offset="0"
+ style="stop-color:#77767b;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.25"
+ id="stop1288" />
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="0.75"
+ id="stop1290" />
+ <stop
+ id="stop1292"
+ offset="1"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1697"
+ id="linearGradient1028"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-6,166)"
+ x1="104"
+ y1="472"
+ x2="456"
+ y2="472" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient912-6-4"
+ id="linearGradient1681"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-226,231.01538)"
+ x1="136"
+ y1="-188"
+ x2="424"
+ y2="-188" />
+ <linearGradient
+ id="linearGradient912-6-4">
+ <stop
+ id="stop908-7-5"
+ offset="0"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ style="stop-color:#f6f5f4;stop-opacity:1"
+ offset="0.04263495"
+ id="stop916-5-6" />
+ <stop
+ id="stop920-3-5"
+ offset="0.09489156"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.8972398"
+ id="stop922-5-4" />
+ <stop
+ id="stop918-6-6"
+ offset="0.95800674"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ <stop
+ id="stop910-2-0"
+ offset="1"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient966-0"
+ id="linearGradient1683"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-226,166.01538)"
+ x1="120"
+ y1="471.96387"
+ x2="440"
+ y2="471.96387" />
+ <linearGradient
+ id="linearGradient966-0">
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0"
+ id="stop954-7" />
+ <stop
+ id="stop956-6"
+ offset="0.04263495"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.09489156"
+ id="stop958-7" />
+ <stop
+ id="stop960-3"
+ offset="0.8972398"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0.95800674"
+ id="stop962-0" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="1"
+ id="stop964-4" />
+ </linearGradient>
+ <clipPath
+ id="clipPath937-3-8"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ ry="16"
+ rx="16"
+ y="-156.00002"
+ x="112"
+ height="391.78711"
+ width="288"
+ id="rect939-8-4"
+ style="display:inline;opacity:1;vector-effect:none;fill:#4a86cf;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </clipPath>
+ <filter
+ height="1.1457478"
+ y="-0.072873913"
+ width="1.1982712"
+ x="-0.099135622"
+ id="filter1000-3"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur1002-2"
+ stdDeviation="11.896274" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1075"
+ id="linearGradient1012"
+ x1="95.999893"
+ y1="229.93848"
+ x2="447.99991"
+ y2="229.93848"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-12.634772,-31.254404)" />
+ <linearGradient
+ id="linearGradient1075"
+ inkscape:collect="always">
+ <stop
+ id="stop1062-4"
+ offset="0"
+ style="stop-color:#1d60b5;stop-opacity:1" />
+ <stop
+ style="stop-color:#3584e4;stop-opacity:1"
+ offset="0.04508856"
+ id="stop1064-1" />
+ <stop
+ style="stop-color:#1d60b5;stop-opacity:1"
+ offset="0.09090909"
+ id="stop1066-8" />
+ <stop
+ id="stop1069-7"
+ offset="0.90909088"
+ style="stop-color:#1d60b5;stop-opacity:1" />
+ <stop
+ style="stop-color:#3584e4;stop-opacity:1"
+ offset="0.95454544"
+ id="stop1071-7" />
+ <stop
+ id="stop1073"
+ offset="1"
+ style="stop-color:#1d60b5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1287"
+ id="linearGradient1004"
+ x1="95.999893"
+ y1="229.93848"
+ x2="447.99991"
+ y2="229.93848"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-12.634772,-31.254404)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1287">
+ <stop
+ style="stop-color:#1d60b5;stop-opacity:1"
+ offset="0"
+ id="stop1283" />
+ <stop
+ style="stop-color:#1d60b5;stop-opacity:1"
+ offset="1"
+ id="stop1285" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1307"
+ id="linearGradient1641"
+ gradientUnits="userSpaceOnUse"
+ x1="256.00003"
+ y1="107.99996"
+ x2="256"
+ y2="147.20279" />
+ <linearGradient
+ id="linearGradient1307"
+ inkscape:collect="always">
+ <stop
+ id="stop1303"
+ offset="0"
+ style="stop-color:#78bdf0;stop-opacity:1" />
+ <stop
+ id="stop1305"
+ offset="1"
+ style="stop-color:#61a1d2;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1307"
+ id="linearGradient1268"
+ gradientUnits="userSpaceOnUse"
+ x1="256.00003"
+ y1="107.99996"
+ x2="256"
+ y2="147.20279"
+ gradientTransform="matrix(0.25,0,0,-0.25,-8.4263919,-48.754404)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1307"
+ id="linearGradient1281"
+ gradientUnits="userSpaceOnUse"
+ x1="256.00003"
+ y1="107.99996"
+ x2="256"
+ y2="147.20279" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1697"
+ id="linearGradient1283"
+ gradientUnits="userSpaceOnUse"
+ x1="20"
+ y1="238"
+ x2="108"
+ y2="238" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1108"
+ id="linearGradient1285"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.74469045,0,49.526429)"
+ x1="49.999802"
+ y1="196"
+ x2="54.000198"
+ y2="196" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1108"
+ id="linearGradient1288"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.74469045,24,49.526429)"
+ x1="49.999802"
+ y1="196"
+ x2="54.000198"
+ y2="196" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1294"
+ id="linearGradient1290"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.059593)"
+ x1="59"
+ y1="192"
+ x2="59"
+ y2="196" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1108"
+ id="linearGradient1292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.74469045,0,49.526429)"
+ x1="49.999802"
+ y1="196"
+ x2="54.000198"
+ y2="196" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1108"
+ id="linearGradient1295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.74469045,24,49.526429)"
+ x1="49.999802"
+ y1="196"
+ x2="54.000198"
+ y2="196" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1294"
+ id="linearGradient1297"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.059593)"
+ x1="59"
+ y1="192"
+ x2="59"
+ y2="196" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1697"
+ id="linearGradient1348"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(2,-22)"
+ x1="50"
+ y1="238"
+ x2="74"
+ y2="238" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1245"
+ id="linearGradient1350"
+ gradientUnits="userSpaceOnUse"
+ x1="65"
+ y1="204"
+ x2="65"
+ y2="200" />
+ </defs>
+ <sodipodi:namedview
+ stroke="#ef2929"
+ fill="#f57900"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.25490196"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2"
+ inkscape:cx="95.28057"
+ inkscape:cy="115.79066"
+ inkscape:current-layer="layer9"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ width="400px"
+ height="300px"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ objecttolerance="7"
+ gridtolerance="12"
+ guidetolerance="13"
+ inkscape:window-maximized="1"
+ inkscape:pagecheckerboard="false"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:locked="false"
+ inkscape:measure-start="0,0"
+ inkscape:measure-end="0,0"
+ inkscape:object-nodes="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-global="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ showborder="true"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-text-baseline="true"
+ borderlayer="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5883"
+ spacingx="2"
+ spacingy="2"
+ enabled="true"
+ visible="true"
+ empspacing="4"
+ originx="8"
+ originy="8" />
+ <sodipodi:guide
+ position="72,16"
+ orientation="0,1"
+ id="guide1073"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="20,72"
+ orientation="1,0"
+ id="guide1075"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,112"
+ orientation="0,1"
+ id="guide1099"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,136"
+ orientation="0,1"
+ id="guide993"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="112,72"
+ orientation="1,0"
+ id="guide995"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="8.0000001,72"
+ orientation="1,0"
+ id="guide867"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="128,72"
+ orientation="1,0"
+ id="guide869"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,124"
+ orientation="0,1"
+ id="guide871"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <inkscape:grid
+ type="xygrid"
+ id="grid873"
+ spacingx="1"
+ spacingy="1"
+ empspacing="8"
+ color="#000000"
+ opacity="0.49019608"
+ empcolor="#000000"
+ empopacity="0.08627451"
+ dotted="true"
+ originx="8"
+ originy="8" />
+ <sodipodi:guide
+ position="32,72"
+ orientation="1,0"
+ id="guide877"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="124,72"
+ orientation="1,0"
+ id="guide879"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,128"
+ orientation="0,1"
+ id="guide881"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,20"
+ orientation="0,1"
+ id="guide883"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="16,72"
+ orientation="1,0"
+ id="guide885"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="136,72"
+ orientation="1,0"
+ id="guide887"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,8"
+ orientation="0,1"
+ id="guide897"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,32"
+ orientation="0,1"
+ id="guide899"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="264,264"
+ orientation="-0.70710678,0.70710678"
+ id="guide950"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="72,72"
+ orientation="0.70710678,0.70710678"
+ id="guide952"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="App Icon"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ transform="translate(8,-156)">
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="template"
+ style="display:inline"
+ sodipodi:insensitive="true">
+ <rect
+ inkscape:label="0"
+ y="172"
+ x="9.2651362e-08"
+ height="128"
+ width="128"
+ id="hicolor"
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate"
+ id="symbolic"
+ width="16"
+ height="16"
+ x="160"
+ y="172"
+ inkscape:label="0" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="baseplate"
+ style="display:none"
+ sodipodi:insensitive="true">
+ <g
+ style="display:inline;fill:#000000;enable-background:new"
+ transform="matrix(7.9911709,0,0,8.0036407,-167.7909,-4846.0776)"
+ id="g12027"
+ inkscape:export-xdpi="12"
+ inkscape:export-ydpi="12" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate"
+ id="128"
+ width="128"
+ height="128"
+ x="9.2651362e-08"
+ y="172"
+ inkscape:label="0" />
+ <g
+ id="g883"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ transform="translate(-24,24)" />
+ <g
+ id="g900"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ transform="translate(-24,24)" />
+ <rect
+ inkscape:label=""
+ y="172"
+ x="160"
+ height="16"
+ width="16"
+ id="16"
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ x="0"
+ y="167"
+ id="text863"
+ inkscape:label="icon-name"><tspan
+ style="font-size:4px;stroke-width:0.33264872"
+ sodipodi:role="line"
+ id="tspan861"
+ x="0"
+ y="167">Hicolor</tspan></text>
+ <text
+ inkscape:label="icon-name"
+ id="text867"
+ y="167"
+ x="160"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ xml:space="preserve"><tspan
+ y="167"
+ x="160"
+ id="tspan865"
+ sodipodi:role="line"
+ style="font-size:4px;stroke-width:0.33264872">Symbolic</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer9"
+ inkscape:label="icons"
+ style="display:inline">
+ <g
+ style="display:inline;enable-background:new"
+ id="g1736"
+ transform="translate(-421.36516,273.75927)">
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1012);fill-opacity:1;stroke:url(#linearGradient1004);stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect17200-6"
+ width="88"
+ height="103.98462"
+ x="11.365174"
+ y="-85.754402"
+ rx="8"
+ ry="8" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect17200"
+ width="88"
+ height="102"
+ x="11.365174"
+ y="-93.754402"
+ rx="8"
+ ry="8" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-8.4264019,19.245596)"
+ style="display:inline;fill:#1d60b5;fill-opacity:1;enable-background:new"
+ id="use1030-7">
+ <path
+ transform="scale(1,-1)"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1281);fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 224,108 h 64 c 4.432,0 8,3.568 8,8 v 24 c 0,4.432 -3.568,8 -8,8 h -64 c -4.432,0 -8,-3.568 -8,-8 v -24 c 0,-4.432 3.568,-8 8,-8 z"
+ id="path1241"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <path
+ inkscape:connector-curvature="0"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1d60b5;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 224,-148 c -4.432,0 -8,3.568 -8,8 v 8 c 0,-4.432 3.568,-8 8,-8 h 64 c 4.432,0 8,3.568 8,8 v -8 c 0,-4.432 -3.568,-8 -8,-8 z"
+ id="path1243"
+ sodipodi:nodetypes="sscsscsss" />
+ </g>
+ <g
+ transform="matrix(0.25,0,0,0.25,-8.4264019,-14.754404)"
+ style="display:inline;fill:#1d60b5;fill-opacity:1;enable-background:new"
+ id="use1030">
+ <path
+ transform="scale(1,-1)"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1641);fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 224,108 h 64 c 4.432,0 8,3.568 8,8 v 24 c 0,4.432 -3.568,8 -8,8 h -64 c -4.432,0 -8,-3.568 -8,-8 v -24 c 0,-4.432 3.568,-8 8,-8 z"
+ id="path1233"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <path
+ inkscape:connector-curvature="0"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1d60b5;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 224,-148 c -4.432,0 -8,3.568 -8,8 v 8 c 0,-4.432 3.568,-8 8,-8 h 64 c 4.432,0 8,3.568 8,8 v -8 c 0,-4.432 -3.568,-8 -8,-8 z"
+ id="path1235"
+ sodipodi:nodetypes="sscsscsss" />
+ </g>
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1268);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 47.573608,-75.754404 h 16 c 1.108,0 2,-0.892 2,-2 v -6 c 0,-1.108 -0.892,-2 -2,-2 h -16 c -1.108,0 -2,0.892 -2,2 v 6 c 0,1.108 0.892,2 2,2 z"
+ id="rect17210"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <path
+ inkscape:connector-curvature="0"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1d60b5;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 47.573608,-85.754404 c -1.108,0 -2,0.892 -2,2 v 2 c 0,-1.108 0.892,-2 2,-2 h 16 c 1.108,0 2,0.892 2,2 v -2 c 0,-1.108 -0.892,-2 -2,-2 z"
+ id="path17212"
+ sodipodi:nodetypes="sscsscsss" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1d60b5;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect17202"
+ width="88"
+ height="2"
+ x="11.365174"
+ y="-59.754406"
+ rx="0"
+ ry="0" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1d60b5;fill-opacity:1;stroke:none;stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect17214"
+ width="88"
+ height="2"
+ x="11.365174"
+ y="-25.754402"
+ rx="0"
+ ry="0" />
+ </g>
+ <g
+ id="g1679"
+ transform="translate(-90,-0.01538)"
+ style="display:inline;enable-background:new">
+ <rect
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1647"
+ width="80"
+ height="112"
+ x="-196"
+ y="180.01538"
+ rx="7.9750819"
+ ry="8.017911" />
+ <rect
+ ry="4"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1681);fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1649"
+ width="72"
+ height="84"
+ x="-192"
+ y="184.01538"
+ rx="4" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1683);fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m -196,280.03213 v 3.96518 c 0,4.44193 3.5569,8.01807 7.9751,8.01807 h 64.0498 c 4.4182,0 7.9751,-3.57614 7.9751,-8.01807 v -3.96518 c 0,4.44192 -3.5569,8.01806 -7.9751,8.01806 h -64.0498 c -4.4182,0 -7.9751,-3.57614 -7.9751,-8.01806 z"
+ id="path1651"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1653"
+ width="72"
+ height="97.946777"
+ x="-192"
+ y="186.01538"
+ rx="4"
+ ry="4" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1655"
+ width="72"
+ height="2"
+ x="-192"
+ y="218.01538"
+ rx="0"
+ ry="0" />
+ <g
+ id="g1665"
+ transform="matrix(0.25,0,0,-0.25,-226,281.01538)">
+ <rect
+ ry="8"
+ rx="8"
+ y="43.99995"
+ x="232"
+ height="40"
+ width="96"
+ id="rect1661"
+ style="display:inline;opacity:1;vector-effect:none;fill:#98c1f1;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path1663"
+ d="m 240,83.999992 c -4.432,0 -8,-3.568 -8,-8 v -8 c 0,4.432 3.568,8 8,8 h 80 c 4.432,0 8,-3.568 8,-8 v 8 c 0,4.432 -3.568,8 -8,8 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g1671"
+ transform="matrix(0.25,0,0,-0.25,-226,153.01538)">
+ <rect
+ ry="8"
+ rx="8"
+ y="-196.26346"
+ x="232"
+ height="40.263458"
+ width="96"
+ id="rect1667"
+ style="display:inline;opacity:1;vector-effect:none;fill:#98c1f1;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path1669"
+ d="m 240,-155.99996 c -4.432,0 -8,-3.568 -8,-8 v -8 c 0,4.432 3.568,8 8,8 h 80 c 4.432,0 8,-3.568 8,-8 v 8 c 0,4.432 -3.568,8 -8,8 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ inkscape:connector-curvature="0" />
+ </g>
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1673"
+ width="72"
+ height="2"
+ x="-192"
+ y="252.01538"
+ rx="0"
+ ry="0" />
+ <rect
+ clip-path="url(#clipPath937-3-8)"
+ style="display:inline;opacity:0.74299999;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter:url(#filter1000-3);enable-background:new"
+ id="rect1677"
+ width="288"
+ height="391.78711"
+ x="112"
+ y="-156.00002"
+ rx="16"
+ ry="16"
+ transform="matrix(0.25,0,0,0.25,-220,225.01538)" />
+ <g
+ transform="matrix(0.25,0,0,-0.25,-226,187.01538)"
+ id="g994">
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#98c1f1;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect990"
+ width="96"
+ height="40.263458"
+ x="232"
+ y="-196.26346"
+ rx="8"
+ ry="8" />
+ <path
+ inkscape:connector-curvature="0"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 240,-155.99996 c -4.432,0 -8,-3.568 -8,-8 v -8 c 0,4.432 3.568,8 8,8 h 80 c 4.432,0 8,-3.568 8,-8 v 8 c 0,4.432 -3.568,8 -8,8 z"
+ id="path992" />
+ </g>
+ </g>
+ <g
+ style="display:inline;enable-background:new"
+ id="g1025"
+ transform="translate(-200)">
+ <rect
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect988"
+ width="88"
+ height="112"
+ x="20"
+ y="180"
+ rx="8.7725897"
+ ry="8.017911" />
+ <rect
+ ry="4"
+ style="display:inline;opacity:1;vector-effect:none;fill:#c0bfbc;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect991"
+ width="80"
+ height="84"
+ x="24"
+ y="184"
+ rx="4" />
+ <path
+ sodipodi:nodetypes="csssscssc"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1028);fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 20,280 v 3.98193 C 20,288.42386 23.5569,292 27.9751,292 h 72.0498 C 104.4431,292 108,288.42386 108,283.98193 V 280 c 0,4.44192 -3.5818,8 -8,8 H 28 c -4.4182,0 -8,-3.55808 -8,-8 z"
+ id="path993"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect995"
+ width="80"
+ height="98"
+ x="24"
+ y="186"
+ rx="4"
+ ry="4.0021734" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect997"
+ width="80"
+ height="2"
+ x="24"
+ y="216.125"
+ rx="0"
+ ry="0" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect999"
+ width="80"
+ height="2"
+ x="24"
+ y="248"
+ rx="0"
+ ry="0" />
+ <g
+ style="display:inline;enable-background:new"
+ id="g1003"
+ transform="matrix(0.25,0,0,-0.25,-6,276.99999)">
+ <path
+ id="path1001"
+ d="m 240,91.999954 c -4.432,0 -8,-3.568 -8,-8 V 67.99996 c 0,4.432 3.568,8 8,8 h 80 c 4.432,0 8,-3.568 8,-8 v 15.999994 c 0,4.432 -3.568,8 -8,8 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscsscsss" />
+ </g>
+ <g
+ style="display:inline;enable-background:new"
+ id="g1007"
+ transform="matrix(0.25,0,0,-0.25,-6,153.00001)">
+ <path
+ id="path1005"
+ d="m 240,-147.99996 c -4.432,0 -8,-3.568 -8,-8 v -16 c 0,4.432 3.568,8 8,8 h 80 c 4.432,0 8,-3.568 8,-8 v 16 c 0,4.432 -3.568,8 -8,8 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscsscsss" />
+ </g>
+ <g
+ style="display:inline;enable-background:new"
+ transform="matrix(0.25,0,0,-0.25,-6,185.00001)"
+ id="g1011">
+ <path
+ inkscape:connector-curvature="0"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.04519285px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 240,-147.99996 c -4.432,0 -8,-3.568 -8,-8 v -16 c 0,4.432 3.568,8 8,8 h 80 c 4.432,0 8,-3.568 8,-8 v 16 c 0,4.432 -3.568,8 -8,8 z"
+ id="path1009"
+ sodipodi:nodetypes="sscsscsss" />
+ </g>
+ </g>
+ <g
+ style="display:inline;enable-background:new"
+ id="g25969"
+ transform="translate(-200,-160)">
+ <rect
+ ry="8.017911"
+ rx="8.7725897"
+ y="184"
+ x="20"
+ height="108"
+ width="88"
+ id="rect25919"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1283);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect25921"
+ width="88"
+ height="108"
+ x="20"
+ y="180"
+ rx="8.7725897"
+ ry="8.017911" />
+ <rect
+ ry="4"
+ style="display:inline;opacity:1;vector-effect:none;fill:#c0bfbc;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect25923"
+ width="80"
+ height="84"
+ x="24"
+ y="184"
+ rx="4" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect25925"
+ width="80"
+ height="98"
+ x="24"
+ y="186"
+ rx="4"
+ ry="4.0021734" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect25927"
+ width="80"
+ height="2"
+ x="24"
+ y="216.125"
+ rx="0"
+ ry="0" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect25929"
+ width="80"
+ height="2"
+ x="24"
+ y="248"
+ rx="0"
+ ry="0" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle25931"
+ cx="52"
+ cy="198"
+ r="3" />
+ <circle
+ r="3"
+ cy="198"
+ cx="76"
+ id="circle25933"
+ style="opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient1285);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 52,196.97514 v -2.97876"
+ id="path25935"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path25937"
+ d="m 76,196.97514 v -2.97876"
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient1288);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;stroke:url(#linearGradient1290);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 52,194 H 76"
+ id="path25939"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="g25953"
+ transform="translate(0,32)">
+ <circle
+ style="opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle25941"
+ cx="52"
+ cy="198"
+ r="3" />
+ <circle
+ r="3"
+ cy="198"
+ cx="76"
+ id="circle25943"
+ style="opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ id="g25951">
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path25945"
+ d="m 52,196.97514 v -2.97876"
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient1292);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient1295);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 76,196.97514 v -2.97876"
+ id="path25947"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path25949"
+ d="M 52,194 H 76"
+ style="fill:none;stroke:url(#linearGradient1297);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ transform="translate(0,64)"
+ id="g25967">
+ <circle
+ r="3"
+ cy="198"
+ cx="52"
+ id="circle25955"
+ style="opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle25957"
+ cx="76"
+ cy="198"
+ r="3" />
+ <g
+ id="g25965">
+ <path
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient25973);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 52,196.97514 v -2.97876"
+ id="path25959"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path25961"
+ d="m 76,196.97514 v -2.97876"
+ style="fill:none;fill-opacity:1;stroke:url(#linearGradient25975);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;stroke:url(#linearGradient25977);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 52,194 H 76"
+ id="path25963"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+ </g>
+ </g>
+ <g
+ style="display:inline;enable-background:new"
+ id="g1207">
+ <rect
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1049);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1041"
+ width="88"
+ height="58"
+ x="20"
+ y="234"
+ rx="8"
+ ry="8" />
+ <rect
+ ry="8"
+ rx="8"
+ y="180"
+ x="20"
+ height="108"
+ width="88"
+ id="rect15435-6"
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1167"
+ width="80"
+ height="98"
+ x="24"
+ y="186"
+ rx="4"
+ ry="4" />
+ <rect
+ ry="4"
+ rx="4"
+ y="184"
+ x="24"
+ height="98"
+ width="80"
+ id="rect15441-8"
+ style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="0"
+ rx="0"
+ y="216"
+ x="24"
+ height="2"
+ width="80"
+ id="rect15443-6"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="0"
+ rx="0"
+ y="248"
+ x="24"
+ height="2"
+ width="80"
+ id="rect15461-2"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <g
+ id="g1088">
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1348);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ d="m 55,196 h 18 c 1.662,0 3,1 3,3 v 5 H 72.03125 L 72,200 H 56 l 0.03125,4 H 52 v -5 c 0,-1.662 1.338,-3 3,-3 z"
+ id="path26035"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssccccccss" />
+ <rect
+ rx="1.5"
+ ry="1.5"
+ y="202"
+ x="52"
+ height="4"
+ width="24"
+ id="rect1059"
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ssccccccsss"
+ inkscape:connector-curvature="0"
+ id="rect1061"
+ d="m 55,200 c -1.662,0 -3,1.338 -3,3 v 1 h 4 v -2 h 16 v 2 h 4 v -1 c 0,-1.662 -1.338,-3 -3,-3 z"
+ style="opacity:1;fill:url(#linearGradient1350);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1189"
+ width="16"
+ height="2"
+ x="56"
+ y="202" />
+ </g>
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(0,32)"
+ id="use1090"
+ xlink:href="#g1088"
+ y="0"
+ x="0" />
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g1088"
+ id="use1092"
+ transform="translate(0,64)"
+ width="100%"
+ height="100%" />
+ </g>
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#241f31;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+ id="path7449"
+ d="m 243.27754,172 c -1.20512,0 -2.1875,1.01795 -2.1875,2.21875 v 11.5625 c 0,1.2008 0.98238,2.21875 2.1875,2.21875 h 9.625 c 1.20512,0 2.1875,-1.01795 2.1875,-2.21875 v -11.5625 c 0,-1.2008 -0.98238,-2.21875 -2.1875,-2.21875 z m -0.1875,3 h 10 v 11 h -10 z m 1,1 v 4 h 8.03125 v -4 z m 2.34375,1.4375 a 0.50004997,0.50004997 0 0 1 0.0625,0 0.50004997,0.50004997 0 0 1 0.59375,0.5 V 178 h 2 v -0.0625 a 0.50004997,0.50004997 0 1 1 1,0 V 178 c 0,0.54535 -0.45465,1 -1,1 h -2 c -0.54535,0 -1,-0.45465 -1,-1 v -0.0625 a 0.50004997,0.50004997 0 0 1 0.34375,-0.5 z M 244.12129,181 v 4 h 8.03125 v -4 z m 2.3125,1.4375 a 0.50004997,0.50004997 0 0 1 0.0625,0 0.50004997,0.50004997 0 0 1 0.59375,0.5 V 183 h 2 v -0.0625 a 0.50004997,0.50004997 0 1 1 1,0 V 183 c 0,0.54535 -0.45465,1 -1,1 h -2 c -0.54535,0 -1,-0.45465 -1,-1 v -0.0625 a 0.50004997,0.50004997 0 0 1 0.34375,-0.5 z"
+ inkscape:connector-curvature="0" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.67806941;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 222.65254,173 c -0.82843,0 -1.5,0.67157 -1.5,1.5 v 5.5 5.5 c 0,0.82843 0.67157,1.5 1.5,1.5 h 1.5 v -1 h -0.0879 c -0.5463,-0.002 -0.91211,-0.4489 -0.91211,-1 v -5 -5 c 0,-0.5511 0.36581,-0.99832 0.91211,-1 h 0.0879 v -1 z"
+ id="rect7451"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="174"
+ x="-266.15256"
+ height="12"
+ width="2"
+ id="rect7457"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.00157487;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="scale(-1,1)" />
+ <rect
+ y="186"
+ x="-265.15256"
+ height="1"
+ width="2"
+ id="rect7459"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.00157487;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="scale(-1,1)" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.00157487;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect7461"
+ width="2"
+ height="1"
+ x="-265.15256"
+ y="173"
+ transform="scale(-1,1)" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.41644073;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect7463"
+ width="4"
+ height="2"
+ x="226.15256"
+ y="175" />
+ <rect
+ y="179"
+ x="226.15256"
+ height="2"
+ width="4"
+ id="rect7465"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.41644073;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.41644073;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect7467"
+ width="4"
+ height="2"
+ x="226.15256"
+ y="183" />
+ <circle
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.00157487;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle7473"
+ cx="265.15256"
+ cy="186"
+ r="1" />
+ <circle
+ r="1"
+ cy="174"
+ cx="265.15256"
+ id="circle7475"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:1.00157487;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path7484"
+ d="m 233.65254,173 c 0.82843,0 1.5,0.67157 1.5,1.5 v 5.5 5.5 c 0,0.82843 -0.67157,1.5 -1.5,1.5 h -1.5 v -1 h 0.0879 c 0.5463,-0.002 0.91211,-0.4489 0.91211,-1 v -5 -5 c 0,-0.5511 -0.36581,-0.99832 -0.91211,-1 h -0.0879 v -1 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.67806941;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#241f31;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+ d="M 163.1875,172 C 161.98238,172 161,172.7992 161,174 v 12 c 0,1.2008 0.98238,2 2.1875,2 h 9.625 c 1.20512,0 2.1875,-1.01795 2.1875,-2.21875 v -11.5625 C 175,173.01795 174.01762,172 172.8125,172 Z M 163,173 h 10 v 13 h -10 z m 1,1 v 5 h 8.03125 v -5 z m 3,2 h 2 c 0.54535,0 1,0.45465 1,1 h -1 -2 -1 c 0,-0.54535 0.45465,-1 1,-1 z m -2.96875,4 v 5 h 8.03125 v -5 z M 167,182 h 2 c 0.54535,0 1,0.45465 1,1 h -1 -2 -1 c 0,-0.54535 0.45465,-1 1,-1 z"
+ id="path7486"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccccccccssccccscccccssccccs" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="grid"
+ style="display:none"
+ sodipodi:insensitive="true">
+ <circle
+ cx="64.000031"
+ cy="236"
+ r="59.504131"
+ id="circle2892"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="7.9292889"
+ rx="8.701004"
+ y="180.49496"
+ x="20.495007"
+ height="111.01005"
+ width="87.009987"
+ id="rect2894"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="7.9238095"
+ rx="7.9238095"
+ y="184.49524"
+ x="12.495266"
+ height="103.00952"
+ width="103.00952"
+ id="rect2896"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="8.701005"
+ rx="7.9292889"
+ y="200.49496"
+ x="8.4950066"
+ height="87.010048"
+ width="111.01004"
+ id="rect2898"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path2900"
+ d="M 2.6203015e-5,288.99999 H 128.00003"
+ style="display:inline;fill:none;stroke:#62a0ea;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ </g>
+ </g>
+</svg>
diff --git a/data/org.gnome.Nautilus.appdata.xml.in.in b/data/org.gnome.Nautilus.appdata.xml.in.in
new file mode 100644
index 0000000..a8074a4
--- /dev/null
+++ b/data/org.gnome.Nautilus.appdata.xml.in.in
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop-application">
+ <id>@appid@.desktop</id>
+ <metadata_license>CC0-1.0</metadata_license>
+ <name>Files</name>
+ <summary>Access and organize files</summary>
+ <description>
+ <p>
+ Files, also known as Nautilus, is the default file manager of the GNOME desktop.
+ It provides a simple and integrated way of managing your files and browsing your file system.
+ </p>
+ <p>
+ Nautilus supports all the basic functions of a file manager and more.
+ It can search and manage your files and folders, both locally and on a network,
+ read and write data to and from removable media, run scripts, and launch applications.
+ It has three views: Icon Grid, Icon List, and Tree List.
+ Its functions can be extended with plugins and scripts.
+ </p>
+ </description>
+ <categories>
+ <category>System</category>
+ </categories>
+ <url type="bugtracker">https://gitlab.gnome.org/GNOME/nautilus/issues</url>
+ <url type="donation">https://www.gnome.org/support-gnome/</url>
+ <url type="help">https://wiki.gnome.org/action/show/Apps/Nautilus</url>
+ <url type="homepage">https://wiki.gnome.org/action/show/Apps/Nautilus</url>
+ <url type="translate">https://wiki.gnome.org/TranslationProject</url>
+ <launchable type="desktop-id">@appid@.desktop</launchable>
+ <releases>
+ <release version="43.2" date="2023-01-08" />
+ </releases>
+ <project_group>GNOME</project_group>
+ <project_license>GPL-3.0-or-later</project_license>
+ <developer_name>The GNOME Project</developer_name>
+ <screenshots>
+ <screenshot type="default">
+ <image>https://static.gnome.org/appdata/gnome-43/files/files-grid.png</image>
+ <caption>Grid View</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://static.gnome.org/appdata/gnome-43/files/files-list.png</image>
+ <caption>List View</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://static.gnome.org/appdata/gnome-43/files/files-search.png</image>
+ <caption>Search</caption>
+ </screenshot>
+ <screenshot>
+ <image>https://static.gnome.org/appdata/gnome-43/files/files-other-locations.png</image>
+ <caption>Other Locations</caption>
+ </screenshot>
+ </screenshots>
+ <update_contact>nautilus-list@gnome.org</update_contact>
+ <translation type="gettext">nautilus</translation>
+ <kudos>
+ <kudo>HiDpiIcon</kudo>
+ <kudo>ModernToolkit</kudo>
+ <kudo>Notifications</kudo>
+ <kudo>SearchProvider</kudo>
+ </kudos>
+</component>
+
diff --git a/data/org.gnome.Nautilus.desktop.in.in b/data/org.gnome.Nautilus.desktop.in.in
new file mode 100644
index 0000000..c5ef071
--- /dev/null
+++ b/data/org.gnome.Nautilus.desktop.in.in
@@ -0,0 +1,20 @@
+[Desktop Entry]
+Name=Files
+Comment=Access and organize files
+# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
+Keywords=folder;manager;explore;disk;filesystem;nautilus;
+Exec=nautilus --new-window %U
+# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
+Icon=@icon@
+Terminal=false
+Type=Application
+DBusActivatable=true
+StartupNotify=true
+Categories=GNOME;GTK;Utility;Core;FileManager;
+MimeType=inode/directory;application/x-7z-compressed;application/x-7z-compressed-tar;application/x-bzip;application/x-bzip-compressed-tar;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-gzip;application/x-lha;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-tar;application/x-tarz;application/x-xar;application/x-xz;application/x-xz-compressed-tar;application/zip;application/gzip;application/bzip2;application/vnd.rar;
+X-GNOME-UsesNotifications=true
+Actions=new-window;
+
+[Desktop Action new-window]
+Name=New Window
+Exec=nautilus --new-window
diff --git a/data/org.gnome.Nautilus.search-provider.ini.in b/data/org.gnome.Nautilus.search-provider.ini.in
new file mode 100644
index 0000000..0ef7f79
--- /dev/null
+++ b/data/org.gnome.Nautilus.search-provider.ini.in
@@ -0,0 +1,5 @@
+[Shell Search Provider]
+DesktopId=@appid@.desktop
+BusName=@appid@
+ObjectPath=/org/gnome/Nautilus@profile@/SearchProvider
+Version=2
diff --git a/data/org.gnome.Nautilus.service.in b/data/org.gnome.Nautilus.service.in
new file mode 100644
index 0000000..55505ef
--- /dev/null
+++ b/data/org.gnome.Nautilus.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=@appid@
+Exec=@bindir@/nautilus --gapplication-service
diff --git a/data/org.gnome.nautilus.gschema.xml b/data/org.gnome.nautilus.gschema.xml
new file mode 100644
index 0000000..b91a90c
--- /dev/null
+++ b/data/org.gnome.nautilus.gschema.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schemalist>
+ <enum id="org.gnome.nautilus.SpeedTradeoff">
+ <value value="0" nick="always"/>
+ <value value="1" nick="local-only"/>
+ <value value="2" nick="never"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.ClickPolicy">
+ <value value="0" nick="single"/>
+ <value value="1" nick="double"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.ActivationChoice">
+ <value value="0" nick="launch"/>
+ <value value="1" nick="display"/>
+ <value value="2" nick="ask"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.FolderView">
+ <value value="1" nick="list-view"/>
+ <value value="2" nick="icon-view"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.SortOrder">
+ <!--
+ When touching this, make sure to keep the values in sync with the
+ #NautilusFileSortType enum in the `src/nautilus-file.h` code header file.
+ -->
+ <value value="0" nick="name"/>
+ <value value="1" nick="size"/>
+ <value value="2" nick="type"/>
+ <value value="3" nick="mtime"/>
+ <value value="4" nick="atime"/>
+ <value value="5" nick="btime"/>
+ <value value="6" nick="starred"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.GridZoomLevel">
+ <value value="0" nick="small"/>
+ <value value="1" nick="small-plus"/>
+ <value value="2" nick="medium"/>
+ <value value="3" nick="large"/>
+ <value value="4" nick="extra-large"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.ListZoomLevel">
+ <value value="0" nick="small"/>
+ <value value="1" nick="medium"/>
+ <value value="2" nick="large"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.SearchFilterTimeType">
+ <value value="0" nick="last_modified"/>
+ <value value="1" nick="last_used"/>
+ <value value="2" nick="created"/>
+ </enum>
+
+ <enum id="org.gnome.nautilus.CompressionFormat">
+ <value value="0" nick="zip"/>
+ <value value="1" nick="tar.xz"/>
+ <value value="2" nick="7z"/>
+ <value value="3" nick="encrypted_zip"/>
+ </enum>
+
+ <schema path="/org/gnome/nautilus/" id="org.gnome.nautilus" gettext-domain="nautilus">
+ <child schema="org.gnome.nautilus.preferences" name="preferences"/>
+ <child schema="org.gnome.nautilus.compression" name="compression"/>
+ <child schema="org.gnome.nautilus.icon-view" name="icon-view"/>
+ <child schema="org.gnome.nautilus.list-view" name="list-view"/>
+ <child schema="org.gnome.nautilus.window-state" name="window-state"/>
+ </schema>
+
+ <schema path="/org/gnome/nautilus/preferences/" id="org.gnome.nautilus.preferences" gettext-domain="nautilus">
+ <key type="b" name="always-use-location-entry">
+ <default>false</default>
+ <summary>Always use the location entry, instead of the pathbar</summary>
+ <description>If set to true, then Nautilus browser windows will always use a textual input entry for the location toolbar, instead of the pathbar.</description>
+ </key>
+ <key name="recursive-search" enum="org.gnome.nautilus.SpeedTradeoff">
+ <default>'local-only'</default>
+ <summary>Where to perform recursive search</summary>
+ <description>In which locations Nautilus should search on subfolders. Available values are “local-only”, “always”, “never”.</description>
+ </key>
+ <key name="search-filter-time-type" enum="org.gnome.nautilus.SearchFilterTimeType">
+ <default>'last_modified'</default>
+ <summary>Filter the search dates using either last used or last modified</summary>
+ <description>Filter the search dates using either last used or last modified.</description>
+ </key>
+ <key type="b" name="show-delete-permanently">
+ <default>false</default>
+ <summary>Whether to show a context menu item to delete permanently</summary>
+ <description>If set to true, then Nautilus will show a delete permanently context menu item to bypass the Trash.</description>
+ </key>
+ <key type="b" name="show-create-link">
+ <default>false</default>
+ <summary>Whether to show context menu items to create links from copied or selected files</summary>
+ <description>If set to true, then Nautilus will show context menu items to create links from the copied or selected files.</description>
+ </key>
+ <key name="show-directory-item-counts" enum="org.gnome.nautilus.SpeedTradeoff">
+ <aliases><alias value='local_only' target='local-only'/></aliases>
+ <default>'local-only'</default>
+ <summary>When to show number of items in a folder</summary>
+ <description>Speed tradeoff for when to show the number of items in a folder. If set to “always” then always show item counts, even if the folder is on a remote server. If set to “local-only” then only show counts for local file systems. If set to “never” then never bother to compute item counts.</description>
+ </key>
+ <key name="click-policy" enum="org.gnome.nautilus.ClickPolicy">
+ <default>'double'</default>
+ <summary>Type of click used to launch/open files</summary>
+ <description>Possible values are “single” to launch files on a single click, or “double” to launch them on a double click.</description>
+ </key>
+ <key type="b" name="install-mime-activation">
+ <default>true</default>
+ <summary>Show the package installer for unknown MIME types</summary>
+ <description>Whether to show the user a package installer dialog in case an unknown MIME type is opened, in order to search for an application to handle it.</description>
+ </key>
+ <key type="b" name="mouse-use-extra-buttons">
+ <default>true</default>
+ <summary>Use extra mouse button events in Nautilus’ browser window</summary>
+ <description>For users with mice that have “Forward” and “Back” buttons, this key will determine if any action is taken inside of Nautilus when either is pressed.</description>
+ </key>
+ <key type="i" name="mouse-forward-button">
+ <default>9</default>
+ <summary>Mouse button to activate the “Forward” command in browser window</summary>
+ <description>For users with mice that have buttons for “Forward” and “Back”, this key will set which button activates the “Forward” command in a browser window. Possible values range between 6 and 14.</description>
+ </key>
+ <key type="i" name="mouse-back-button">
+ <default>8</default>
+ <summary>Mouse button to activate the “Back” command in browser window</summary>
+ <description>For users with mice that have buttons for “Forward” and “Back”, this key will set which button activates the “Back” command in a browser window. Possible values range between 6 and 14.</description>
+ </key>
+ <key name="show-image-thumbnails" enum="org.gnome.nautilus.SpeedTradeoff">
+ <aliases><alias value='local_only' target='local-only'/></aliases>
+ <default>'local-only'</default>
+ <summary>When to show thumbnails of files</summary>
+ <description>Speed trade-off for when to show a file as a thumbnail. If set to “always” then always thumbnail, even if the folder is on a remote server. If set to “local-only” then only show thumbnails for local file systems. If set to “never” then never bother to thumbnail files, just use a generic icon. Despite what the name may suggest, this applies to any previewable file type.</description>
+ </key>
+ <key type="t" name="thumbnail-limit">
+ <range max="5000"/>
+ <default>50</default>
+ <summary>Maximum image size for thumbnailing</summary>
+ <description>Images over this size (in megabytes) won’t be thumbnailed. The purpose of this setting is to avoid thumbnailing large images that may take a long time to load or use lots of memory.</description>
+ </key>
+ <key name="default-sort-order" enum="org.gnome.nautilus.SortOrder">
+ <aliases>
+ <alias value='modification_date' target='mtime'/>
+ </aliases>
+ <default>'name'</default>
+ <summary>Default sort order</summary>
+ <description>The default sort-order for items in the icon view. Possible values are “name”, “size”, “type”, “mtime”, “atime” and “starred”.</description>
+ </key>
+ <key type="b" name="default-sort-in-reverse-order">
+ <default>false</default>
+ <summary>Reverse sort order in new windows</summary>
+ <description>If true, files in new windows will be sorted in reverse order. I.e., if sorted by name, then instead of sorting the files from “a” to “z”, they will be sorted from “z” to “a”; if sorted by size, instead of being incrementally they will be sorted decrementally.</description>
+ </key>
+ <key name="default-folder-viewer" enum="org.gnome.nautilus.FolderView">
+ <aliases>
+ <alias value='icon_view' target='icon-view'/>
+ <alias value='compact_view' target='icon-view'/>
+ <alias value='compact-view' target='icon-view'/>
+ <alias value='list_view' target='list-view'/>
+ </aliases>
+ <default>'icon-view'</default>
+ <summary>Default folder viewer</summary>
+ <description>When a folder is visited this viewer is used. Possible values are “list-view”, and “icon-view”.</description>
+ </key>
+ <key type="b" name="show-hidden-files">
+ <default>false</default>
+ <summary>Whether to show hidden files</summary>
+ <description>This key is deprecated and ignored. The “show-hidden” key from “org.gtk.Settings.FileChooser” is now used instead.</description>
+ </key>
+ <key type="b" name="migrated-gtk-settings">
+ <default>false</default>
+ </key>
+ <key name="search-view" enum="org.gnome.nautilus.FolderView">
+ <default>'list-view'</default>
+ <summary>What viewer should be used when searching</summary>
+ <description>When searching Nautilus will switch to the type of view in this setting.</description>
+ </key>
+ <key type="b" name="open-folder-on-dnd-hover">
+ <default>true</default>
+ <summary>Whether to open the hovered folder after a timeout when drag and drop operation</summary>
+ <description>If this is set to true, when performing a drag and drop operation the hovered folder will open automatically after a timeout.</description>
+ </key>
+ <key type="b" name="fts-enabled">
+ <default>true</default>
+ <summary>Whether to have full text search enabled by default when opening a new window/tab</summary>
+ <description>If set to true, then Nautilus will also match the file contents besides the name. This toggles the default active state, which can still be overridden in the search popover</description>
+ </key>
+ </schema>
+
+ <schema path="/org/gnome/nautilus/compression/" id="org.gnome.nautilus.compression" gettext-domain="nautilus">
+ <key name="default-compression-format" enum="org.gnome.nautilus.CompressionFormat">
+ <default>'zip'</default>
+ <summary>Default format for compressing files</summary>
+ <description>The format that will be selected when compressing files.</description>
+ </key>
+ </schema>
+
+ <schema path="/org/gnome/nautilus/icon-view/" id="org.gnome.nautilus.icon-view" gettext-domain="nautilus">
+ <key type="as" name="captions">
+ <default>[ 'none', 'none', 'none' ]</default>
+ <summary>List of possible captions on icons</summary>
+ <description>A list of captions below an icon in the icon view. The actual number of captions shown depends on the zoom level. Some possible values are: “size”, “type”, “date_modified”, “owner”, “group”, “permissions”, and “mime_type”.</description>
+ </key>
+ <key name="default-zoom-level" enum="org.gnome.nautilus.GridZoomLevel">
+ <aliases>
+ <alias value='standard' target='small-plus'/>
+ <alias value='larger' target='extra-large'/>
+ <alias value='largest' target='extra-large'/>
+ </aliases>
+ <default>'medium'</default>
+ <summary>Default icon view zoom level</summary>
+ </key>
+ </schema>
+
+ <schema path="/org/gnome/nautilus/list-view/" id="org.gnome.nautilus.list-view" gettext-domain="nautilus">
+ <key name="default-zoom-level" enum="org.gnome.nautilus.ListZoomLevel">
+ <aliases>
+ <alias value='standard' target='medium'/>
+ <alias value='larger' target='large'/>
+ </aliases>
+ <default>'medium'</default>
+ <summary>Default list view zoom level</summary>
+ </key>
+ <key type="as" name="default-visible-columns">
+ <default>[ 'name', 'size', 'date_modified' ]</default>
+ <summary>Columns visible in list view</summary>
+ </key>
+ <key type="as" name="default-column-order">
+ <default>[ 'name', 'size', 'type', 'owner', 'group', 'permissions', 'mime_type', 'where', 'date_modified', 'date_modified_with_time', 'date_accessed', 'date_created', 'recency', 'starred' ]</default>
+ <summary>Column order in list view</summary>
+ </key>
+ <key type="b" name="use-tree-view">
+ <default>false</default>
+ <summary>Use tree view</summary>
+ <description>Whether a tree should be used for list view navigation instead of a flat list.</description>
+ </key>
+ </schema>
+
+ <schema path="/org/gnome/nautilus/window-state/" id="org.gnome.nautilus.window-state" gettext-domain="nautilus">
+ <key type="(ii)" name="initial-size">
+ <default>(890, 550)</default>
+ <summary>Initial size of the window</summary>
+ <description>A tuple containing the initial width and height of the application window.</description>
+ </key>
+ <key type="b" name="maximized">
+ <default>false</default>
+ <summary>Whether the navigation window should be maximized</summary>
+ <description>Whether the navigation window should be maximized by default.</description>
+ </key>
+ <key type="b" name="start-with-location-bar">
+ <default>true</default>
+ <summary>Show location bar in new windows</summary>
+ <description>If set to true, newly opened windows will have the location bar visible.</description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/data/shell-search-provider-dbus-interfaces.xml b/data/shell-search-provider-dbus-interfaces.xml
new file mode 100644
index 0000000..f6840e2
--- /dev/null
+++ b/data/shell-search-provider-dbus-interfaces.xml
@@ -0,0 +1,44 @@
+<!DOCTYPE node PUBLIC
+"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+
+<!--
+ This library 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 2 of the License, or (at your option) any later version.
+
+ This library 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 this library; if not, see <http://www.gnu.org/licenses/>.
+-->
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <interface name='org.gnome.Shell.SearchProvider2'>
+ <method name='GetInitialResultSet'>
+ <arg type='as' name='Terms' direction='in' />
+ <arg type='as' name='Results' direction='out' />
+ </method>
+ <method name = 'GetSubsearchResultSet'>
+ <arg type='as' name='PreviousResults' direction='in' />
+ <arg type='as' name='Terms' direction='in' />
+ <arg type='as' name='Results' direction='out' />
+ </method>
+ <method name = 'GetResultMetas'>
+ <arg type='as' name='Results' direction='in' />
+ <arg type='aa{sv}' name='Metas' direction='out' />
+ </method>
+ <method name = 'ActivateResult'>
+ <arg type='s' name='Result' direction='in' />
+ <arg type='as' name='Terms' direction='in' />
+ <arg type='u' name='Timestamp' direction='in' />
+ </method>
+ <method name = 'LaunchSearch'>
+ <arg type='as' name='Terms' direction='in' />
+ <arg type='u' name='Timestamp' direction='in' />
+ </method>
+ </interface>
+</node>
diff --git a/data/tracker/meson.build b/data/tracker/meson.build
new file mode 100644
index 0000000..5320af1
--- /dev/null
+++ b/data/tracker/meson.build
@@ -0,0 +1,31 @@
+# Files needed for running Tracker inside the Flatpak sandbox, for systems
+# which don't have a suitable version of Tracker in the host OS.
+#
+# We must export the .service files from the sandbox so they work on the
+# session bus. This means the Tracker domain name must correspond with the
+# application ID.
+
+domain_ontologies_dir = get_option('datadir') / 'tracker3' / 'domain-ontologies'
+dbus_services_dir = get_option('datadir') / 'dbus-1' / 'services'
+
+tracker_domain_config = configuration_data()
+tracker_domain_config.set('application_id', application_id)
+tracker_domain_config.set('domain_rule', get_option('prefix') / domain_ontologies_dir / application_id + '.domain.rule')
+
+configure_file(
+ input: 'org.gnome.Nautilus.domain.rule.in',
+ output: application_id + '.domain.rule',
+ configuration: tracker_domain_config,
+ install_dir: domain_ontologies_dir)
+
+configure_file(
+ input: 'org.gnome.Nautilus.Tracker3.Miner.Extract.service.in',
+ output: application_id + '.Tracker3.Miner.Extract.service',
+ configuration: tracker_domain_config,
+ install_dir: dbus_services_dir)
+
+configure_file(
+ input: 'org.gnome.Nautilus.Tracker3.Miner.Files.service.in',
+ output: application_id + '.Tracker3.Miner.Files.service',
+ configuration: tracker_domain_config,
+ install_dir: dbus_services_dir)
diff --git a/data/tracker/org.gnome.Nautilus.Tracker3.Miner.Extract.service.in b/data/tracker/org.gnome.Nautilus.Tracker3.Miner.Extract.service.in
new file mode 100644
index 0000000..eb7a87a
--- /dev/null
+++ b/data/tracker/org.gnome.Nautilus.Tracker3.Miner.Extract.service.in
@@ -0,0 +1,7 @@
+[D-BUS Service]
+Name=@application_id@.Tracker3.Miner.Extract
+Exec=/app/libexec/tracker-extract-3 --domain-ontology @domain_rule@
+
+# Miner details needed for tracker-control
+Path=/org/freedesktop/Tracker3/Miner/Extract
+NameSuffix=Miner.Files
diff --git a/data/tracker/org.gnome.Nautilus.Tracker3.Miner.Files.service.in b/data/tracker/org.gnome.Nautilus.Tracker3.Miner.Files.service.in
new file mode 100644
index 0000000..4fa7371
--- /dev/null
+++ b/data/tracker/org.gnome.Nautilus.Tracker3.Miner.Files.service.in
@@ -0,0 +1,7 @@
+[D-BUS Service]
+Name=@application_id@.Tracker3.Miner.Files
+Exec=/app/libexec/tracker-miner-fs-3 --domain-ontology @domain_rule@ --initial-sleep 0
+
+# Miner details needed for tracker-control
+Path=/org/freedesktop/Tracker3/Miner/Files
+NameSuffix=Miner.Files
diff --git a/data/tracker/org.gnome.Nautilus.domain.rule.in b/data/tracker/org.gnome.Nautilus.domain.rule.in
new file mode 100644
index 0000000..ec0808e
--- /dev/null
+++ b/data/tracker/org.gnome.Nautilus.domain.rule.in
@@ -0,0 +1,21 @@
+# This defines a private Tracker domain for Nautilus.
+#
+# It's used to run the Tracker indexer inside a Flatpak sandbox, when Nautilus
+# is running on a host that doesn't have a suitable version of Tracker
+# installed.
+
+[DomainOntology]
+# Location for the Tracker database
+CacheLocation=$XDG_CACHE_HOME/nautilus/miner/files
+
+# Name of the ontology to use, must be one located in
+# $(sharedir)/tracker/ontologies
+OntologyName=nepomuk
+
+# DBus name for the owner (not optional). Tracker will use
+# the domain as the prefix of the DBus name for all the
+# services related to this domain ontology.
+Domain=@application_id@
+
+# List of miners we expect to run in this domain.
+Miners=Miner.Files;Miner.Extract