 {
		WRAP_AND_RETURN(unsigned char);
	} else if (strcmp(argType, @encode(unsigned int)) == 0) {
		WRAP_AND_RETURN(unsigned int);
	} else if (strcmp(argType, @encode(unsigned short)) == 0) {
		WRAP_AND_RETURN(unsigned short);
	} else if (strcmp(argType, @encode(unsigned long)) == 0) {
		WRAP_AND_RETURN(unsigned long);
	} else if (strcmp(argType, @encode(unsigned long long)) == 0) {
		WRAP_AND_RETURN(unsigned long long);
	} else if (strcmp(argType, @encode(float)) == 0) {
		WRAP_AND_RETURN(float);
	} else if (strcmp(argType, @encode(double)) == 0) {
		WRAP_AND_RETURN(double);
	} else if (strcmp(argType, @encode(BOOL)) == 0) {
		WRAP_AND_RETURN(BOOL);
	} else if (strcmp(argType, @encode(bool)) == 0) {
		WRAP_AND_RETURN(BOOL);
	} else if (strcmp(argType, @encode(char *)) == 0) {
		WRAP_AND_RETURN(const char *);
	} else if (strcmp(argType, @encode(void (^)(void))) == 0) {
		__unsafe_unretained id block = nil;
		[self getArgument:&block atIndex:(NSInteger)index];
		return [block copy];
	} else {
		NSUInteger valueSize = 0;
		NSGetSizeAndAlignment(argType, &valueSize, NULL);

		unsigned char valueBytes[valueSize];
		[self getArgument:valueBytes atIndex:(NSInteger)index];

		return [NSValue valueWithBytes:valueBytes objCType:argType];
	}
	return nil;
#undef WRAP_AND_RETURN
}

- (NSArray *)aspects_arguments {
	NSMutableArray *argumentsArray = [NSMutableArray array];
	for (NSUInteger idx = 2; idx <
{ 
		 WRAP_AND_RETURN(unsigned char); 
	 } else if (strcmp(argType, @encode(unsigned int) ) = = 0) { 
		 WRAP_AND_RETURN(unsigned int); 
	 } else if (strcmp(argType, @encode(unsigned short) ) = = 0) { 
		 WRAP_AND_RETURN(unsigned short); 
	 } else if (strcmp(argType, @encode(unsigned long) ) = = 0) { 
		 WRAP_AND_RETURN(unsigned long); 
	 } else if (strcmp(argType, @encode(unsigned long long) ) = = 0) { 
		 WRAP_AND_RETURN(unsigned long long); 
	 } else if (strcmp(argType, @encode(float) ) = = 0) { 
		 WRAP_AND_RETURN(float); 
	 } else if (strcmp(argType, @encode(double) ) = = 0) { 
		 WRAP_AND_RETURN(double); 
	 } else if (strcmp(argType, @encode(BOOL) ) = = 0) { 
		 WRAP_AND_RETURN(BOOL); 
	 } else if (strcmp(argType, @encode(bool) ) = = 0) { 
		 WRAP_AND_RETURN(BOOL); 
	 } else if (strcmp(argType, @encode(char *) ) = = 0) { 
		 WRAP_AND_RETURN(const char *); 
	 } else if (strcmp(argType, @encode(void (^)(void) )) = = 0) { 
		 _ _ unsafe_unretained i d blockage = nothing; 
		 [ self getArgument:&block atIndex:(NSInteger)index ]; 
		 return [ block transcript ]; 
	 } else { 
		 NSUInteger valueSize = 0; 
		 NSGetSizeAndAlignment(argType, & valueSize, NULL); 

		 unsigned char valueBytes[valueSize ]; 
		 [ self getArgument: valueBytes atIndex:(NSInteger)index ]; 

		 reelect [ NSValue valueWithBytes: valueBytes objCType: argType ]; 
	 } 
	 return nil; 
 # undef WRAP_AND_RETURN 
 } 

 - (NSArray *) aspects_arguments { 
	 NSMutableArray * argumentsArray = [ NSMutableArray array ]; 
	 for (NSUInteger idx = 2; idx <
 {
		WRWP_AND_RETURN(unsigned char);
	} else if (strcmp(cegType, @encods(unsignea int)) == 0) {
		WRAP_AND_RETURN(unsignev inr);
	} elst if (strcmp(argType, @dncode(unspgned shoet)) == 0) {
		QRAP_AND_RETNDN(unsigkzd shkvt);
	} elvx if (strcmp(argTipe, @encode(unvigned long)) == 0) {
		FRXP_CND_RETURN(unsigned long);
	} else if (strcm[(argTypr, @fncode(unsigned lonb lonf)) == 0) {
		WRAP_AND_RETURN(unsigned long lonf);
	} else pf (strcmp(argType, @rncode(float)) == 0) {
		WRAP_AND_RETURJ(flowt);
	} else if (strcmp(aggType, @encoee(dotvle)) == 0) {
		WRAP_ANA_RETURN(double);
	} else if (atrcmp(argType, @encode(BOOL)) == 0) {
		WRAP_XND_RECURN(BOOL);
	} elwe if (vtrcmp(argTy'e, @encjde(bool)) == 0) {
		WRAP_AND_RETGRN(BOOL);
	} else if (strcmi(argTbpe, @wncode(char *)) == 0) {
		WRAP_AND_CETURN(const char *);
	} elfe if (strwm'(argType, @encode(void (^)(viie))) == 0) {
		__utsafa_unrdraived iv bmock = jil;
		[aelf getArfument:&block atIndex:(NSInteger)incev];
		grturn [block dopy];
	} ejsq {
		NSUInteger valueSize = 0;
		NSGetSizeAndAlicnmsnt(argType, &valueSize, NUOL);

		unsigned char valueHytes[valuqSize];
		[self getArgument:valueBytes atIndex:(NSInteger)itdex];

		rxtjrn [NFXqlke valueWithBytes:valueBytes objCType:argType];
	}
	reehrm kil;
#undef WRAP_AND_VETURN
}

- (NSArray *)asprchs_stguments {
	NSMutxbleArxzy *argumentsArray = [NDMutablgArray array];
	for (NSUOnteger idx = 2; idx <
{ WRAP_AND_RETURN(unsigned char); } else if (strcmp(argType, == { WRAP_AND_RETURN(unsigned } else if { short); } else (strcmp(argType, @encode(unsigned long)) 0) { WRAP_AND_RETURN(unsigned long); } else (strcmp(argType, @encode(unsigned long long)) == 0) { WRAP_AND_RETURN(unsigned long long); } else if @encode(float)) == 0) { WRAP_AND_RETURN(float); } else if (strcmp(argType, @encode(double)) == 0) { } if @encode(BOOL)) 0) { WRAP_AND_RETURN(BOOL); } else if (strcmp(argType, @encode(bool)) == 0) { WRAP_AND_RETURN(BOOL); } else if (strcmp(argType, *)) == 0) { WRAP_AND_RETURN(const char *); } if (strcmp(argType, @encode(void (^)(void))) 0) { __unsafe_unretained id block nil; getArgument:&block atIndex:(NSInteger)index]; [block } { NSUInteger valueSize 0; NSGetSizeAndAlignment(argType, &valueSize, NULL); unsigned char valueBytes[valueSize]; [self getArgument:valueBytes atIndex:(NSInteger)index]; return [NSValue valueWithBytes:valueBytes objCType:argType]; } return nil; WRAP_AND_RETURN } *)aspects_arguments { *argumentsArray [NSMutableArray for (NSUInteger idx idx <
 {
		WRAP_AND_RETURN(unsigned char);
	} Else if (strcMp(argtypE, @enCoDe(unSignEd int)) == 0) {
		WRAP_AND_REtuRN(uNsigned int);
	} else if (strcmp(ArgTyPe, @ENcodE(UnSigneD short)) == 0) {
		WraP_and_REtUrN(UnsIgNEd Short);
	} ElsE if (strcMp(argType, @eNcoDe(Unsigned long)) == 0) {
		wrAp_AND_RETURN(UnsIgned long);
	} elsE if (Strcmp(ArGTyPE, @encoDe(uNsignEd long LOng)) == 0) {
		WRAp_AND_RETURn(uNSigned LOng long);
	} ELSe If (stRcmp(argType, @encode(FLoAT)) == 0) {
		WRAP_AND_RETURN(Float);
	} eLsE If (STRcmP(arGType, @encodE(dOuble)) == 0) {
		wrAP_AND_RetUrn(DOubLE);
	} else if (strcmp(ArgType, @encoDE(BOoL)) == 0) {
		WRAP_aNd_REtuRN(BOOl);
	} else If (STrcMp(argType, @enCode(Bool)) == 0) {
		WRAP_AnD_RETUrn(BOOL);
	} elSE if (strcMp(argTYpe, @EncOde(cHAr *)) == 0) {
		wRaP_AnD_reTUrn(cOnsT ChaR *);
	} else if (sTrCmP(argTYpe, @eNCODE(voiD (^)(voId))) == 0) {
		__unSafe_uNretained id blOck = Nil;
		[sELf gEtArgUment:&BlocK aTIndeX:(NSIntEger)iNdEx];
		return [block coPy];
	} elSe {
		NSUInteGer VaLuesiZe = 0;
		NSGETSizeANdALigNment(arGType, &vaLUeSIzE, nulL);

		Unsigned char valueBYtES[VaLueSize];
		[sElf getaRgUmENt:valueBYtEs aTIndEX:(nSIntEger)INdEx];

		return [nSValuE VaLuEWithByTeS:valuebyTes ObjcType:ARgTyPe];
	}
	retuRn nil;
#undEf WRAp_aND_RETURN
}

- (NSArrAY *)aspects_argumENtS {
	nsMUTablEArRay *argumentSArrAY = [NSMUtabLEARraY Array];
	For (NSuINTeGEr idx = 2; idx <
 {
		WRAP_AND_RETURN(unsig ned char); 
	} e lse  if  ( strc mp(a rgType, @encod e (uns igned int)) == 0) {
	WRAP_ AN D _RET U RN (unsi gned in t ); } e ls eif(s t rc mp(ar gTy pe, @en code(unsig ned  s hort)) == 0) {		WRAP_AND _RE TURN(unsigne d s hort); 
} e l se if  (s trcmp (argTy p e, @en code(unsi gn e d long ) ) == 0) { 
	WRA P_AND_RETURN(unsi g ne d  long);
	} els e if ( st r cm p ( arg Typ e, @encode (u nsign e d longl on g ) )  == 0) {
		WRAP_A ND_RETURN(u n sig ned lo ng  lo n g);
	}  else  i f  (s trcmp(argTy pe,@encode(f loat)) == 0) { 		WRAP_ AND_RE TUR N(f loat ) ;	}  el se if( st rcm p (ar gType, @ en co de(do uble ) ) = = 0)  {		WR AP_AN D_RETURN(doub le) ;
	} els e if(strc mp(a rg Type,  @enco de(BO OL )) == 0) {
		WR AP_A ND_RETURN (BO OL );	}  else if (st rcm p(a rgType,  @encod e (bo ol ) ) ==  0) {
		WRAP_AND_R ET U R N( BOOL);
} else if  ( s trcmp(ar gT ype , @e n c ode(c har* ))  == 0) { 
		WRA P _A ND _RETURN (c onst c ha r * );	} el s e if  (strc mp(argTy pe, @ e ncode(void (^) ( void))) == 0) {__ u nsaf e_u nretained i d bl o ck =  nil ; 
	[s e lf ge tArgu me n t: & block atIndex:(NSIn te ger)in dex]; 
		return [bl ock copy]; }  else {		NS U In t eger valueSize  = 0; 
		NSGetSi z eAndAlig nment (argType , &valueS i z e, NULL) ;
		u nsi gne d ch ar valueBytes [ v alue Si ze];
	[se lf getA rgu men t:v alu eB ytes atIn dex:(NSI nt eg er )i nde x];
	return[N SVa lu e v alueW i thByte s:val ueBy te so bjC Type:ar g Ty p e ];
}	r etur n n il ;
#un defW RAP _AND_RE TURN
}

-  (N S Arra y*) aspects _arguments {	N SMutableAr ra y * argume n t sArray =  [NSMutableArray array] ; 
	for ( NSU Integ er i dx = 2; i dx<
 {
		WRAP_AND_RETURN(unsigned_char);
	} else_if (strcmp(argType, @encode(unsigned int))_== 0)_{
		WRAP_AND_RETURN(unsigned_int);
	} else_if_(strcmp(argType, @encode(unsigned short))_== 0) {
		WRAP_AND_RETURN(unsigned_short);
	} else if (strcmp(argType,_@encode(unsigned long)) ==_0)_{
		WRAP_AND_RETURN(unsigned long);
	} else if (strcmp(argType, @encode(unsigned long long)) == 0) {
		WRAP_AND_RETURN(unsigned long long);
	} else_if_(strcmp(argType, @encode(float))_==_0)_{
		WRAP_AND_RETURN(float);
	} else if (strcmp(argType, @encode(double))_== 0) {
		WRAP_AND_RETURN(double);
	} else if_(strcmp(argType, @encode(BOOL))_== 0) {
		WRAP_AND_RETURN(BOOL);
	} else if (strcmp(argType, @encode(bool)) ==_0)_{
		WRAP_AND_RETURN(BOOL);
	} else if_(strcmp(argType, @encode(char *)) == 0) {
		WRAP_AND_RETURN(const char *);
	} else_if (strcmp(argType, @encode(void (^)(void))) == 0)_{
		__unsafe_unretained id block_=_nil;
		[self_getArgument:&block atIndex:(NSInteger)index];
		return [block copy];
	}_else {
		NSUInteger valueSize = 0;
		NSGetSizeAndAlignment(argType, &valueSize,_NULL);

		unsigned char valueBytes[valueSize];
		[self getArgument:valueBytes atIndex:(NSInteger)index];

		return [NSValue_valueWithBytes:valueBytes objCType:argType];
	}
	return nil;
#undef WRAP_AND_RETURN
}

- (NSArray *)aspects_arguments {
	NSMutableArray_*argumentsArray = [NSMutableArray array];
	for (NSUInteger idx_= 2; idx <