ELF          >            @       r          @ 8  @                                                                                                            @       @       @      X)      X)                   j      z      z                               j      z      z      @      @                                                                                    $       $              Std                                            Ptd   @e      @e      @e                           Qtd                                                  Rtd   j      z      z      0      0                      GNU                      GNU ;j3D]~E&
/z    
   S         ` @P	(        S       U   V   W       X   Y   oNW>6gI{%-):Tez                                                 T                     ^                                                                                     :                                                               #                                                                  \                                          *                     +                                                                                                                                                                                               .                                          ]                     E                     *                     ,                                                                                      F   "                                                             D                                          T                                                                $                                                                                     5                     n                                           3                     k                                                               t                     P                                                               [                                          N                                                                                                          r                                                               t                                                               p                     c                                                               6                     U                      >                     :                                                                                                                                   ,      -           `8            }    p>      f       Y     -      v      l    p,             O    p                 ,      m        __gmon_start__ _ITM_deregisterTMCloneTable _ITM_registerTMCloneTable __cxa_finalize g_type_class_peek_parent g_quark_from_static_string g_type_class_adjust_private_offset g_intern_static_string peas_plugin_loader_get_type g_type_register_static_simple g_type_add_instance_private PyArg_ParseTuple g_strdup g_strchomp g_log PyErr_SetObject g_free __stack_chk_fail peas_python3_get_resource g_static_resource_get_resource g_static_resource_init g_static_resource_fini peas_plugin_loader_python_get_type g_once_init_enter g_once_init_leave peas_register_types peas_object_module_register_extension_type peas_python_internal_setup g_get_prgname PyImport_ImportModule g_resources_lookup_data g_bytes_get_data Py_CompileStringExFlags PyModule_New PyModule_AddStringConstant PyModule_AddObject _Py_FalseStruct PyModule_GetDict PyEval_EvalCode PyErr_Occurred _Py_TrueStruct g_warn_message g_bytes_unref PyDict_Clear _Py_Dealloc PyDict_GetItemString PyCMethod_New PyObject_SetAttrString Py_IsInitialized PyGILState_Ensure PySys_GetObject PyLong_AsLong PyObject_GetAttrString PyCapsule_Type PyCapsule_GetPointer _PyGObject_API PyExc_ImportError PyErr_SetString PyErr_Print Py_InitializeEx PyEval_InitThreads PyGILState_Release PyErr_Format PyEval_SaveThread PyErr_Fetch PyObject_Repr PyUnicode_FromFormat peas_python_internal_call Py_VaBuildValue PyObject_CallMethod _Py_NoneStruct PyErr_ExceptionMatches PyErr_Clear peas_plugin_info_get_module_dir peas_plugin_info_get_module_name PyModule_Type PyType_Type g_type_is_a g_return_if_fail_warning g_object_newv g_object_is_floating g_object_set_qdata peas_plugin_info_get_type g_type_name g_object_unref g_object_ref_sink peas_python_internal_shutdown PyEval_RestoreThread Py_Finalize libpeas-1.0.so.0 libglib-2.0.so.0 libgobject-2.0.so.0 libgio-2.0.so.0 libpython3.12.so.1.0 libc.so.6 GLIBC_2.4 GLIBC_2.2.5 $ORIGIN/../../libpeas                                                                                                              ii   !     ui	   +      z             p*      z             )      z             0*      z             )                                         3@      (             +      8             H      @             PI                                                                                                                                       "                    $                    '                    -                    ;                    X           H}                    P}                    X}                    `}                    h}                    p}                    x}                    }         	           }         
           }                    }                    }                    }                    }                    }                    }                    }                    }                    }                    }                    }                    }                    }                     ~                    ~                    ~                     ~         !            ~         #           (~         %           0~         &           8~         (           @~         )           H~         *           P~         +           X~         ,           `~         V           h~         .           p~         /           x~         0           ~         1           ~         2           ~         3           ~         4           ~         5           ~         U           ~         6           ~         7           ~         8           ~         T           ~         9           ~         :           ~         Y           ~         <           ~         =           ~         >                     ?                    @                    A                    B                     C           (         D           0         E           8         F           @         G           H         H           P         I           X         J           `         K           h         L           p         M           x         N                    O                    P                    Q                    R                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   HH_  HtH     5]  %]  @ h    fh   fh   fh   fh   fh   fh   fh   rfh   bfh	   Rfh
   Bfh   2fh   "fh   fh   fh   fh   fh   fh   fh   fh   fh   fh   fh   rfh   bfh   Rfh   Bfh   2fh   "fh   fh   fh   fh    fh!   fh"   fh#   fh$   fh%   fh&   fh'   rfh(   bfh)   Rfh*   Bfh+   2fh,   "fh-   fh.   fh/   fh0   fh1   fh2   fh3   fh4   fh5   fh6   fh7   rfh8   bfh9   Rfh:   Bfh;   2fh<   "fh=   fh>   fh?   fh@   fhA   fhB   fhC   fhD   fhE   fhF   fhG   rfhH   bfhI   RfhJ   Bf%Z  fD  %NX  fD  %FX  fD  %>X  fD  %6X  fD  %.X  fD  %&X  fD  %X  fD  %X  fD  %X  fD  %X  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %~W  fD  %vW  fD  %nW  fD  %fW  fD  %^W  fD  %VW  fD  %NW  fD  %FW  fD  %>W  fD  %6W  fD  %.W  fD  %&W  fD  %W  fD  %W  fD  %W  fD  %W  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %~V  fD  %vV  fD  %nV  fD  %fV  fD  %^V  fD  %VV  fD  %NV  fD  %FV  fD  %>V  fD  %6V  fD  %.V  fD  %&V  fD  %V  fD  %V  fD  %V  fD  %V  fD  %U  fD  H=V  H=V  0H=V  HV  H9tHU  Ht	        H=qV  H5jV  H)HH?HHHtHU  HtfD      =-V   u+UH=U   HtH=U  dV  ]     w    ff.     UHSHH{HU  U     H=?  zHs  HL  U  H  fHnHC0H  H   H  fHnH  flfHnHU     fHnflH      H]ÐH5UU  H1fff.     UH=  HSHHHHLj HA      H   HHT  HH]f.     UHH5L  HSHUHdH%(   HE11tBH}HLH     1HH1H=RT  1sHHEdH+%(   uH]1ff.     @ H=S  HT  HtHS       UHSHS  HHuHS  H]    HH HS  H] UHATSHILH[HA\] UHAWAVAUATSH}cH=  HHHO  HD6H}  11H=  IJIH  1HL=  A1LHǺ  IH  H=  HR  HHZ  H5  L{H5  <  L=  H=~R  LL  E̅   L=Q  L-k  H=KR  LL  L-^  H=*R  HL  L-E  HJ  H=R  LH?  H=Q  L=2  L-=  LLÅ  H=Q  )LHHIXHHtH xHH  WH  H7     11?    L=P  @ L  H  u   1H54      IxHI   LH=Q  HQ      HP      Ht$UHH=P  Hx	HHt1H[A\A]A^A_] f     Ly  H  [   1H5  nf.     1LfLNuID  H=IP  L!L  H  w   1H5  x L9  Hb  l   1H5  Of.     1L  H0  r   H5  LfH=O  LLnL  H  {   1H5z  HH=iO  LL.L  H  y   1H5:  H=)O  HLL  Hh     1H5  UH=N  LLL/  H(     1H5  H=N  LH~nL  H     1H5z  HH5  L!HRN  H   H5  LHCN  H   H+N  11H=M  [IH   L=  H=M  HL      IE x
HIE t'IfHIYLf.     LL  H     1H5  NL  H     1H5Z  (L  H     1H54  H=M  LL'L  Hb     1H5  Of.     UHAVAUATSH dH%(   HE1HcL  H~  qAH=q  "H
H=  H=\  IH  H5X  HIH  HtK  I9E   H5$  LHK  HIE xHIE   H5  LLIH  HHMHU1LEH5  3  IE xHIE uLDMEA  .  /uTUЅyM  fD  HJ  H52  H8IE xHIE D  I$xHI$~  	H   H     11Ht11H     C   K1HUdH+%(     He[A\A]A^]    1E1KD  H     11CsfD     CuHI  H   C1@1C   DZ   IDH6 L L UHI  E1H5T  H9R/      P1fI$ZY| Lu Hi kH   HUHuH}H}hH}IHtHxHH  H}HtHxHH   H}HtHxHH   LH=t  1}IHHH  LH8IE fD  HG  H5Z  H8D  HG  H5j  H8ID  HG  H5  H8IE HG  H5b  H8I$D:0fD  UHAUIATIHSH   HHLPLXt&)`)p)U)])e)m)u)}dH%(   H(1M   HEHHǅ   HH0H H  ǅ0   HDBHHtzH=KG  ILMHd  H5c  1IHx	HHtbHupL;%F  tH(dH+%(      H   L[A\A]]     Hu.E1H9F  LhHHtfD  H=F  \t(뻐I$xHI$uLv@ H     116{ff.     UHAWIAVAUATSHHLc5:F  HAHIcHKMH5-E  IH  H=  1MIHt
HCCD7D1MH[A\A]A^A_]ff.     UHAUATISHHcE  HLkAt;I|$HtID$    Hx	HHt0HD[A\A]]^fD  11H=d  1@ f     UHSHH=C  111ZH]ff.      UHAVL5;D  AUIATSIHP@H5D  IH  IHH=  1HI$x
HI$thHt[IHP8IHx	HHtWM9u[LA\A]A^]fD  LLuH  H5  1@ E1 LfD  HM9t뱐UHAWMAVAUIATISHH^MLHAHu#E1DHL[A\A]A^A_]fD  uLHHIHtHo   5yC  LLFHB  LHPHB  IHL   LEL   LEHǹ   AH5  LHIuII$x
HI$t'IE +HIE LLfD  H1   Hj
  H1@[HtaLE1xLX UHAUATSHHLnHLAeDHJ1HH[A\A]]    U11H=  1HfH=A  HA      HA      DHH=A  Hx	HHt] ]f.     UHAUATISHHcA  Pt.LCubCt<H;HtCt	tsHgA  LH@0H[A\A]]@ ASD;H;Hu벐1L  H	  <  H5  OCy  HH                                                                           peas-extension-type PeasPluginLoaderPython s:Hooks.failed %s builtins peas-python-internal.py libpeas-internal code != ((void *)0) __file__ __builtins__ ALREADY_INITIALIZED PRGNAME libpeas-1.0 GETTEXT_PACKAGE /usr/share/locale PEAS_LOCALEDIR hooks FailedError internal_hooks != ((void *)0) FailedError != ((void *)0) failed_method != ((void *)0) hexversion gi._gobject gobject._PyGObject_API pygobject_version iii () (sOO) call (sss) load all_plugins_unloaded garbage_collect (OO) find_extension_type plugin_info exit priv->n_loaded_plugins == 0       /org/gnome/libpeas/loaders/python3/internal.py          builtins_module != ((void *)0)  ../loaders/python/peas-python-internal.c        internal_python != ((void *)0)  internal_module != ((void *)0)  PyModule_AddStringConstant (internal_module, "__file__", "peas-python-internal.py") == 0        PyModule_AddObject (internal_module, "__builtins__", builtins_module) == 0      PyModule_AddObject (internal_module, "ALREADY_INITIALIZED", already_initialized ? ((PyObject*)((&_Py_TrueStruct))) : ((PyObject*)((&_Py_FalseStruct)))) == 0    PyModule_AddStringConstant (internal_module, "PRGNAME", prgname) == 0   PyModule_AddStringConstant((internal_module), "GETTEXT_PACKAGE", ("libpeas-1.0")) == 0  PyModule_AddStringConstant((internal_module), "PEAS_LOCALEDIR", ("/usr/share/locale")) == 0     Failed to run internal Python code      PyObject_SetAttrString (internal_hooks, "failed", failed_method) == 0   Attempting to mix incompatible Python versions  could not import gobject (error was: %U)        could not import gobject (no error given)       could not import gobject (could not find _PyGObject_API object) could not import gobject (version too old)      could not import gobject (version has invalid format)   could not import gobject (version mismatch, %d.%d.%d is required, found %d.%d.%d)       Error initializing Python Plugin Loader: PyGObject initialization failed        Please check the installation of all the Python related packages required by libpeas and try again      Failed to run internal Python hook 'call'       g_type_is_a (the_type, exten_type)      Failed to set 'plugin_info' for '%s'    ../loaders/python/peas-plugin-loader-python.c   Prints warning and raises an Exception                  peas_python_internal_setup      peas_plugin_loader_python_finalize              find_python_extension_type      GVariant                 (                         uI       L       KP       L       z       L      Ե    L     86       L     Y      v (    $0      L     libpeas/   org/   python3/   /      loaders/   internal.py           # -*- coding: utf-8 -*-

#  Copyright (C) 2014-2015 - Garrett Regier
#
# libpeas 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.1 of the License, or (at your option) any later version.
#
# libpeas 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, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.

import gc
import gettext
import importlib
import os
import signal
import sys
import traceback

from gi.repository import GLib, GObject


# Derive from something not normally caught
class FailedError(BaseException):
    pass


class Hooks(object):
    def __init__(self):
        if not ALREADY_INITIALIZED:
            int_handler = signal.getsignal(signal.SIGINT)

            # Use the default handler instead of raising KeyboardInterrupt
            if int_handler == signal.default_int_handler:
                signal.signal(signal.SIGINT, signal.SIG_DFL)

        sys.argv = [PRGNAME]

        if os.name == 'nt':
            basedir = GLib.win32_get_package_installation_directory_of_module(None)
            peas_locale_dir = os.path.join (basedir, 'share', 'locale')
            gettext.install(GETTEXT_PACKAGE, peas_locale_dir)
        else:
            gettext.install(GETTEXT_PACKAGE, PEAS_LOCALEDIR)

        self.__module_cache = {}
        self.__extension_cache = {}

    @staticmethod
    def failed():
        # This is implemented by the plugin loader
        raise NotImplementedError('Hooks.failed()')

    @staticmethod
    def format_plugin_exception():
        formatted = traceback.format_exception(*sys.exc_info())

        # Remove all mentions of this file
        for i in range(len(formatted)):
            if __file__ in formatted[i]:
                while not formatted[i].startswith('Traceback'):
                    formatted[i] = ''
                    i -= 1

        return ''.join(formatted)

    def call(self, name, args, return_type):
        try:
            result = getattr(self, name)(*args)

        except FailedError:
            raise

        except:
            self.failed("Failed to run internal Python hook '%s':\n%s" %
                        (name, traceback.format_exc()))

        # We always allow None
        if result is not None and not isinstance(result, return_type):
            self.failed("Failed to run internal Python hook '%s': "
                        "expected %s, got %s" %
                        (name, return_type, result))

        return result

    def load(self, filename, module_dir, module_name):
        try:
            return self.__module_cache[filename]

        except KeyError:
            pass

        if module_name in sys.modules:
            self.__module_cache[filename] = None
            self.failed("Error loading plugin '%s': "
                        "module name '%s' has already been used" %
                        (filename, module_name))

        if module_dir not in sys.path:
            sys.path.insert(0, module_dir)

        try:
            module = importlib.import_module(module_name)

        except:
            module = None
            self.failed("Error importing plugin '%s':\n%s" %
                        (module_name, self.format_plugin_exception()))

        else:
            self.__extension_cache[module] = {}

        finally:
            self.__module_cache[filename] = module

        return module

    def find_extension_type(self, gtype, module):
        module_gtypes = self.__extension_cache[module]

        try:
            return module_gtypes[gtype]

        except KeyError:
            pass

        for key in getattr(module, '__all__', module.__dict__):
            value = getattr(module, key)

            try:
                value_gtype = value.__gtype__

            except AttributeError:
                continue

            if GObject.type_is_a(value_gtype, gtype):
                module_gtypes[gtype] = value
                return value

        module_gtypes[gtype] = None
        return None

    def garbage_collect(self):
        gc.collect()

    def all_plugins_unloaded(self):
        pass

    def exit(self):
        gc.collect()


if os.getenv('PEAS_PYTHON_PROFILE') is not None:
    import cProfile
    import pstats
    import threading
    import weakref


    class Hooks(Hooks):
        def __init__(self):
            super(Hooks, self).__init__()

            sort = os.getenv('PEAS_PYTHON_PROFILE', default='time')
            self.__stat_sort = sort.split(';')

            self.__stats = None
            self.__stats_lock = threading.Lock()

            self.__thread_refs = []
            self.__thread_local = threading.local()

            threading.setprofile(self.__init_thread)

            self.__profile = cProfile.Profile()
            self.__profile.enable()

        def __add_stats(self, profile):
            profile.disable()

            with self.__stats_lock:
                if self.__stats is None:
                    self.__stats = pstats.Stats(profile)

                else:
                    self.__stats.add(profile)

        def __init_thread(self, *unused):
            # Only call once per thread
            sys.setprofile(None)

            thread_profile = cProfile.Profile()

            def thread_finished(thread_ref):
                self.__add_stats(thread_profile)

                self.__thread_refs.remove(thread_ref)

            # Need something to weakref, the
            # current thread does not support it
            thread_ref = set()
            self.__thread_local.ref = thread_ref

            self.__thread_refs.append(weakref.ref(thread_ref,
                                                  thread_finished))

            # Only enable the profile at the end
            thread_profile.enable()

        def all_plugins_unloaded(self):
            super(Hooks, self).all_plugins_unloaded()

            self.__add_stats(self.__profile)

            with self.__stats_lock:
                stats = self.__stats.strip_dirs()
                stats.sort_stats(*self.__stat_sort)
                stats.print_stats()

            # Need to create a new profile to avoid adding the stats twice
            self.__profile = cProfile.Profile()
            self.__profile.enable()

        def exit(self):
            super(Hooks, self).exit()

            self.__profile.disable()


hooks = Hooks()

# ex:ts=4:et:
  (uuay)gnome/          ;              `  p  @8  PL   p    0  @    @  `p          0   p@  Pl    0               zR x  $         FJw ?9*3$"       D                 \                t                      ECA
B       f    AJEU              EMIp
A      p                        x       $   0  Dm    aCAc
H\     X  -    ECC]  ,   |  v   ECM
D   (        ECK
H (     |   ECBEN
I (     0    ECBJ  (   0      ECDHI
K      \  2    ECE`(   |  (    ACBIFt
G,        ECBGEH{
G        <I    ECE{$     hf    EPG
DA   (   $      ECDHV
F                                                                                                                                                                                                                                                                                                                                                                                               p*      )      0*      )                                                                                                          ?             z                           z                    o                              P      
       M                           0}                                                                        	                            o           o          o           o          o    	                               7                                                                      z                      0       @       P       `       p                                                                !      !       !      0!      @!      P!      `!      p!      !      !      !      !      !      !      !      !       "      "       "      0"      @"      P"      `"      p"      "      "      "      "      "      "      "      "       #      #       #      0#      @#      P#      `#      p#      #      #      #      #      #      #      #      #       $      $       $      0$      @$      P$      `$      p$      $      $      $      $      $      $                                                                                                                                     3@      +      !       H      PI                                    /usr/lib/debug/.dwz/x86_64-linux-gnu/libpeas-1.0-0.debug ǭ;JEhU9<tj@   3b6aa833449f895dcd7ec9459326e60a2f9b7a.debug    " .shstrtab .note.gnu.property .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt.got .plt.sec .text .fini .rodata .gresource.peas_python3 .eh_frame_hdr .eh_frame .init_array .fini_array .dynamic .data .bss .gnu_debugaltlink .gnu_debuglink                                                                                                                                                  $                              1   o                   \                             ;             P      P      p                          C                         M                             K   o                                               X   o                   0                            g                                                    q      B                                             {                                                           v                                                                      $      $                                                $      $                                               )      )                                                ?      ?                                                  @       @      K	                                           PI      PI                                                @e      @e                                                 f      f      P                                          z      j                                                z      j                                                z      j      @                                        0}      0m                                                       p      h                                            h      hp      @                                                   hp      M                                                   p      4                                                    p      $                             