If no indexURL is provided, we throw and catch an error and
then use ErrorStackParser to calculate where pyodide.js has
been loaded from. Resolves #2290.
ENH Calculate indexURL from error stack trace. If no indexURL is provided, we throw and catch an error and
then use ErrorStackParser to calculate where pyodide.js has
been loaded from. Resolves #2290.

 OS/2p,(NcmapAH3(|glyf3Z>headԡw6hhea$hmtxԺ
xlocaR^maxp name!`Qpostcf_<<3<3  llS4@
@?2Alts@  42 ^      ^  $      : 2  P : | $  P $       $ : P  |   f :  f : $  f | | : | : f P $   | $   H t   : | P | |  | f    P $ |  : f       |          t    ^ ^  $$	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcedfijghkX~         SOM߿~3#/5/5?3#/5?3!,,7!B,.!,n!Bn1/5?5?3#/5?5?s.,,,7XBy%/3?5?#?#/5/#/5?5/#/573?5/?3?5?5??5?33,,BBB!,B,',XX,!,,XB,f&'w5/#3?5'#35/5/#3?##/5?5/#/5?5?3?3t2,yXX,7,!!B,,7,X,,,7!,!n4%HRg7'#?#/5?7#/?35/7#/5?3~7BM,,By7!B,!BBM,,By!,!B<_/?5/#37/#/5?5/5?33?37!!B,,7!7,7!X!XB,n,7!7&&/5?5?5?,,,,R>
#/5/5?5?3
,!!B!!X ,!!B!B!`~@%##'5?3?5/5/?3O!,X!!,7B!7!!,X!,!,7!7!n`]%##/#/5?5/#/5?5/#/?375/5?3?5?333n!B7<,!,,7BD+%#/5/#/5?3?5/5?339BX,,,X7#/?5/5?3,,,&,,v%!/?33`,,n7/5?3]!&!v+#'5?e,7!7B!!7M,D,7!7B!!7M,<#d5/#/#3?/5?5?5?3
X,,BX!M!B7,B,77XX,X!!B7,B77XR*#//5/5/5?3
X,!2J,!n<X#/##/5?5?5?5?5/##/5?33{,XB77!,X7B!7H,77!,X7!7,`%##/#/5?33?5/#/5?5/##/?!?3
c,,n,,,,c!hc,,,,c!fc%/5/###/5/5?5/5?5?33?3?5/5?3,BBB,!X,nn,!,nP<&c##3#/#/#/5?3?5/#/5/5?5?3?3?3+X,B!BXB,,,,!,!BX,XBB!Pb|%/#/#3?3?##/5/5?5?5?5?
33p,,cXBB!B,&n!XBX!B,BP&X	#/5?5?5?5?5?5/!#/5?!?3!!B!,,,!!,,,B!,,,,&+f5/#3?/#3?#/5?5/5?3v,7,,B,yBMX!XB!77J7,B,!BM,X!B!B77hc#/5?5?5/###/5?3#/#3?
3!XBnn!B!,,!7ZnBX,!BXn!!,,!7PD./5?7#/5?3?3,,!B,H,,B,,|v(#/5?5?3#/5?3B,7BB7/,vR)#/5?
3ec7XnMX,
c7,XnBMXB>###/5?3?3##/?3?3?3?3{nX!n,,,,.,!h5/?5/?{!c,BB7,!c,,BB7,,i#/5?3/5?3?/##/5?3?3?33s!XB,,!,,B!,XB,n,!,%/#3?5?5/337##/5/#3?3#/5?3,!,,B7BB,,B,!X!X!,B,B!,,!BBn,,!X!!,nP
q%5/#3?#/5/#/##/?5?5?5?5?5?5?3,!c,B,!,Xn,!BX,X,,,!,Xnf55/#?3?/#/#3?3?##//5/5/?3?33
,!B,,BM!7B,,JX,B!B!!4,7,,:b<q	#/5/5?5?3/33?3W,!,!Bn7n!!!!7,,2,!,nB!B7n!!B!!7,,f<,g%5/##3?3?
###//5?3?33B!B,B!c!7!BX,X7!B!Bn!cB!7!4,7!,R `#!3?3?#33?3?3#!//5/5?3?!?3AB,XX,X,,XXvB,,v,,P/##?3?3##/5/5/5?!BB7B,,J7B,,|&&{%#/5?5?5?3
#/##3?5/#/?3?3!B77,BB!BBBn,,&!77XnB!BBn,&U#/5?5/#/5?5?5?3?3?5/5?,,nBX,,#/5?5?5/5?3s,nXn^f&Y#/##/5733?5/5/#/5?3?3?3?3BnBB!,X,,n,B!,,&O#/
#/5?/5?3?	3X77!,,X77XB,,!,,<%###/?33?3?3B&,h<^/5?5/##/#/#/5/5?3
3?	3W,BB!!XB^,BB!,,!X&RL%#/##/5??
3?5/5?3,,nX,M7,,B,nX,,BvM7,X<L3}%5/5/#33?/#/#/5?5?3
!,,!n!MXX7Mn!,,B!!!XXBB7M,|<&,`5/#/##33?
	#///5?3?3BBB,!cX!n!,,nJB!X!!,4n&0u%5/#3?5/5??#/##/5/5?MnB!7M,,!!BXB!7BMn,BB,!77,!!X,nB!7n<&c/#3?#/##/5?5/5/?3?3?3X,Bt,BX!7,7JX,,BoXX!7,7<z%###/#/#/?33?5/##/5?3?3#/#3?XBnBBX,!,!,!,,hXB,,X!,!!,,,U&-##/5?/#/5?3?!nBvnfY%#/?33?5?5/5/5?37nBB!,,,B!B,7nB!,,B!,nnfs/5/5/5/5?/5/?3?5?5?5?3!,,,,p,!,,X,,,,BX,Be#//5/5/5?33?
3?5/5?37,B,B,!,,,!,.B7,B,B,,!B,,,!,XRI#/##/5?5/5?33?3<B7B,,7,777!,,,yn7B,,7,77,7!B,,y,|<<T/5/5?3
?3+!!y!!!!!!,77,!!yn!!!!!!,77,f
Z###/5?5/#/5?!?33
3?3?3?3!BXX!!M7,,,2!XB!!M7,
(#//5?3?3#3?3Ƅnn,B4,D,#/5739,7!MM7!,7!MM7! #'573?3?/5/#/573,Xn4!%#/#/5?5?3BBn!BBn!X	%!'5?!`X,.7/
573,7,7!,,7,7!|h%|5/5/3?37#/5/5/####/5??5?5?3v!,,,y,,nB,!!,B,,X,,,n,!XB<<k###/#//5?33?3?3?5/#/5?3?5/#/###/5?3+!,cB!n,XB,!B,!n!,cXB!BHB,!B!nRd%#/5?3?3#/#
3?	3,X!,!,n!,!,X!,!n!,!$<&4%5/5/
##3?3?5?5?##/5?5/5?5/5?3?33!XB,77nnB!!BX,!,!!7Bn,!,!B!,!,,6RX##3##/#?3###/5?5?5/5?3?!+!B,,B,,X,X !,,,X,Xn,G##3##/5/5?5?3?3?3BBX!BBLBB!B<~r%#/5?3?3?3#/##
3?5/#/5?33+X!B!n!!B!BB,,XX!7,Xn,~X!!n!!nB!XB!7,XBk G%#/5/###'?5?33?3?5?XXBf&(#/5?5?5?5/5?3,,,X,,|b^#/##/
?33?5?5/5/#/5?3?33W!B!!X,X,B!!!,<K#/##/?33?
3,,,!,M,X,,,B!M,h@#/###/5?5?5?5?!BBnX,,XnX,,B,,hW#/5?5/5//#/5//5??!!X!B,X!!X!BH?<RN#/#/?5?33?5?5?3+,Bc,,,7!X,n,Bc,t,7!XB<6%5/#3?3?	####/5?5?5?33<n,,!,BXcn!,,,!,nXn,!XX!n!B!,P6!U5/#3?#/?3?3?33,BBc!nnBBX!`,B!nnh!BP&<,s%5/#3?5/?3?/##/5/5?5?5?5?3!B!X,Bc!7B!B!B!XBn!X!!,!B!7!!BX,!Xn!fh<$5/#/#3?3?37#/##/5?5/5/5/5/5/5?3?3,7,yX!XXJ,,7,!nBBXXhl%	##/5?3?3?5/#/5?3
,BBXB!!M7X!!!!B!&,B!!M7!!!!B!R,##/5?/##/5?!<,&tv,PR&s%#/#/5/5?5?5?33?5?/5/5/5?3A!!XB,!nX!!7!!X,!,,BX!!B7X h#/5/5/5?33?5?5?5?3,,!,,B,B,,,!n,,nXBXR/5//5/5/5/5/5?3?5?3375?5?5?5?3AB,,,B,BXXn,n,,,B,6W#/#/?5/
5?
3?3+,ny,B7,y!!,nB,nyB7,y!!,,nP&a/5?5/5/5/?3?5?3!,!!B!!,!!B!~&I#!/5?5/##/?3?333?!mB,MBB,,4,BM,,<H7#/5?/?5/?33,7!&X7!,X#/5??Gpt4
O7#/?/5/?5/?5/#/5733!,,!Z4%#//5?3?33?,!XB!!X!6H5/###/5/#33?#/#/#/5?5?3?33?3?33h,,,B,!!7!!,,!X,B,!,v,,,,,X!!!!!,!Xn,!n4"(,048<@OSW
 &*.26:>BFJNR753753'5/5?37537537'735353535353753#'5?35353'5?5/5'##/##/5?5/?3373#'57335353#'?3/#'573?353'57'57535353'57753'5?53535353'73753'57535353'735353537537537535353537537537!!7X,BB,XnX4vX,B<!!7Xnq`XUXX,B,Jn6I%#/5/#3/?5/5/5?5?33{!,nB,!,!n,,!X,4)/##/5?3?5?5?3B,,MB,,Mv%!/?33`,,&&/5?5?5?,,,,&&/5?5?5?,,,,n1/5?5?3#/5?5?s.,,,7XBn1/5?5?3#/5?5?s.,,,7XB	
%)-E'#37#3#37#3#37'?'3?#37#3#/5?35/##	#'5/575##'575/##'5'#3?5?5?5?#/#/5/5/5?5?5?33X,,,,nnB!,,B,!XBX!n,!7!!,ny7c,,7n!75BB,n,!XX,7X,n!7,!!n,n"p0tt	F		
82
<(br8JT\6 d!L!"#\#$%&'()++,-./f04112
2p223F456789:;n;<=>R?<@AXB8C`DEF4GPHZIJKLJM
MRN(NPBTTUDUUVdVWZ>^$?`W&=^
80k
M	4	^	$	?	`	W	&	=Copyright (c) Randall Munroe's biggest fan 2009. Created by www.fontifier.com. usa-1lip-4fvu15Copyright (c) Randall Munroe's biggest fan 2009. Created by www.fontifier.com. usa-1lip-4fvu15Humor SansHumor SansRegularRegularHumor SansHumor SansFontifier 2.9 (172) www.fontifier.com Humor SansFontifier 2.9 (172) www.fontifier.com Humor SansVersion 2.9 28/3/09Version 2.9 28/3/09HumorSansHumorSansdl	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a

 OS/2p,(NcmapAH3(|glyf3Z>headԡw6hhea$hmtxԺ
xlocaR^maxp name!`Qpostcf_<<3<3  llS4@
@?2Alts@  42 ^      ^  $      : 2  P : | $  P $       $ : P  |   f :  f : $  f | | : | : f P $   | $   H t   : | P | |  | f    P $ |  : f       |          t    ^ ^  $$	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcedfijghkX~         SOM߿~3#/5/5?3#/5?3!,,7!B,.!,n!Bn1/5?5?3#/5?5?s.,,,7XBy%/3?5?#?#/5/#/5?5/#/573?5/?3?5?5??5?33,,BBB!,B,',XX,!,,XB,f&'w5/#3?5'#35/5/#3?##/5?5/#/5?5?3?3t2,yXX,7,!!B,,7,X,,,7!,!n4%HRg7'#?#/5?7#/?35/7#/5?3~7BM,,By7!B,!BBM,,By!,!B<_/?5/#37/#/5?5/5?33?37!!B,,7!7,7!X!XB,n,7!7&&/5?5?5?,,,,R>
#/5/5?5?3
,!!B!!X ,!!B!B!`~@%##'5?3?5/5/?3O!,X!!,7B!7!!,X!,!,7!7!n`]%##/#/5?5/#/5?5/#/?375/5?3?5?333n!B7<,!,,7BD+%#/5/#/5?3?5/5?339BX,,,X7#/?5/5?3,,,&,,v%!/?33`,,n7/5?3]!&!v+#'5?e,7!7B!!7M,D,7!7B!!7M,<#d5/#/#3?/5?5?5?3
X,,BX!M!B7,B,77XX,X!!B7,B77XR*#//5/5/5?3
X,!2J,!n<X#/##/5?5?5?5?5/##/5?33{,XB77!,X7B!7H,77!,X7!7,`%##/#/5?33?5/#/5?5/##/?!?3
c,,n,,,,c!hc,,,,c!fc%/5/###/5/5?5/5?5?33?3?5/5?3,BBB,!X,nn,!,nP<&c##3#/#/#/5?3?5/#/5/5?5?3?3?3+X,B!BXB,,,,!,!BX,XBB!Pb|%/#/#3?3?##/5/5?5?5?5?
33p,,cXBB!B,&n!XBX!B,BP&X	#/5?5?5?5?5?5/!#/5?!?3!!B!,,,!!,,,B!,,,,&+f5/#3?/#3?#/5?5/5?3v,7,,B,yBMX!XB!77J7,B,!BM,X!B!B77hc#/5?5?5/###/5?3#/#3?
3!XBnn!B!,,!7ZnBX,!BXn!!,,!7PD./5?7#/5?3?3,,!B,H,,B,,|v(#/5?5?3#/5?3B,7BB7/,vR)#/5?
3ec7XnMX,
c7,XnBMXB>###/5?3?3##/?3?3?3?3{nX!n,,,,.,!h5/?5/?{!c,BB7,!c,,BB7,,i#/5?3/5?3?/##/5?3?3?33s!XB,,!,,B!,XB,n,!,%/#3?5?5/337##/5/#3?3#/5?3,!,,B7BB,,B,!X!X!,B,B!,,!BBn,,!X!!,nP
q%5/#3?#/5/#/##/?5?5?5?5?5?5?3,!c,B,!,Xn,!BX,X,,,!,Xnf55/#?3?/#/#3?3?##//5/5/?3?33
,!B,,BM!7B,,JX,B!B!!4,7,,:b<q	#/5/5?5?3/33?3W,!,!Bn7n!!!!7,,2,!,nB!B7n!!B!!7,,f<,g%5/##3?3?
###//5?3?33B!B,B!c!7!BX,X7!B!Bn!cB!7!4,7!,R `#!3?3?#33?3?3#!//5/5?3?!?3AB,XX,X,,XXvB,,v,,P/##?3?3##/5/5/5?!BB7B,,J7B,,|&&{%#/5?5?5?3
#/##3?5/#/?3?3!B77,BB!BBBn,,&!77XnB!BBn,&U#/5?5/#/5?5?5?3?3?5/5?,,nBX,,#/5?5?5/5?3s,nXn^f&Y#/##/5733?5/5/#/5?3?3?3?3BnBB!,X,,n,B!,,&O#/
#/5?/5?3?	3X77!,,X77XB,,!,,<%###/?33?3?3B&,h<^/5?5/##/#/#/5/5?3
3?	3W,BB!!XB^,BB!,,!X&RL%#/##/5??
3?5/5?3,,nX,M7,,B,nX,,BvM7,X<L3}%5/5/#33?/#/#/5?5?3
!,,!n!MXX7Mn!,,B!!!XXBB7M,|<&,`5/#/##33?
	#///5?3?3BBB,!cX!n!,,nJB!X!!,4n&0u%5/#3?5/5??#/##/5/5?MnB!7M,,!!BXB!7BMn,BB,!77,!!X,nB!7n<&c/#3?#/##/5?5/5/?3?3?3X,Bt,BX!7,7JX,,BoXX!7,7<z%###/#/#/?33?5/##/5?3?3#/#3?XBnBBX,!,!,!,,hXB,,X!,!!,,,U&-##/5?/#/5?3?!nBvnfY%#/?33?5?5/5/5?37nBB!,,,B!B,7nB!,,B!,nnfs/5/5/5/5?/5/?3?5?5?5?3!,,,,p,!,,X,,,,BX,Be#//5/5/5?33?
3?5/5?37,B,B,!,,,!,.B7,B,B,,!B,,,!,XRI#/##/5?5/5?33?3<B7B,,7,777!,,,yn7B,,7,77,7!B,,y,|<<T/5/5?3
?3+!!y!!!!!!,77,!!yn!!!!!!,77,f
Z###/5?5/#/5?!?33
3?3?3?3!BXX!!M7,,,2!XB!!M7,
(#//5?3?3#3?3Ƅnn,B4,D,#/5739,7!MM7!,7!MM7! #'573?3?/5/#/573,Xn4!%#/#/5?5?3BBn!BBn!X	%!'5?!`X,.7/
573,7,7!,,7,7!|h%|5/5/3?37#/5/5/####/5??5?5?3v!,,,y,,nB,!!,B,,X,,,n,!XB<<k###/#//5?33?3?3?5/#/5?3?5/#/###/5?3+!,cB!n,XB,!B,!n!,cXB!BHB,!B!nRd%#/5?3?3#/#
3?	3,X!,!,n!,!,X!,!n!,!$<&4%5/5/
##3?3?5?5?##/5?5/5?5/5?3?33!XB,77nnB!!BX,!,!!7Bn,!,!B!,!,,6RX##3##/#?3###/5?5?5/5?3?!+!B,,B,,X,X !,,,X,Xn,G##3##/5/5?5?3?3?3BBX!BBLBB!B<~r%#/5?3?3?3#/##
3?5/#/5?33+X!B!n!!B!BB,,XX!7,Xn,~X!!n!!nB!XB!7,XBk G%#/5/###'?5?33?3?5?XXBf&(#/5?5?5?5/5?3,,,X,,|b^#/##/
?33?5?5/5/#/5?3?33W!B!!X,X,B!!!,<K#/##/?33?
3,,,!,M,X,,,B!M,h@#/###/5?5?5?5?!BBnX,,XnX,,B,,hW#/5?5/5//#/5//5??!!X!B,X!!X!BH?<RN#/#/?5?33?5?5?3+,Bc,,,7!X,n,Bc,t,7!XB<6%5/#3?3?	####/5?5?5?33<n,,!,BXcn!,,,!,nXn,!XX!n!B!,P6!U5/#3?#/?3?3?33,BBc!nnBBX!`,B!nnh!BP&<,s%5/#3?5/?3?/##/5/5?5?5?5?3!B!X,Bc!7B!B!B!XBn!X!!,!B!7!!BX,!Xn!fh<$5/#/#3?3?37#/##/5?5/5/5/5/5/5?3?3,7,yX!XXJ,,7,!nBBXXhl%	##/5?3?3?5/#/5?3
,BBXB!!M7X!!!!B!&,B!!M7!!!!B!R,##/5?/##/5?!<,&tv,PR&s%#/#/5/5?5?5?33?5?/5/5/5?3A!!XB,!nX!!7!!X,!,,BX!!B7X h#/5/5/5?33?5?5?5?3,,!,,B,B,,,!n,,nXBXR/5//5/5/5/5/5?3?5?3375?5?5?5?3AB,,,B,BXXn,n,,,B,6W#/#/?5/
5?
3?3+,ny,B7,y!!,nB,nyB7,y!!,,nP&a/5?5/5/5/?3?5?3!,!!B!!,!!B!~&I#!/5?5/##/?3?333?!mB,MBB,,4,BM,,<H7#/5?/?5/?33,7!&X7!,X#/5??Gpt4
O7#/?/5/?5/?5/#/5733!,,!Z4%#//5?3?33?,!XB!!X!6H5/###/5/#33?#/#/#/5?5?3?33?3?33h,,,B,!!7!!,,!X,B,!,v,,,,,X!!!!!,!Xn,!n4"(,048<@OSW
 &*.26:>BFJNR753753'5/5?37537537'735353535353753#'5?35353'5?5/5'##/##/5?5/?3373#'57335353#'?3/#'573?353'57'57535353'57753'5?53535353'73753'57535353'735353537537537535353537537537!!7X,BB,XnX4vX,B<!!7Xnq`XUXX,B,Jn6I%#/5/#3/?5/5/5?5?33{!,nB,!,!n,,!X,4)/##/5?3?5?5?3B,,MB,,Mv%!/?33`,,&&/5?5?5?,,,,&&/5?5?5?,,,,n1/5?5?3#/5?5?s.,,,7XBn1/5?5?3#/5?5?s.,,,7XB	
%)-E'#37#3#37#3#37'?'3?#37#3#/5?35/##	#'5/575##'575/##'5'#3?5?5?5?#/#/5/5/5?5?5?33X,,,,nnB!,,B,!XBX!n,!7!!,ny7c,,7n!75BB,n,!XX,7X,n!7,!!n,n"p0tt	F		
82
<(br8JT\6 d!L!"#\#$%&'()++,-./f04112
2p223F456789:;n;<=>R?<@AXB8C`DEF4GPHZIJKLJM
MRN(NPBTTUDUUVdVWZ>^$?`W&=^
80k
M	4	^	$	?	`	W	&	=Copyright (c) Randall Munroe's biggest fan 2009. Created by www.fontifier.com. usa-1lip-4fvu15Copyright (c) Randall Munroe's biggest fan 2009. Created by www.fontifier.com. usa-1lip-4fvu15Humor SansHumor SansRegularRegularHumor SansHumor SansFontifier 2.9 (172) www.fontifier.com Humor SansFontifier 2.9 (172) www.fontifier.com Humor SansVersion 2.9 28/3/09Version 2.9 28/3/09HumorSansHumorSansdl	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a