ELF@p'@8@XSXSp'p'RRRppD ;?T?;?T?;s@T@;BTBTB|BBqUBG@ 0p`P' 0TB|BBqUBG'->TB4oGTB4oG;BTB4oG' 'P;B'->T'A4)UB;BHTB4oGTB'@|TB|^BBqUBG;B'TB4)->T@4oGTBp'"->UB;BTB;BB HHB HHB HHB HH$->UB;BHTB4)->4oGp'"->UB;BTB;BB HHB HHB HHB HH$->UB;BHTB4)->T?4oGTB| ?BqUBGB HHT?4oGTB|>BqUBGB HHT?4oGTB|>BqUzBGB HHT?4oGT yB|  >vBqU pBG B H H  T?4oG T oB|  >lBqU fBG B H H  T ?4  oG T eB|  >bBqU \BG B H H T ?4  oG T[B|>XBqURBGB H HT ?4  oG TQB|~>NBqUHBGB HHT?4oGTGB|j>DBqU>BGB HHT?4oGT=B|V>:BqU4BGB HHB HHB HHB HHB HHB HHB HHB HHB H HB H H B H H  B HH B HHHTB4)GTB|>BqUBGB HHGTB| >BqUBGB HHGT B|=BqUBGB HHGTB|=BqUAGB HHGTA|=AqUAGB HHG TA|=AqUAGB H H G TA|=AqUAGB H H G TA|=AqUAGB H H GTA|=AqUAGB H H GTA|=AqUAGB H H B HHB HHB H HB H HB H HB H HB H HB HHB HHB HHB HHB HHHTA4)UA;AHTA4)B0>EL<iLHHTA4)B0L<=LHHT3?4)B0L<LHHT2?4)B0L<[LHHT1?4)TATA|?AqUAG;A'@H'A 0TA| T @T>4oUAG0'0y0''A 0->;ATA|?AqU{AG 0'A  T~A| T @TI>4oUsAG|}MK|Z u t0 _pMY0'&lA&A&AA  TA| T?T>4oUAG|}MK|Z u tp _pM/0'&vA&|A&AA @TA| T?T>4oUAG@'`|(}M%K|ZPut0_p@M|Zpu ?q@@'&]A&cA&iA&oAA @TxA| T?T=4oUmAG@'`|}MK|ZPutp _p@ M3p'&LA&RA&XAdA 554 5'\A G'A| } | } G T KA|  T *@T&=4 oU @AG ' 5 54  5 | } T+A| T@T.A4oU AG'  G '  G G ' TA| T?T<4oUAG' 4 G G A'| X} U| N} KG G ' 5 54  5 | } T@| T?T@4oU@G'  G '  G G ' EG' 4 G G % @% @| '% @@ G'@ | } G T q@|  T P?T L<4 oU f@G ' 55 4 5T c@|  T 4?T&<4 oU X@G ' 4G | } T :@|  T ?T=@4 oU /@G '  '  G ' B H H  |]R@'}SGG ' 5 5 4 5 G ' 4 G|}T?| T>T?4oU?G'  '  G' EB H H  |   p  p T?| T>T?4oU?G'? T?| Tu>T?4oU?GT?| Tg>TY;4oU?G'p p`'  G `'  T ?|  T @>T ;4 oU ?G  '? T?| T+>T?4oU?G;?p' T?| T>T^;4oU?G' G  p'? PT"?| T=T:4oU?G`'`T?| T=T:4oU>G`'`554 54'? `;?T?|<?qU}?G`p'P|;y?T?|<|?qUv?G@`p0'#;u?`Pp@'B `T s?|  T =Tv?4 oU h?G Tq?| Tr=Tt?4oUf?G;o?'  '  ;@B H H;@B HHB HH;@B HHB H HB H H B H H B H H ;@;@B H H; AB HHB H HB H H ;LAB H HB H H ;ZA;AB H HB H H B HH ; AB HHB HHB H H; AB HHB H HB H H ;AB H HB H H B HH ; AB HHB H HB H H ; AB H HB H H B H H B H H  'A V8;81U8U+8V8{;81U8U8V 88V!8s;81U 8T81U8V8lV#8s;81U"8T 81U8V 8j;81U8U-8V8e;81U8U8V"88V!88V~88V!8Y;81U 8U^8UB8U*8V8P;81U8U8V88V88VW88V8B;81U8U78U8V88V88V=88V82;81U8U8V!88V"88V!88V"88V%88V&8 8V'8!8V(8;#81U'8T%81U#8V%8; 81U$8UT:V$8 ;81U#8UE:V#8;81U"8U6:V"8;81U!8U':V!8;81U 8U:V 8;81U8U :V8;81U8U9V8;81U8U9V8;81U8U9V8;81U8U9V8;81U8U9V8;81U8U9V8;81U8U9V8;81U8U9V8;81U8U9V8;81U8Us9V8;81U8Ud9V8;81U8UU9V8;81U8UF9V8; 81U8U79V8; 81U8U(9V8; 81U8U9V8; 81U8U 9V8; 81U 8U8V 8;81U 8U8V 8;81U 8U8V 8;81U 8U8V 8;81U 8U8V 8;81U8U8V8;81U8U8V8;81U8U8V8;81U8U8V8;81U8Ut8V8;71U8Ue8V8;71U8UV8V8;71U8UG8V8;71U8U88V8;71U7U)8V7;71U7U8V7;71U7U 8V7};71U7Ul=U7;7Uz=U7V77V77V77V77V87V87V87V87V87V87V88V88V88V 88V 88V 88V 88V 88V88V8 8V8 8V8 8V8 8V8 8V88V88V88V88V88V88V88V88V88V88V88V88V 88V!88V"88V#8;81U"8T 81U8V"8;81U!8U!8V%8V,8V18;,81U08V28;-81U18V38V88;381U78V98V@8)VA8 ;<81U@8VB8;=81UA8U9VC8VH81VI8 ;D81UH8VJ8;E81UI8VM86VN8;I81UM8U:U:VK8VR8RVS8;N81UR8VV8vVY8VZ8;U81UY8V]8Vd8 Vk8Vr8Vy8%V8.V87V8@V8IV8RV8[;81U8V8ZV8eV8pV8wV8~V8V8V8V8V8V8;81U8V8V8;81U8V8;81U8V8;81U8V8V8V 9V9;91U9U9U9U9UU9U9;8UA9U/9U9V9;9U9Uv9UD9U9V 9;91U 9U9U9Uo9Ue9U;9U19U9U9V8;8Uz9UX9U&9U8V8;8Uu9US9U!9U8;S8U9U9U9;7UA9U79U-9U#9V9V 99;7UQ9UG9U=9Vg9;b91Uf9Vj9Vs9e9Vt9V}9o9V9;91U9V9;91U9V9;91U9V9V9;91U9U9V9;91U9U9U9U9U9U9V99V99V99V99V99V9cV9hV9uV9TV9y;91U9V9x;91U9V9uV9x;91U9U;V9s;91U9U9;9U:UL:UH:UD:U@:U<:U9U:V9\;91U9U:U:Ui:U9U9;9U:U:V9I;91U9U9V99;9Uu:U9V9;V99V99V:9V99;91U9U9V96;91U9U9;S91U9U9V9);91U9U9V9$;91U9U9V :9V :9V9V99V9V99V9!V99V9%V99V9)V99V99VH:9V9';91U9U9V99V9V99V99V&:9;9U:U:V9;91U9U9V9:2;9U;U;U;U{;Ug;UI;U#;U;U:U:U:Uu:UW:U9:U:U9U9V99V99V99V99V99V99V99V99V99V99;9U;U;Ui;U7;U#;U;U:U:U:Uq:US:U1:U:U9U9;1U{;U];U?;U ;U:U:U:U:Ue:UG:U):U:U9U9U9V99V99V9;91U9U9V99V9;91U9U9V99V9{;91U9U9V99;9U9:U9V9m;91U9U9V99V9e;91U9U9V99V!:9V9\;91U9U:V:9;9U:UL:U:V99;9U :U9V99V99V99V:<;91U9U :V :9V:4; :1U :U:V: :V::V:s9V::V:%;:1U:U$:V(::V):;$:1U(:U2:V6:&:VK:+:VB:2:VA:7:VD:>:VC:?:VF:@:VE:A:VH:;C:1UG:UQ:VU:E:VV:;Q:1UU:U_:Vc:S:Vd:;_:1Uc:Um:Vq:a:'system'foreign'filename'system/foreign.scm'imports'rnrs' bytevectors'srfi'srfi-1'srfi-9'gnu'exports'void'float'double'short'unsigned-short'int' unsigned-int'long' unsigned-long'size_t'ssize_t' ptrdiff_t'int8'uint8'uint16'int16'uint32'int32'uint64'int64'intptr_t' uintptr_t'sizeof'alignof' %null-pointer' null-pointer?'pointer?' make-pointer' pointer->scm' scm->pointer'pointer-address'pointer->bytevector'bytevector->pointer'set-pointer-finalizer!'dereference-pointer'string->pointer'pointer->string'pointer->procedure' make-c-struct'parse-c-struct'define-wrapped-pointer-type' declarative?'guile'define-module*'set-current-module'load-extension' string-append' libguile-'effective-version'scm_init_foreign'defined?'procedure->pointer'call-with-deferred-observers'bytevector-pointer-ref'*' misc-error'what machine is this?'bytevector-pointer-set!' *writers*'"bytevector-ieee-single-native-set!'"bytevector-ieee-double-native-set!'bytevector-s8-set!'bytevector-u8-set!'bytevector-s16-native-set!'bytevector-u16-native-set!'bytevector-s32-native-set!'bytevector-u32-native-set!'bytevector-s64-native-set!'bytevector-u64-native-set!' *readers*'!bytevector-ieee-single-native-ref'!bytevector-ieee-double-native-ref'bytevector-s8-ref'bytevector-u8-ref'bytevector-s16-native-ref'bytevector-u16-native-ref'bytevector-s32-native-ref'bytevector-u32-native-ref'bytevector-s64-native-ref'bytevector-u64-native-ref'align'write-c-struct' read-c-struct'macro'make-syntax-transformer'module-export!' out-of-range'Argument 2 out of range: ~S'wrong-type-arg'?Wrong type argument in position 2 (expecting small integer): ~S'<Wrong type argument in position 1 (expecting bytevector): ~S'Argument 3 out of range: ~S'assv-ref'too few values ~S'too many values ~S'reverse'make-bytevector'fold'_'any' $sc-dispatch'-source expression failed to match any pattern'syntax-violation' datum->syntax'gensym'wrap'pointer'top'ribcage'%wrap'l-5973caad119753-7c' type-name'pred'unwrap'print'l-5973caad119753-70'l-5973caad119753-71'l-5973caad119753-72'l-5973caad119753-73'l-5973caad119753-74'stx'l-5973caad119753-6d'hygiene'define-record-type'let'ptr'o' hash-set!'ptr->obj'or'hash-ref'lambda'make-weak-value-hash-table'define'set-record-type-printer!'begin@X@xBCHDEdG8 IJ KLN4P`RTWZ]` cf\hkn qptw$zD}p`Dh*((****** **"(" `7`7`7`7p' `7PQ              EEE EEE "" !!E E@t ?<  ,p48|,TE -ET@  =Z=:=b==z= j==R=b= J===.:=:=2=D,4X9==p' <*PQPQ<RRpE@OM>U@k, zBH9 X9X:8:[::Dp'@T T  D D ]\+@\x0 xB F,a ,    S  E   $) $) $)  -$)   ; $) R YYYYR; ^ ) R YYYYR^ v $) ) Y$) ) Y$) ) Y$) ) Y$) ) Y$) ) Y$) ) Y$) ) Y$) ) Y$) ) YY YYYYYYYYYYY  ) Y ) Y ) Y ) Y ) Y ) Y ) Y ) Y ) Y ) YYYYYYYYYYYYY       ) $,4 <(D0L8P@XHtH|HH 88 ( ( (  ((@ ((008@@@@H88@ P P P P X @ @ P ` ` ` ` h P P ` p p p p x ` ` p      p p                                 xhX0HHHHh08888H08888@08888P08888`08888p08888x0888808888088880"***" 8 $)   (08@D\`l|  $@HL $)   (08@D``p#x"   $)   (08@D``p#x"  $)    (0 8@D0\xx#"+ $)    (0 8@D0\xx#"   $,     $)   $)   $)     $)       @(H0\0d8l0t0xP8888@88PPhhp88@88X(  (X@@@@H@@XXppxX(       $)   $)   $)  Y     $)  Y $)    ,(40H0P8X0`0dP|8888@88X@@HPhh@Hh (   h((@HHPHH``x (@   $)  $)   $)  (0 8@DL ` h(p x |8 (8 $)  $)   (0 8@DH PHpx((0((@ $)  $)    (08@D0\dx 0 ) ) 8@D(`px $)  $)  Y YY YYYYY Y YYY YY YYY YYY YYY YYY YYY YYYY    ((008@DL0`0h8p0x0|HPX080@H 0H   08H88H8HPH8H080 0 ( T -3<T  <  h, 8!!`0D0`>(L%.. . .Guile 3.0.7null-pointer?alignwrite-c-structread-c-structmake-c-structparse-c-struct: system/foreign.scmice-9/boot-9.scm ;,a,,,b,,,b,$,;aw"Y/,.Yhx+aY,Y;`, Kw ,  y; , f% K Y  y; , f%Kw<Y=Y>Y?Y@Y{AYzBYyCYxDYw(  K<=>?@{AzByCxDw' += h w `; < Y; e < h; q3<2 h , 3<2 h <,,,[ kl%$sh,,, ,j2 'v3  h&,2 tJkl%$sh,,, ,j2 'v3  h&,2 ,x Gx ,0 l%$eh,,,, h&,j0  y;%$eh,,,, h&,j0  y; A zJx J<-h L<8{h<(i'Vh,,,), Y>4;3,YT T  hD  8`$\$x2(@, null-pointer?alignwrite-c-structread-c-structmake-c-structparse-c-structclosureargcachevarproctmpmodnameboxnull-pointer?bytevector-pointer-refmodulepairbytevector-pointer-set!*writers*cached*readers*alignwrite-c-structtagcoderead-c-structmake-c-structparse-c-structdefine-wrapped-pointer-typeprimvalpointerbvoffsetulenrlensidxuidxmaxidx+1ptrssvalauunspecifiedoffalignmenttypesvalstypeforeigntotalstxtype-namepredwrapunwrapprintReturn true if POINTER is the null pointer.Define helper procedures to wrap pointer objects into Scheme objects with a disjoint type. Specifically, this macro defines PRED, a predicate for the new Scheme type, WRAP, a procedure that takes a pointer object and returns an object that satisfies PRED, and UNWRAP which does the reverse. PRINT must name a user-defined object printer..guile.procprops.rodata.data.rtl-text.guile.frame-maps.dynamic.strtab.symtab.guile.arities.strtab.guile.arities.guile.docstrs.strtab.guile.docstrs.debug_info.debug_abbrev.debug_str.debug_loc.debug_line.shstrtab