 ˛∫æ2…*org/codehaus/groovy/transform/trait/Traitsjava/lang/ObjectTraits.java6org/codehaus/groovy/transform/trait/Traits$TraitBridgeTraitBridge6org/codehaus/groovy/transform/trait/Traits$Implemented	ImplementedIMPLEMENTED_CLASSNODE#Lorg/codehaus/groovy/ast/ClassNode;TRAITBRIDGE_CLASSNODETRAIT_CLASSLjava/lang/Class;TRAIT_CLASSNODEGENERATED_PROXY_CLASSNODESELFTYPE_CLASSNODETRAIT_TYPE_NAMELjava/lang/String;TRAIT_HELPER
$Trait$HelperFIELD_HELPER$Trait$FieldHelperDIRECT_SETTER_SUFFIX$setDIRECT_GETTER_SUFFIX$get INIT_METHOD$init$#STATIC_INIT_METHOD
$static$init$&THIS_OBJECT$self)STATIC_THIS_OBJECT$static$self,STATIC_FIELD_PREFIX$static/FIELD_PREFIX$ins2PUBLIC_FIELD_PREFIX$05PRIVATE_FIELD_PREFIX$18SUPER_TRAIT_METHOD_PREFIXtrait$super$;<init>()V=>
?this,Lorg/codehaus/groovy/transform/trait/Traits;fieldHelperClassName7(Lorg/codehaus/groovy/ast/ClassNode;)Ljava/lang/String;java/lang/StringBuilderE
F?!org/codehaus/groovy/ast/ClassNodeHgetName()Ljava/lang/String;JK
ILappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;NO
FPtoStringRK
FS	traitNodehelperGetterName7(Lorg/codehaus/groovy/ast/FieldNode;)Ljava/lang/String;!org/codehaus/groovy/ast/FieldNodeXgetOwner%()Lorg/codehaus/groovy/ast/ClassNode;Z[
Y\unwrapOwnerH(Lorg/codehaus/groovy/ast/ClassNode;)Lorg/codehaus/groovy/ast/ClassNode;^_
`
YLremappedFieldNameI(Lorg/codehaus/groovy/ast/ClassNode;Ljava/lang/String;)Ljava/lang/String;cd
efield#Lorg/codehaus/groovy/ast/FieldNode;helperSetterNamehelperClassNamejava/lang/Stringkreplace(CC)Ljava/lang/String;mn
lo__qname#org/codehaus/groovy/ast/ClassHelpert
CLASS_Typev
	uwequals(Ljava/lang/Object;)Zyz
I{getGenericsTypes)()[Lorg/codehaus/groovy/ast/GenericsType;}~
I$org/codehaus/groovy/ast/GenericsTypeÅgetTypeÉ[
ÇÑowner
findHelperfindHelpers\(Lorg/codehaus/groovy/ast/ClassNode;)Lorg/codehaus/groovy/transform/trait/TraitHelpersTuple;àâ
ä5org/codehaus/groovy/transform/trait/TraitHelpersTupleå	getHelperé[
çètraitfindFieldHelpergetFieldHelperì[
çî java/lang/ClassNotFoundExceptionñredirectò[
IôgetInnerClasses()Ljava/util/Iterator;õú
Iùjava/util/IteratorühasNext()Z°¢†£next()Ljava/lang/Object;•¶†ßendsWith(Ljava/lang/String;)Z©™
l´getTypeClass()Ljava/lang/Class;≠Æ
IØjava/lang/Class±getClassLoader()Ljava/lang/ClassLoader;≥¥
≤µjD
∑java/lang/ClassLoaderπ	loadClass%(Ljava/lang/String;)Ljava/lang/Class;ªº
∫Ωmake6(Ljava/lang/Class;)Lorg/codehaus/groovy/ast/ClassNode;ø¿
u¡CD
√"org/codehaus/groovy/GroovyBugError≈8Couldn't find trait helper classes on compile classpath!«*(Ljava/lang/String;Ljava/lang/Exception;)V=…
∆ I(Lorg/codehaus/groovy/ast/ClassNode;Lorg/codehaus/groovy/ast/ClassNode;)V=Ã
çÕicne"Ljava/lang/ClassNotFoundException;classLoaderLjava/lang/ClassLoader;helperClassNodefieldHelperClassNodeinnerClasses>Ljava/util/Iterator<Lorg/codehaus/groovy/ast/InnerClassNode;>;Ljava/util/Iterator;isTrait&(Lorg/codehaus/groovy/ast/ClassNode;)ZisInterface€¢
I‹
	ﬁgetAnnotations5(Lorg/codehaus/groovy/ast/ClassNode;)Ljava/util/List;‡·
I‚java/util/List‰isEmptyÊ¢ÂÁisAnnotatedWithTraitÈ⁄
ÍcNode(Ljava/lang/Class;)Zgroovy/transform/TraitÓ0org/springsource/loaded/ri/ReflectiveInterceptorjlClassGetAnnotationE(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;ÚÛ
ÒÙclazztraitAnn:Ljava/util/List<Lorg/codehaus/groovy/ast/AnnotationNode;>;Ljava/util/List;hasDefaultImplementation'(Lorg/codehaus/groovy/ast/MethodNode;)Z
	¸"org/codehaus/groovy/ast/MethodNode˛
ˇ‚method$Lorg/codehaus/groovy/ast/MethodNode;(Ljava/lang/reflect/Method;)ZjlrMethodGetAnnotationN(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
ÒLjava/lang/reflect/Method;isBridgeMethod
someMethod
annotation8Lorg/codehaus/groovy/transform/trait/Traits$TraitBridge;getBridgeMethodTarget6(Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
traitClassÆdescKjlClassGetDeclaredMethods.(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
Òjava/lang/reflect/Method
getReturnTypeÆ
getParameterTypes()[Ljava/lang/Class;
 /org/codehaus/groovy/classgen/asm/BytecodeHelper"getMethodDescriptor7(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;$%
#&
l{methodDescriptorarr$[Ljava/lang/reflect/Method;len$Ii$aClass	getAsType7(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object; groovy/lang/GeneratedGroovyProxy2getProxyTarget4¶35getClass7Æ
8isAssignableFrom:Ì
≤;0org/codehaus/groovy/runtime/DefaultGroovyMethods=asType?1
>@proxyTargetLjava/lang/Object;selfLjava/lang/Class<TT;>;decomposeSuperCallName'(Ljava/lang/String;)[Ljava/lang/String;contains(Ljava/lang/CharSequence;)ZHI
lJindexOf(Ljava/lang/String;)ILM
lN	substring(II)Ljava/lang/String;PQ
lR..T_VD(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;mX
lYlength()I[\
l](I)Ljava/lang/String;P_
l`endIndextNamefNameorigName collectAllInterfacesReverseOrderW(Lorg/codehaus/groovy/ast/ClassNode;Ljava/util/LinkedHashSet;)Ljava/util/LinkedHashSet;java/util/LinkedHashSethaddjz
ik
getInterfaces&()[Lorg/codehaus/groovy/ast/ClassNode;mn
Io+org/codehaus/groovy/ast/tools/GenericsUtilsqparameterizeTypek(Lorg/codehaus/groovy/ast/ClassNode;Lorg/codehaus/groovy/ast/ClassNode;)Lorg/codehaus/groovy/ast/ClassNode;st
rufg
wanInterfacei
interfaces>Ljava/util/LinkedHashSet<Lorg/codehaus/groovy/ast/ClassNode;>;Ljava/util/LinkedHashSet;directInterfaces$[Lorg/codehaus/groovy/ast/ClassNode;collectSelfTypesY(Lorg/codehaus/groovy/ast/ClassNode;Ljava/util/LinkedHashSet;ZZ)Ljava/util/LinkedHashSet;ÄÅ
Çreceiver	selfTypesŸ⁄
Ü
	àiteratoräúÂã&org/codehaus/groovy/ast/AnnotationNodeçvalueè	getMember=(Ljava/lang/String;)Lorg/codehaus/groovy/ast/expr/Expression;ëí
éì,org/codehaus/groovy/ast/expr/ClassExpressionï'org/codehaus/groovy/ast/expr/Expressionó
òÑ+org/codehaus/groovy/ast/expr/ListExpressionögetExpressions()Ljava/util/List;úù
õû
getSuperClass†[
I°
expression)Lorg/codehaus/groovy/ast/expr/Expression;expressions;Ljava/util/List<Lorg/codehaus/groovy/ast/expr/Expression;>;(Lorg/codehaus/groovy/ast/AnnotationNode;annotations
superClasscheckInterfacesZ
checkSupergetSuperTraitMethodName<clinit>
	Ø	±
	≥groovy/transform/SelfTypeµ@∑getNameWithoutPackageπK
I∫	º
ConstantValueCodeLocalVariableTableLineNumberTableLocalVariableTypeTable	SignatureC<T:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/lang/Class<TT;>;)TT;°(Lorg/codehaus/groovy/ast/ClassNode;Ljava/util/LinkedHashSet<Lorg/codehaus/groovy/ast/ClassNode;>;)Ljava/util/LinkedHashSet<Lorg/codehaus/groovy/ast/ClassNode;>;£(Lorg/codehaus/groovy/ast/ClassNode;Ljava/util/LinkedHashSet<Lorg/codehaus/groovy/ast/ClassNode;>;ZZ)Ljava/util/LinkedHashSet<Lorg/codehaus/groovy/ast/ClassNode;>;
SourceFileInnerClasses!




ææææ!"æ$%æ'(æ*+æ-.æ01æ34æ67æ9:æ<=>ø3*∑@±¿AB¡
5eCDøAªFY∑G*∂M∂Q∂Q∂T∞¿U
¡MVWøK!ªFY∑G*∂]∏a*∂b∏f∂Q!∂Q∂T∞¿!gh¡QiWøK!ªFY∑G*∂]∏a*∂b∏f∂Q∂Q∂T∞¿!gh¡UjDøAªFY∑G*∂M∂Q∂Q∂T∞¿U
¡YcdøV"ªFY∑G*∂M._∂p∂Qr∂Q+∂Q∂T∞¿"U
"s¡]
^_øX&≤x*∂|ô*∂Ä∆*∂Äæ†
*∂Ä2∂Ö∞*∞¿&Ü
¡ab$d	á_ø2*∏ã∂ê∞¿ë
¡h	í_ø2*∏ã∂ï∞¿ë
¡làâøÜöLM*∂ö∂ûN-∆F-π§ô=-π§ôq-π®¿I:∂M∂¨ô	Mß∂M∂¨ôLßˇ…*∂∞∂∂:*∏∏:∂æ∏¬L*∏ƒ∂æ∏¬Mß:ß:ª∆Y»∑ÀøªçY+,∑Œ∞mz}óSÇó¿\	-#œ
–—\#“”bjÑ–—öë
ò‘
ñ’
é÷ÿ¬é÷◊¡Vpqrsu"v-w:x@yMzP|SÄ\ÅbÇmÑzá}ÖäÇàÑâêå	Ÿ⁄øQ'*∆$*∂›ô*≤ﬂ∂„πËô
*∏Îôß¨¿'Ï
¡ï	ŸÌø=*∆*Ô∏ı∆ß¨¿ˆ¡†	È⁄øe*≤ﬂ∂„L+∆+πËöß¨¿Ï
˜˘¬˜¯¡
™´	˙˚ø?*≤˝∂πËöß¨¿¡¥	˙ø9*
∏∆ß¨¿¡Ω		øL*∏¿L+∆ß¨¿


¡
«
»	
øˇ	]*∏¿L+«∞+πM+πN,∏:æ66¢+2:∂∂!∏':-∂(ô∞Ñßˇ‘∞¿\	I):$7*+)2,-,/.-]

SF/?¡.—
“”’÷◊:ÿIŸR⁄U◊[›	01øÑ$*¡3ô*¿3π6M+,∂9∂<ô,∞*+∏A∞¿ 
BC$DC$ˆ¬$ˆE¡ÎÏÌÓÒ√ƒ	FGøûB*<∂Kô:*<∂O<*∂S_.∂pUW∂ZM*<∂^`∂aNΩlY,SY-S∞∞¿*0b-'c3
dBe¡˚	¸˝'˛3ˇ@	fgøæ:*∂›ô	+*∂lW*∂pM,æd>õ ,2:+*∏v∂lW+∏xWÑˇßˇ‚+∞¿4 y
!z-:Ï
:{}(~¬:{|¡&	

 +28√≈	ÄgøN*+∏É∞¿Ñ
Ö}¬Ö|¡#√≈	ÄÅø,‰*∏áôì*≤â∂„:πå:π§ôwπ®¿é:ê∂î:¡ñô+∂ô∂lWßI¡õôA¿õ∂ü:πå:		π§ô$	π®¿ò:

¡ñô
+
∂ô∂lWßˇÿßˇÖô2*∂p::æ66¢2:+∏ÉWÑßˇÊô*∂¢:∆+∏ÉW+∞¿¨£§
i+.ÿ	`4•˘9[è§/eß~.ÿá®˘ª	y
•%*™ ,-≠.-°){‘©
‰Ñ
‰Ö}‰™´‰¨´¬ `4•¶á®¯‰Ö|¡^567/899A:N;V<`=>á?ëAîCóEõF°GªHƒG LŒM‘NŸO‚R√∆≠dø^*ªFY∑G*∂MWr∂Z._∂p∂Q<∂Q+∂Q∂T∞¿*ë
*¡VÆ>ø}M
∏¬≥˝∏¬≥∞Ô≥≤≤≤∏¬≥ﬂ3∏¬≥¥∂∏¬≥âªFY∑G∏∂Q≤ﬂ∂ª∂Q∂T≥Ω±¡6789:';0=«»&	
&	