shell bypass 403

GrazzMean Shell

Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.188.220.221
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : spwd.so
ELF>�@h�@8@$#�� �� � �x
 �� � �����$$P�td���44Q�tdR�td�� � ((GNU�,��|����Go2�άc��@ �BE���|�qXwu�s��� !U��j �����~3F, F"��& �P( ��& �u__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizePyStructSequence_NewPyString_FromStringPyInt_FromLongPyErr_Occurred_Py_NoneStructPyList_NewsetspentPyList_AppendgetspentendspentPyArg_ParseTuplegetspnamPyExc_KeyErrorPyErr_SetStringinitspwdPy_InitModule4_64PyModule_AddObjectPyStructSequence_InitTypelibpython2.7.so.1.0libpthread.so.0libc.so.6_edata__bss_start_endGLIBC_2.2.5�ui	�� `
�  
� � �% :�% @�% `! �% ^�% ��% �  �% g�% `" �% & & x& & �& � & �(& �0& �8& �@& �H& �P& X& 0`& h& `p& x& ��& �& '� � 	� � � �      (  0  8  @  H  P  
X  `  
h  p  x  �  �  �  ��H��H�Q H��t��H����5b �%d @�%b h����%Z h�����%R h����%J h����%B h����%: h����%2 h����%* h�p����%" h�`����% h	�P����% h
�@����%
 h�0����% h� ����%� h
�����%� h�����%� h��H�=� H�� H9�tH� H��t	�����H�=� H�5� H)�H��H��H��?H�H�tH�� H��t��fD�����=u u+UH�=� H��tH�=� �Y����d����M ]������w����UH��H�=E SH���k���H����H�}H��H�����}���H�CH�}H�����g���H�C H�}���H�C(H�}���H�C0H�} ���H�C8H�}(���H�C@H�}0�v���H�CHH�}8�i���H�CPH�}@�\���H�CX����H��u>H��H��[]�@H�� H�CH�}H�H���h���H�� H�C H��]���H�+u
H�CH��P01�H��H��[]�@U1�SH���#���H��H��t?�&����)@H������H��H��t@H��H���U�����u!H�+tc�v���H��u����H��H��[]�f�H�+u
H�CH��P0H�mt����1�H��H��[]��H�EH��1�P0�����DH�CH��P0�ff.��H��(H��H�5�1�H�T$�����1���tH�|$��H��tH�����H��(�f�H�Q H�5�H�D$H�:�e���H�D$��ff.�S1�A��H�� H�5� H�=��
���H��t5H�Ëg ��t+H�� H�5yH��H�� �}����; [ÐH�5� H�=� �m������H��H���s:getspnamgetspnam(): name not foundgetspallspwd.struct_spwdsp_namlogin namesp_pwdencrypted passwordsp_lstchgdate of last changesp_minmin #days between changessp_maxmax #days between changessp_warnsp_inactsp_expiresp_flagreserved#days before pw expires to warn user about it#days after pw expires until account is blocked#days since 1970-01-01 until account is disabled;4���P����x�����x������zRx�$����FJw�?;*3$"4D(���A�K�D �
DAEFDA4|����A�C�D P
DACb
DAI�����bD0y
C����uA�]
B`
 
� `t��
(� � ���o��(
�  �
�`	���o����o�oJ���o� �����&6FVfv���getspall() -> list_of_entries
Return a list of all available shadow password database entries, in arbitrary order.
See spwd.__doc__ for more on shadow password database entries.getspnam(name) -> (sp_namp, sp_pwdp, sp_lstchg, sp_min, sp_max,
                    sp_warn, sp_inact, sp_expire, sp_flag)
Return the shadow password database entry for the given user name.
See spwd.__doc__ for more on shadow password database entries.spwd.struct_spwd: Results from getsp*() routines.

This object may be accessed either as a 9-tuple of
  (sp_nam,sp_pwd,sp_lstchg,sp_min,sp_max,sp_warn,sp_inact,sp_expire,sp_flag)
or via the object attributes as named in the above tuple.This module provides access to the Unix shadow password database.
It is available on various Unix versions.

Shadow password database entries are reported as 9-tuples of type struct_spwd,
containing the following items from the password database (see `<shadow.h>'):
sp_namp, sp_pwdp, sp_lstchg, sp_min, sp_max, sp_warn, sp_inact, sp_expire, sp_flag.
The sp_namp and sp_pwdp are strings, the rest are integers.
An exception is raised if the entry asked for cannot be found.
You have to be root to be able to use this module.:@`! ^��  g`" & 	x��������0`�'GCC: (GNU) 8.5.0 20210514 (Red Hat 8.5.0-4)GA$3a1��GA$3a1��GA$3a1(0GA$3a1�i
GA$3a1%%GA$3a1%%GA$3a1��GA$3a105,p
��%��p
���9@�N��into�a�{��{��{���	�1?
�3o
�6	�
�7	�
�8	�
�9	� 
-:	�(
;	�0
�<	�8
�=	�@
�@	�H
�A	�P
1B	�X
�	DX`
F^h
$Hop
�Iot
�
J�x
9MZ�
sNa�
�Od�
�Qt�
�
Y
��
�[�
S\��
�]^�
�^	L�
m_
-�
O`o�

b���l+�S�
�t9K�zP�
��9���M�	��?������o
������o��	-�r.��
�W92	d�4	!d�
$��
2o
7o�
;oM��D�Eo	
4�
7
6	o
U
7	o��
�9p�.�o	�{r�0�o�{o	�j�
<k�
�k]c
�D]<E��E]7E��F��G� =G�(�K�0WL8oM0@~NdH O
�PiP�X�T�`ZU�h\V�p�Z�x�[��o\���	]W�o^���a���
d
{�^f���
j%��m
���q���t��x�y�e|���}��A~S��]�
����
�,��� ��9(��r0��
F8J��@��
�H/��P���X���`���h���p���x`�@��?lf�
�{����c��������������������o�'
��)�F�5;oOOO���ag�{����������� ���o�������o	������
		o,	���L��>	D	�]	��,	F�>	��u	{	��	��	����	�	��	��d	``�j
buf�Lobj��len��
@��
�
�	o 
�	o$
v��(
���	0
q��	8
���	@
)�j
H
�LX
�z
9f��	���
�
o�
��
oz
��
�
�
��
@��
�
o�
��M�o%�L��17oP��
L8�	i

��

��
���
`��
��� 
���(
G��0
�
�o8
��o@
��oH
>�
�P
��oX
�
��`
���h
P��p
(��x
k���
y�)�
��o�
��o�
A�o�
��o�
��o�
����
j���
V���
����K��������	�������2�
����� *
�(�o0
PP	
�
��RUgU�	{ ��(\	�0
�
8��@
UH+v
!	O\"
�#�!$	�%0'	�?(2	�)]	h*i	�+�	,�
 �-�
(4.\1���L2����3o0��o
4=C�W���5��6qwo����7
	8�
�	9{t:��{���;�����o�<{�={@>�t?
	X@
	!ASY�r]���B���]�i

O�	� %�
{&�
'�
�(o
�*����	(S
~�get
�set�doc�
*L 	�� �Yy�Ya�Y	��
	
{�

{�	��vic@sc
o������o����V���
��
�� 
�gc!Q��
GVV�
��}o�	o
o'opoN
o�o�o�oTo)o�oUo�o\oTo�o�	o�Y
U���<!� 	�
<�
�]

{+��Y7	Y��)��Y
o<9�v#,Y�-Y�Yo
7YB8YV	Y�
Y�Y� Y
���4�
��9�"Y�	 )Y�![Y�!\Y�
!]YA!^Y>!_Y�!`Y!aYP"
Y�"Y#;Y�#<Y�Y���,�d$
Y!%(Y�%CY=%DY�&'Y�&'(Y�&'9YH'#Yi	';�W(+Y�)YIH*Y�+	cY
+YF+Y;,Y�-Yq-Y�.Y������L	��o���L�
FY�GY�HYfIY�
YY�
/)Y9/*Y�/+Y�0w��0x�0y��	0z�0{�~
0|��
0}�a0�10���0���0��*0��0��E
0��
0��I0��60���0��}0��S
0��,0���0���0���0���0��E0��0��N0���	0���0��W0���0���0���0���0��=
0��n0��U0��j0���0���0���0��00��`0��,0���0��0��0��f0���0��!_isP1#
�1#
�1b
�
1�
_1�
1� 
1�(
�1�0
�1�8
�
1�@
C	1	oH�!_ts�18b
�1;b
v1<�
J1>$
�1?	o
�1C	o
�1D	o 
/
1Ft(
�1Gt0
*1H�8
1I�@
�1K�H
	1L�P
w1M�X
�1O�`
	1P�h
z1Q�p
�
1S�x
21[	o�
}1]	o�
�1_��
�1`
{�
,1b	o�
81c��)
1%�O	1-��o��$o�h�1g)�1��Y1���$��y1�!��2��"oP3��1����3�=)3��f
46o�4Ev4Fo	Y5.�
~5/�
e50�#��53Y�54�s	g59�
~5:�
85;�
:5<	oN5B�I6AY
G)9��7 )
UJ9�:b7!J�7!J	8
�
~8�doc8�8
g	K 8�
~8�doc8�
8!�
w8ogK8��8�  8	9
<8�
�8]
78�
�8�n8 �	�H9+�
�9-�
�9.�
�9/{
�90{
o91{ 
z92{(
i94{0
�96{8
�989@
��$9%��	`# 
��9	%�	& 
�%9�%�*	`" %�0�	�% %j7o	H( %�8Y	�& 
��9�%�j}	`! 
��9�%��	�  
��9%�
��	�% &���u�� 'm��(��$d )U	s)T	�% )Q	`# )R0)X
�(�$� )Us)T	l)Q	�& *#%)U	�& )T	�% +�������!,���SO,�)���'d����'p��!pl-p�!'v����.�7"(�%s!)Uv)Ts/��!)Us.�%.!%02)Us(�+%�!)U0.�7%.�C%.�%E1�p�7"2�p*�2p:�3~r�4ps�!5�F�p
��#6pF'�!
7�H	o��'vI���8�#�
P�"9�#9�#YU9�#��.�
O%8�#�
@Q-#9�#��9�#3/9�#ok.�
O%(�
[%L#)U	�& .�
g%.�
g%.�
g%.�
g%.�
g%.g%.g%.s%0p)Us:�<�#;v<�;i<o;val< �<�!@b��$9"��9"��= "�h>,":4?�!��"p�$9"��9"��@�A "A,"*�%)T	C(Z�%�$)U�T)T	8)Q�h.l�%.y7"Brr2uB552(BKK8B{{ 4B��9J
BN
N
 /B��9B
B��9RB1
1
?B$$8B)B(	(	0OB��0NB2B��9Z%:;9I$>&I$>5II	:;9

:;9I8:;9<
I!I/4:;9I?<!4:;9I?<7I:;9
:;9I8
:;9I8'II
:;9I8':;9:;9I:;9:;9
:;9I
:;9I :;9!:;9"'I#'$!I/%4:;9I&.?:;9'@�B'4:;9I�B(��1)���B*��1+.:;9'I@�B,:;9I�B-U.��1/��0��1.:;9'I 2:;9I34:;9I44:;9I5.:;9'I@�B6:;9I�B74:;9I�B81R�BUXYW91�B:.:;9' ;:;9I<.1@�B=41>41�B?1R�BXYW@UA41B.?<n:;9@�
/root/python/Python-2.7.18/Modules/usr/lib/gcc/x86_64-redhat-linux/8/include/usr/include/bits/usr/include/bits/types/usr/includeInclude/usr/include/sysspwdmodule.cstddef.htypes.hstruct_FILE.hFILE.hstdio.hsys_errlist.herrno.hunistd.hgetopt_core.hpyport.hmath.htime.htime.hobject.hmethodobject.hdescrobject.hobjimpl.hpydebug.hunicodeobject.hintobject.hboolobject.hlongobject.hfloatobject.hcomplexobject.hrangeobject.hstringobject.hmemoryobject.hbufferobject.hbytearrayobject.htupleobject.hlistobject.hdictobject.henumobject.hsetobject.hmoduleobject.hfuncobject.hclassobject.hfileobject.hcobject.hpycapsule.htraceback.hsliceobject.hcellobject.hiterobject.hgenobject.hweakrefobject.hpyerrors.hpystate.hmodsupport.hpythonrun.hceval.himport.hcode.hpyctype.hstructseq.hshadow.h	p
�LrZY�tl�XJkJ�XJ�������	X^� ^XtKqJJk���	f�2�&X#+[X<ZY	g�	=X�	PfxX
XY�
w<f�tY.�
x�v
,<Y	vZtJ
?t�/-L�\�	py.	�4J""�fM��Y�	7PyGC_HeadPyInterpreterState_Py_TrueStructPyExc_OverflowErrorobjobjprocnb_inplace_remaindernb_dividePyExc_MemoryErrorInstPyMethodDef__ssize_tgc_next_Py_SwappedOp_IO_codecvttp_richcomparenb_intPyInt_Typetp_deallocstruct_spwd__doc__gc_prevPyReversed_TypePyExc_IOErrorPyExc_ImportWarning_IO_save_endnb_nonzeroPyExc_IndexErrortp_as_sequencetp_reprstrides_PyThreadState_GetFramePyExc_UnicodeEncodeError_IO_write_basePyExc_RuntimeWarninginitspwd_lockgetbufferprocsp_namprecursion_depthnb_addnb_subtractreleasebufferprocnb_xortp_basestrash_delete_laterPyStructSequence_InitTypetp_methodsPy_OptimizeFlagPy_UseClassExceptionsFlag_IO_save_basetp_initPyExc_ExceptionPyByteArrayIter_TypePyExc_UserWarningPyStructSequence_UnnamedField_chainstruct_spwd_type_fieldsPyStructSequence_New_cur_columnPyExc_TabErrorPy_TabcheckFlagPyModule_TypePy_InitModule4_64tp_weaklistoffsettp_is_gcnb_absolutePyExc_BytesWarningtp_name_gc_headstruct_spwd_type_desc_sys_nerr_objectgettertp_mronb_floor_divideternaryfuncmp_ass_subscript__environob_refcntwritebufferprocnb_inplace_multiplyinitializedinterpPy_DebugFlagnb_inplace_dividePyDict_Type_IO_markerPyBuffer_Type/root/python/Python-2.7.18/Modules/spwdmodule.cPyExc_TypeErrortp_iternb_inplace_rshiftPyStructSequence_Fieldnb_inplace_or_Py_NotImplementedStruct_inittab_Py_ctype_tolowerhashfuncgilstate_counterallocfuncnb_divmodsetspentPyClass_TypesetIndex_PyByteArray_empty_stringnb_true_dividecurexc_typeprintfunc_IO_FILE__timezonePyExc_ReferenceErrorsmalltablePyBufferProcsPyString_Type_IO_wide_datatp_docinitfuncPyExc_ZeroDivisionErrorsp_minunsigned charsp_pwdp_freeres_listgetspentspwd_getspnamPy_Py3kWarningFlagPyExc_WarningPyExc_FloatingPointErrorndimPyExc_FutureWarningPyInt_FromLongnb_inplace_true_dividenb_floattp_freesq_repeatmp_lengthPy_buffer__tznamePyBaseObject_Type_Py_Tickertp_basenb_inplace_powernb_remainderbf_getwritebufferPyOS_ReadlineFunctionPointerPyMemberDefPyDictProxy_TypePySet_Typeob_ivalssizessizeobjargprocPyExc_DeprecationWarningPyCode_TypePy_DivisionWarningFlag_IO_lock_tn_in_sequencetp_hash_Py_ctype_tablecodec_search_cachePyNullImporter_TypePyExc_SyntaxError_IO_read_ptrPyGetSetDescr_Typecodec_search_pathPyTypeObjectstdincurexc_valuePyErr_OccurredPyBool_TypedlopenflagsPy_tracefuncsq_ass_slicePy_FileSystemDefaultEncodingtp_getattrosq_slicePy_HashRandomizationFlag_markersPyExc_SystemExitPyList_TypePyExc_GeneratorExitreprfunc_Py_HashSecret_tPyExc_ImportErrortp_descr_setlenfuncc_profilefuncPyExc_ValueErrorPyList_NewPySlice_Type_Py_CheckRecursionLimitPyExc_ArithmeticErrorPyExc_LookupErrortp_dictnb_negativeprefix_PyWeakref_RefTypenb_lshiftPyDictIterValue_Typeunaryfunctp_traverseprogram_invocation_namenewfunc_PyOS_ReadlineTStatePyDictKeys_TypePy_NoSiteFlagtp_as_mappingnb_inplace_subtracttp_setattrnb_inplace_addPyDictItems_TypeStructSpwdTypetraverseprocPyTuple_Typenb_inplace_xoroptindssizessizeargfuncspwd_getspnam__doc__/root/python/Python-2.7.18closuretick_counterbf_getreadbuffernb_andPyExc_UnboundLocalErrortp_strformatPyExc_MemoryErrorself_flags2getiterfunc_IO_read_basePyExc_KeyboardInterruptsq_concatsegcountprocPyDictIterKey_TypePy_FrozenFlag_unused2PyNumberMethodssq_inplace_repeatPyString_FromStringPyExc_OSErrorPyExc_NameError_typeobjectPyBaseString_Typegc_refsspwd_methodsmodulesPyWrapperDescr_Typetp_flags_PyGC_generation0_old_offsetreadonlycodec_error_registryPyProperty_TypeargsPyExc_StopIterationtp_comparePyIntObjecttz_minuteswestPyEllipsis_TypePyMemoryView_Typebf_getsegcountcurexc_tracebacklong long inttstate_headnb_inplace_lshiftPyFrozenSet_Typec_tracefuncPySeqIter_TypePyLong_TypePyInstance_TypePy_VerboseFlaginternalml_meth_IO_write_endc_profileobjob_sizePyObjectPyFile_Type_Py_QnewFlagPySuper_TypePyStructSequencetp_iternextnb_hextp_clearob_itemtp_callbf_releasebufferPyCFunctionPyExc_EOFErrorinquiry_IO_buf_basesp_lstchgsuboffsetsc_traceobj_Py_CheckIntervalPyImport_FrozenModulesPyModule_AddObjectPyTraceBack_TypePyThreadFrameGetter__pad5descrsetfuncsuffixnb_positiveuse_tracing_PyThreadState_CurrentPyClassMethod_Typetp_membersPyExc_RuntimeErrorsetattrfuncPyMappingMethodsPyFloat_Type_Py_HashSecretPyFunction_TypePyExc_AttributeErrorcoercion_modePyExc_BufferErrorsq_itemtp_setattroPyList_Appendsq_inplace_concatnb_invert_Py_ZeroStruct_PyTrash_delete_nesting_PyWeakref_CallableProxyTypeiternextfunclong doublePyArg_ParseTuplebf_getbufferPyType_TypePyExc_SyntaxWarningdescrgetfuncvisitprocPyCObject_TypePyMemberDescr_Typenb_coercebf_getcharbufferPy_BytesWarningFlag_PyTrash_delete_laterPyExc_UnicodeTranslateErrorPy_DontWriteBytecodeFlagoptoptmp_subscriptlong long unsigned intbuiltinsPy_InspectFlagPyExc_KeyErrorsigngamPy_ssize_tinitproc__off_tsp_inactprogram_invocation_short_namenb_indextp_allocPyExc_UnicodeDecodeErrornb_rshiftdummy_padding_freeres_bufPyMethod_Typenb_inplace_andsp_expirefreefuncopterrPy_InteractiveFlagPyExc_EnvironmentErrortp_getsetPyStructSequence_DescPyExc_AssertionError_PyLong_DigitValuetp_weaklist_IO_backup_base_shortbufnb_longtp_as_bufferobjobjargprocsq_ass_itemPyExc_IndentationError__off64_trichcmpfuncPyGetSetDefPyDictValues_TypePy_UnicodeFlagcodePyStaticMethod_Typedummytp_printtp_version_tagtp_getattrsp_warn_IO_buf_endPyImport_InittabPyThreadStatetp_cachetp_basicsizePyCapsule_TypebinaryfuncPyExc_NotImplementedErrorPyRange_Typestderrshort intsetterPyUnicode_TypePySequenceMethodstp_itemsize_framePyEnum_TypePy_NoUserSiteDirectory_vtable_offset_sys_errlistasync_excnb_multiplytp_as_number_Py_ascii_whitespacenb_inplace_floor_dividesp_flagPyExc_RecursionErrorInstsetattrofuncgetattrfuncspwd_getspall__doc____daylight_PyWeakref_ProxyTypePyExc_SystemErrorbufferinfonb_orPyCallIter_Typenb_octshapePy_IgnoreEnvironmentFlagml_docPyByteArray_Type_Py_ctype_toupper_IO_read_endml_flagsPyExc_UnicodeErrortp_delgetdate_errsq_containsdestructor_filenotrash_delete_nestingPyDictIterItem_Typetz_dsttimePyExc_PendingDeprecationWarningtp_newsq_lengthoptarggetattrofuncob_typemkspent_Py_PackageContextPyComplex_Typeshort unsigned intstdouttp_descr_getendspentPyExc_StandardErrormodules_reloading_IO_write_ptrPyCell_Typenb_powerPyOS_InputHooksysdict_frozensp_max_Py_NoneStructPyGen_Typespwd_getspallcharbufferproc_Py_EllipsisObjectPyCFunction_Typetp_subclassesPyErr_SetStringGNU C17 8.5.0 20210514 (Red Hat 8.5.0-4) -mtune=generic -march=x86-64 -g -g -O2 -O3 -fPIC -fno-strict-aliasing -fwrapvPyExc_UnicodeWarningml_nametp_dictoffsetreadbufferprocthread_idPyExc_BaseExceptioncqPq�S��SU��U�T��T� )P)mVmnPn�V��V��U��V,7PZcP;JPJUSn�S��SU�V���U��V�U�%0�%;1�;M2�MZ3�Zg4�gt5�t�6���7���8���9���1���2��9�2P2�S��P�S%2U��U%70���0�%2P27S��P��S;HU��U;M1���1�;MS��S��U�2�U���T��U�2�T��P*P*2�X#+�U�#+�T�%7����;M��0Up���##2��(�J��
	�
��(
8�� � � � �   �  �& P(` ���! 
7�& F� m`
y� ���p
��& �����@b8`# ��% `�H( ��%  `! ��  �1`" �D& ��\��j(p� }� ����& �  �	����� &;�& BR`o� ����P( ���& ���u)C ]"crtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.7295__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryspwdmodule.cmkspentStructSpwdTypespwd_getspallspwd_getspnamspwd_methodsinitializedstruct_spwd_type_descspwd_getspnam__doc__spwd_getspall__doc__struct_spwd__doc__struct_spwd_type_fields__FRAME_END___fini__dso_handle_DYNAMIC__GNU_EH_FRAME_HDR__TMC_END___GLOBAL_OFFSET_TABLE__initPyList_Newsetspent@@GLIBC_2.2.5endspent@@GLIBC_2.2.5_ITM_deregisterTMCloneTablePy_InitModule4_64PyStructSequence_New_edataPyErr_SetStringPyList_AppendPyExc_KeyErrorPyString_FromString__gmon_start__PyErr_Occurredgetspent@@GLIBC_2.2.5_Py_NoneStruct_endPyArg_ParseTuple__bss_startgetspnam@@GLIBC_2.2.5initspwdPyInt_FromLongPyModule_AddObjectPyStructSequence_InitType_ITM_registerTMCloneTable__cxa_finalize@@GLIBC_2.2.5.symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.comment.gnu.build.attributes.debug_aranges.debug_info.debug_abbrev.debug_line.debug_str.debug_loc.debug_ranges��$.���o��48((p@���H���oJJ4U���o�� d��`nB

�x��s��~��u�((
�288����4���� ��� ��� ��� ���� �0�   ���  �  ��& �&� �0�&,�P(`�& �'0(�%+�M�9nQDE0�W�Ppr�[Dy�(zX"@	��y��i
© 2025 GrazzMean