+
    4Ssi&                     >   R t ^ RIt^ RIt^ RIt/ t/ R^bR^bR^bR^bR^bR^bR^bR	^bR
^bR^bR^bR^bR^bR^bR^bR^b]R&   / R^bR^bR^bR^bR^bR^bR^bR^bR^bR^bR^bR^bR^bR ^bR!^bR"^ b]R#&   R$^/]R%&   R&]P
                  ! R'4      P                  R(4      R)]P
                  ! R*4      P                  R(4      R+]P
                  ! R,4      P                  R(4      R-]P
                  ! R.4      P                  R(4      R/]P
                  ! R04      P                  R(4      R1]P
                  ! R24      P                  R(4      R3]P
                  ! R44      P                  R(4      /t]! . R@O4      t	R5 t
R6 tR7 tR8 tR9 tR: tR; tRAR< lt]R=8X  d=   ^ RIt ]P(                  ^,          t]P(                  ^,          t]! ]! ]]4      4       R# R#   ] dB    ]! R>]P(                  ^ ,          ,          ]P2                  R?7       ]P4                  ! ^4        LZi ; i)Bz&Generate LDIF from WSPP documentation.N	fATTINDEXfPDNTATTINDEXfANRfPRESERVEONDELETEfCOPYfTUPLEINDEXfSUBTREEATTINDEXfCONFIDENTIALfCONFIDENTAILfNEVERVALUEAUDITfRODCAttributefRODCFilteredAttributefRODCFILTEREDATTRIBUTEfEXTENDEDLINKTRACKING	fBASEONLYfPARTITIONSECRETsearchflagsFLAG_ATTR_NOT_REPLICATEDFLAG_CR_NTDS_NC FLAG_ATTR_REQ_PARTIAL_SET_MEMBERFLAG_CR_NTDS_DOMAINFLAG_ATTR_IS_CONSTRUCTEDFLAG_CR_NTDS_NOT_GC_REPLICATEDFLAG_ATTR_IS_OPERATIONALFLAG_SCHEMA_BASE_OBJECTFLAG_ATTR_IS_RDNFLAG_DISALLOW_MOVE_ON_DELETEFLAG_DOMAIN_DISALLOW_MOVEFLAG_DOMAIN_DISALLOW_RENAMEFLAG_CONFIG_ALLOW_LIMITED_MOVEFLAG_CONFIG_ALLOW_MOVEFLAG_CONFIG_ALLOW_RENAMEFLAG_DISALLOW_DELETEsystemflagsFLAG_ATTR_IS_CRITICALschemaflagsexz1.3.12.2.1011.28.0.702s	   +s >utf8z1.2.840.113556.1.1.1.12s
   *Hz2.6.6.1.2.5.11.29s   Vz1.2.840.113556.1.1.1.11s
   *Hz1.3.12.2.1011.28.0.714s	   +s Jz1.3.12.2.1011.28.0.732s	   +s \z1.2.840.113556.1.1.1.6s
   *Hc                j   Tp\         P                  ! R4      p V P                  4       pVR,          R8X  d   VR8w  d   VR8w  g   Q hW$,           pK9  VR8X  d   TpVR8X  d    W!3# KO  VR,          R8w  d:   VR8w  d3   VR8w  d,   VP                  V4      pV'       g   VR,           V,           pK  Tp W!3# )z,reads a line from an LDIF file, unfolding it&^([A-Za-z][A-Za-z0-9-]*[A-Za-z0-9])::?N   N  
#)recompilereadlinematch)fbufferlineattr_type_relms   &&    1/usr/lib/python3/dist-packages/samba/ms_schema.py__read_folded_liner:   Y   s    D::FGL
JJLR5C< 2:$$,/. 8D rz7 >!  R5C<AI!r'$**1-A#czA~ 
 >    c              #    "   ^ RI p\        P                  ! R4      pRp . p \        W4      w  rSVR,          R8X  d   K  VR8X  g   VR8X  d   MnVP	                  V4      pV'       d#   VR
R R8X  d   VRR
 pVP                  V4       Kh  \        RV,          RVP                  R	7       VP                  ! ^4       K  \        V4      '       d   Vx  VR8X  g   K  R# 5i)z)reads an LDIF entry, only unfolding linesNr(   r,   r)   r.   r-   zInvalid line: %sr+   )endfile)
sysr/   r0   r:   r2   appendprintstderrexitlen)r3   r@   r6   r4   entryr7   r8   s   &      r9   __read_raw_entriesrG      s      ::FGLF
,Q7KQu|DyAG""1%ARS6T>#2AQ(1,#CJJGu::K7s   A%C(A.CCc                B   V P                  R4      R8w  d7   V P                  RR4      p V P                  RR4      p V P                  RR4      # V P                  R4      '       d   V P                  RR4      # V P                  R	4      '       d   V P                  R
R4      # V # )z"fix a string DN to use ${SCHEMADN}z<RootDomainDN>
 r,   r+   z)CN=Schema,CN=Configuration,<RootDomainDN>z${SCHEMADN}zDC=XzCN=Schema,CN=Configuration,DC=XzCN=XzCN=Schema,CN=Configuration,CN=Xr?   )findreplaceendswith)dns   &r9   fix_dnrN      s     
ww B&ZZr"ZZR zzE}UU	V		zz;]KK	V		zz;]KK	r;   c                X   \        V\        4      '       g   Q hVP                  RR4      pVP                  RR4      p \        V4      p\        V4      #   \         dK    ^ pTP                  R4      pT F.  p\        T ,          T,          pT^^T,
          ,          ,          pK0  	   L_i ; i)z%Evaluate the OR expression in 'value'rI   r,   r+   |)
isinstancestrrK   int
ValueErrorsplit	bitFields)keyvalueoflagsr3   bitposs   &&    r9   __convert_bitfieldr\      s    eS!!"!MM%$EMM#r"E)J q6M  )C As^A&FQ2;'(A )s   A AB)(B)c                Z   . pV  F  p\        V^,          \        4      '       d   V^,          .pM	V^,          pV^,          '       d)   VP                  V^ ,          : RV^,          : 24       Kk  V F"  pVP                  V^ ,          : RV: 24       K$  	  K  	  RP                  V4      # )zWrite out entry as LDIFz:: : r-   )rQ   rR   rA   join)rF   outr7   vlvs   &    r9   __write_ldif_onerc      s    
CadC  A$B1BQ44JJAaDD!A$/0AJJ1Q44+,   99S>r;   c           	     P   V  Uu. uF  q"P                  R^4      NK  	  p pRpR;p;p;rgV  EF  pV^,          P                  R4      '       d&   VP                  R4       V^,          R,          V^&   MVP                  R4       V^ ,          P                  4       pV^,          P	                  4       V^&   V^,          P                  4       V^&   V'       g   VR8X  d
   V^,          pV\        9   dT   V^,          P                  RR4      V^&   V^,          P                  R	R4      V^&   V^,          P                  R
4      V^&   V\        9   d   \        W^,          4      V^&   VR8X  d:   V^,          '       g+   \        V^,          P                  4       ,          V^&   RV^&   \        V^,          \        4      '       d   \        V^,          4      V^&   VR8X  d   RpV^,          p	VR8X  d   RpEK  VR8X  d   RpEK  VR8X  g   EK  RpEK  	  V'       g   Q h. p
V'       g   V
P                  RRV,          R.4       MV
P                  RX	R.4       V'       g   V
P                  RRV.R.4       V'       g   V
P                  RVR.4       V'       g   V
P                  RVR.4       V
P                  R\        \        P                   ! 4       4      R.4       Y Uu. uF-  q^ ,          P                  4       \#        . RO4      9  g   K+  VNK/  	  up,           p V # u upi u upi )zvPerform transformations required to convert the LDIF-like schema
file entries to LDIF, including Samba-specific stuff.:r,   Fr^   T:   NNcnrI   r+   ,omobjectclassrM   objectclassadmindisplaynameadmindescriptionzCN=%s,${SCHEMADN}objectClasstopadminDescriptionadminDisplayName
objectGUID)rM   
changetypeobjectcategory)rU   
startswithrA   lowerlstriprstripmultivalued_attrsrK   rV   r\   oMObjectClassBERstriprQ   rR   rN   uuiduuid4set)rF   rm   r7   rg   skip_dnskip_objectclassskip_admin_descriptionskip_admin_display_namerW   rM   headerxs   &&          r9   __transform_entryr      s    ',,eWWS!_eE,	BTYYGYY!7Q4??4  HHTNQ48AaDHHUOdjjlt{{}!t{{}!cTk1B##Q4<<r*AaDQ4<<R(AaDQ4::c?AaD)%cQ40AaD/!Q44'!

5!!adC  !A$<AaD$;G1B-#&&&*#&&%)"S V J2Ft025u=>tR'(}uk&:EBC!)2u56")2u56
MM<TZZ\!2E:;jAA$**,cBh>i*iaajjELG -B ks   L (L#L#c                    . p^ RI Hp V! V RRR7      ;_uu_ 4       p\        V4       F&  pVP                  \	        \        WQ4      4      4       K(  	  RRR4       RP                  V4      #   + '       g   i     L!; i)z!Load and transform a schema file.)openrzlatin-1)encodingN

)ior   rG   rA   rc   r   r_   )filenamerm   r`   r   r3   rF   s   &&    r9   __parse_schema_filer   ,  sc     C	hi	0	0A'*EJJ'(9%(MNO + 
1 ;;s	 
1	0s   6A++A;	c                    RpRpV'       d   \        V R4      pV'       d   \        VR4      pVR,           V,           R,           # )z-Read WSPP documentation-derived schema files.r,   attributeSchemaclassSchemar   )r   )	attr_fileclasses_filedump_attributesdump_classesdebug	attr_ldifclasses_ldifs   &&&&&  r9   read_ms_schemar   9  sB     IL'	3DE	*<Gv,v55r;   __main__z(Usage: %s attr-file.txt classes-file.txt)r>   )auxiliaryclass
maycontainmustcontainposssuperiorssystemauxiliaryclasssystemmaycontainsystemmustcontainsystemposssuperiors)TTF)__doc__r/   base64r{   rV   	b64encodedecodery   r}   rx   r:   rG   rN   r\   rc   r   r   r   __name__r@   argvr   r   
IndexErrorrB   rC   rD    r;   r9   <module>r      sE  $ - 	  	R B 	
 R 2  R R  b b  b!" R#$ %& '	- .$5r&,A2  %Eb 	
 r  #A   "1 %a a  A	- $ R	/  f../VW^^_efv//0[\ccdjk))*IJQQRXYv//0[\ccdjkf../VW^^_eff../VW^^_eff../Z[bbcij   0 1 
&R%P ((GT
6 zHHQK	xx{
 
.L
12   8CHHQKHszzZs   &G AHH