+
    {c/                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt]P                  ! 4        R^xR^dR^PR^<R^<R^(R^/t
R	t ! R
 R4      tR t ! R R4      t]R8X  Ed   ]P                   ! ]P"                  R7       ]! ]P&                  4      ^8  dm   ]! R]P&                  ^ ,          ,          4       ]! R]P&                  ^ ,          ,          4       ]! R]P&                  ^ ,          4       ]P*                  ! ^4       ]! ]P&                  R,          4      t]P/                  ]P&                  ^,          4       ]P0                  P3                  4        F  w  tt]P8                  ! ]: R]: 24       K!  	  R# R# )    Nmainuniversecontribznon-free-firmware
restrictedznon-free
multiversea  
           CREATE TABLE IF NOT EXISTS "commands" 
           (
            [cmdID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
            [pkgID] INTEGER NOT NULL,
            [command] TEXT,
            FOREIGN KEY ([pkgID]) REFERENCES "pkgs" ([pkgID])
           );
           CREATE TABLE IF NOT EXISTS "packages"
           (
            [pkgID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
            [name] TEXT,
            [version] TEXT,
            [component] TEXT,
            [priority] INTEGER
           );
           CREATE INDEX IF NOT EXISTS idx_commands_command ON commands (command);
           CREATE INDEX IF NOT EXISTS idx_packages_name ON packages (name);
c                   2   a  ] tR t^=t o R tR tR tRtV tR# )measurec                    Wn         W n        R # N)whatstats)selfr   r   s   &&&</usr/lib/python3/dist-packages/CommandNotFound/db/creator.py__init__measure.__init__>   s    	
    c                :    \         P                   ! 4       V n        R # r   )timenow)r   s   &r   	__enter__measure.__enter__A   s    99;r   c                   V P                   V P                  9   g   ^ V P                  V P                   &   V P                  V P                   ;;,          \        P                  ! 4       V P                  ,
          ,          uu&   R# )r   N)r   r   r   r   )r   argss   &*r   __exit__measure.__exit__C   sK    yyDJJ&$%DJJtyy!

499txx!77r   )r   r   r   N)	__name__
__module____qualname____firstlineno__r   r   r   __static_attributes____classdictcell____classdict__s   @r   r	   r	   =   s     8 8r   r	   c                      \         P                  ! V 4       R #   \         d,   pTP                  \        P                  8w  d   h  R p?R # R p?ii ; ir   )osremoveOSErrorerrnoENOENT)pathes   & r   rm_fr,   I   s:    
		$ 77ell" #s    A AAc                   h   a  ] tR t^Qt o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )	DbCreatorc                    Wn         \        P                  ! 4       ^ ,          V n        R^ R\        P                  ! 4       /V n        R# )r   total
total_timeN)filesapt_pkgget_architecturesprimary_archr   r   )r   r2   s   &&r   r   DbCreator.__init__R   s3    
#557:qtyy{;
r   c                   VR ,           pV P                  V4      '       g   \        P                  ! RV4       R# VR,           p\        P                  ! V4      ;_uu_ 4       p VP                  \        4       V P                  V4       RRR4       \        T4       \        P                  ! Y14       \!        TR4      ;_uu_ 4       p\"        P$                  ! T P'                  4       T4       RRR4       R#   \        P                   dJ   p\        T4      R8X  d3   \        P                  ! RT4       \        P                  ! ^ 4        Rp?LThRp?ii ; i  + '       g   i     L; i  + '       g   i     R# ; i)z	.metadataz0%s does not require an update (inputs unchanged)Nz.tmpzdatabase is lockedz*%s is locked by another process. Ignoring.w)_db_update_neededlogginginfosqlite3connectexecutescriptcreate_db_sql_fill_commandsOperationalErrorstrwarningsysexitr,   r%   renameopenjsondump_calc_input_metadata)r   dbnamemetadata_filetmpdbconr+   fps   &&     r   createDbCreator.createV   s   {*%%m44LLBFLv__U##s!!-0##C( $ 	]
		% -%%IId//126 &% ++ 	 q611OODeMHHQKKG		 $#& &%%sB   !E#&C6&E*6E=EEEEEE'	*E;	c                b   \         P                  P                  V4      '       g   R #  \        V4      ;_uu_ 4       p\        P
                  ! V4      pRRR4       XV P                  4       8g  #   + '       g   i     L#; i  \         d#   p\        P                  ! RY4        Rp?R # Rp?ii ; i)TNzcannot read %s: %s)
r%   r*   existsrG   rH   loadrJ   	Exceptionr:   rC   )r   rL   rO   metar+   s   &&   r   r9   DbCreator._db_update_neededr   s|    ww~~m,,	m$$yy} %444666 %$  	OO0-C	s.   B A.B .A>	9B B.B))B.c                    / pV P                    Fe  p\        P                  ! V4      pR VP                  RVP                  RVP
                  RVP                  RVP                  RVP                  /W&   Kg  	  V# )st_inost_devst_uidst_gidst_sizest_mtime)	r2   r%   statrY   rZ   r[   r\   r]   r^   )r   rV   psts   &   r   rJ   DbCreator._calc_input_metadata|   sh    AB"))"))"))"))2::BKKDG  r   c           	        V P                    F  p\        P                  ! R RV.\        P                  R7      ;_uu_ 4       pRV9   d   V P	                  WVP
                  4       MV P                  WP
                  4       VP                  4       ^ 8w  d2   \        P                  ! VP                  RP                  V4      R7      h RRR4       K  	  \        P                  ! 4       V P                  R,          ,
          V P                  R&   \        P                  ! RV P                  R	,          V P                  R,          3,          4       R#   + '       g   i     EKV  ; i)
z/usr/lib/apt/apt-helperzcat-file)stdoutContentsz#/usr/lib/apt/apt-helper cat-file {})
returncodecmdNr1   zprocessed %i packages in %.2fsr0   )r2   
subprocessPopenPIPE_parse_single_contents_filerd   _parse_single_commands_filewaitCalledProcessErrorrf   formatr   r   r:   r;   )r   rN   fsubs   &&  r   r@   DbCreator._fill_commands   s   A!!#<j!"LU_UdUdeeil?44SSZZH44S**E88:?$773>>=b=i=ijk=ln n # fe  $(99;L1I#I

< 5JJwL!99; ; 	< fees   BEE#c                H    VP                  R W#34      P                  4       pV# )z
            SELECT packages.pkgID, name, version 
            FROM commands 
            INNER JOIN packages on packages.pkgID = commands.pkgID
            WHERE commands.command=? AND packages.name=?;
            executefetchone)r   rN   commandpkgnamealready_in_dbs   &&&& r   _in_dbDbCreator._in_db   s1    
 #% &.XZ 	 r   c                R    VP                  R V34       VP                  RV34       R# )z"DELETE FROM packages WHERE pkgID=?z"DELETE FROM commands WHERE pkgID=?Nru   )r   rN   pkgids   &&&r   _delete_pkgidDbCreator._delete_pkgid   s$    85(D85(Dr   c                j    VP                  R V34      P                  4       pV'       d
   V^ ,          # R# )z'SELECT pkgID from packages WHERE name=?Nrt   )r   rN   rx   have_pkgs   &&& r   
_get_pkgidDbCreator._get_pkgid   s2    ;;5zCCK8: 	A;r   c                B    VP                  R W#WE34      pVP                  # )zt
            INSERT INTO packages (name, version, component, priority)
            VALUES (?, ?, ?, ?);
            )ru   	lastrowid)r   rN   rx   version	componentprioritycurs   &&&&&& r   _insert_packageDbCreator._insert_package   s+    KK  I8: }}r   c                ,    VP                  R W#34       R# )zF
        INSERT INTO commands (command, pkgID) VALUES (?, ?);
        Nr}   )r   rN   rw   pkg_ids   &&&&r   _insert_commandDbCreator._insert_command   s     	 r   c                X   \         P                  ! V4      pVP                  4       '       g   R # VP                  R,          pVP	                  R4      '       d   R # VP                  R,          pVP                  R,          pVR8w  d   W`P
                  8w  d   R # VP                  4       '       Ed   V P                  R;;,          ^,          uu&   VP                  R,          pVP                  P                  R4      '       d   VP                  R,          pVP                  P                  R	R
4      p\        4       p	VP                  P                  RR
4      '       d5   \        VP                  P                  RR
4      P                  R4      4      p	VP                  R,          P                  R4       EF	  p
W9   d   K  \        RV P                  4      ;_uu_ 4        V P                  WV4      pR R R 4       X'       d   \         P                  ! W^,          4      ^ 8  d^   \        P                  ! RV
,          4       \        RV P                  4      ;_uu_ 4        V P                  W^ ,          4       R R R 4       M!\        P                  ! RV
: RV: R24       K  \        P                  ! RV
: RV: RV: RV: R2	4       \        RV P                  4      ;_uu_ 4        V P!                  W4      pR R R 4       X'       g}   \"        P                  V^ 4      pV\%        VP                  P                  RR4      4      ,          p\        RV P                  4      ;_uu_ 4        V P'                  WWV4      pR R R 4       \        RV P                  4      ;_uu_ 4        V P)                  WV4       R R R 4       EK  	  EK,  R #   + '       g   i     EL; i  + '       g   i     ELK; i  + '       g   i     EL ; i  + '       g   i     L; i  + '       g   i     EKt  ; i)Nsuitez
-backportsr   archallr0   namezvisible-pkgnamer    zignore-commands,commandssql_already_dbz+replacing exiting %s in DB (higher version)sql_delete_already_in_db	skipping  from  (lower/same version)adding / ()sql_have_pkgzpriority-bonus0sql_insert_pkgsql_insert_cmd)r3   TagFilestepsectionendswithr5   r   getsetsplitr	   rz   version_comparer:   debugr   r   component_prioritiesintr   r   )r   rN   rO   tagfr   r   r   rx   r   ignore_commandsrw   ry   r   r   s   &&&           r   rl   %DbCreator._parse_single_commands_file   s   r"yy{{ll7#>>,'',,{+	\\&!5=T%6%66iikkJJw1$LL(G || 122,,'89LL$$Y3GEO|| 1266 #DLL$4$45F$K$Q$QRU$V W<<
399#>--tzz::"&++cG"DM ;  ..wa8HIAM&SV]&]^$%?LL ..s!4DE ML  T[]b&cd Wgu6 7 ^TZZ88!__S:F 9377	1EHDLL$4$45Es$K LLH !14::>>!%!5!5cGX`!a ?-tzz::((v> ;:5 ?   ;:: MLL 988
 ?>:::s<   OO'O0)P#POO-0PPP)c                    R pV EFn  pVP                  R4      pVP                  R4      '       gH   VP                  R4      '       g1   VP                  R4      '       g   VP                  R4      '       g   Ks   VP                  R ^4      w  rg\        P
                  P                  T4      pTP                  R4       EF  p TP                  4       P                  R^4      w  r\        T	P                  R4      4      ^8X  d   T	P                  R4      w  rMR	p
R p\        R
T P                  4      ;_uu_ 4        T P                  YT4      pR R R 4       X'       d#    \        P                   ! RT: RT: R24       K  \        P                   ! RT: RT: RT: RT: R2	4       \        RT P                  4      ;_uu_ 4        T P%                  Y4      pR R R 4       X'       gQ   \&        P)                  T
^ 4      p\        RT P                  4      ;_uu_ 4        T P+                  YYT4      pR R R 4       \        RT P                  4      ;_uu_ 4        T P-                  YT4       R R R 4       EK  	  EKq  	  R #   \         d     EK  i ; i  \         d    TP                  4       pRp	 ELi ; i  + '       g   i     ELn; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     EK@  ; i)Nzutf-8zusr/sbinzusr/binbinsbinr   r   unknownr   r   r   r   r   r   r   r   r   r   r   )decode
startswithr   
ValueErrorr%   r*   basenamestriprsplitlenr	   r   rz   r3   r   r:   r   r   r   r   r   r   r   )r   rN   rp   rO   r   lrw   pkgnamesrx   r   r   r   ry   r   r   s   &&&&           r   rk   %DbCreator._parse_single_contents_file   sC   A!ALL,,Y0G0GLL''1<<+?+?$%GGD!$4! gg&&w/G#>>#.('.}}'='=c1'E$G w}}S)*a/)0s);&Iw &I -tzz::"&++cG"DM ;  
  T[]b&cd Wgu6 7 ^TZZ88!__S:F 9377	1EH !14::>>!%!5!5cGX`!a ?-tzz::((v> ;:G /    " (%mmoG'G( ;:: 98 ?>:::sT   9I:"J9J1	K	K	K+	:J
	J
J.-J.1KKK(+K=)r2   r5   r   N)r   r   r   r   r   rP   r9   rJ   r@   rz   r   r   r   r   rl   rk   r    r!   r"   s   @r   r.   r.   Q   sH     <78	<E 7?r4? 4?r   r.   __main__)levelz%usage: %s <output-db-path> <files...>z. e.g.: %s commands.db ./dists/*/*/*/Commands-*zP e.g.: %s /var/lib/command-not-found/commands.db  /var/lib/apt/lists/*Commands-*:   NNz: )r(   rH   r:   r%   r<   rh   rD   r   r3   initr   r?   r	   r,   r.   r   basicConfigINFOr   argvprintrE   colrP   r   itemsr_   amountr    r   r   <module>r      sK      	   
    Cr"" :	8 	8O? O?d zgll+
388}q5CD>!LM`bebjbjklbmn
CHHRL
!CJJsxx{		)f$/0 * r   