| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Hvordan klarer man chr(x) med x > 256 (?) Fra : Mads Aggerholm | 
  Dato :  10-09-09 19:32 |  
  |   
            God dag,
 
 Jeg sidder laver en applikation i C#, som gennem en webrequest opdaterer en 
 tabel på min webside.
 
 For at undgå bøvl med æøå og plinger og så videre, konverterer jeg teksten 
 til ASCII-kode inden selve kaldet, og konverterer den tilbage igen i min 
 PHP-kode inden jeg lægger den ned i tabellen.
 
 Når jeg skal læse data er det bare den anden vej.
 
 Det fungerede fortrinligt, indtil jeg stødte på et navn med "C". C omsættes 
 til ASCII 268 i C# (det kan den fint håndtere), men på PHP-siden bliver 
 chr(268) lavet om til chr(12) - åbenbart fordi 268 - 256 = 12, og 256 er 
 max!
 
 Er der en måde man kan gøre det på? Kan PHP bringes til at acceptere 
 ASCII-koder større end 256??
 
 Venlig hilsen
 Mads Aggerholm 
 
  
            
             |   |   
            
        
 
            
         
           Mads Aggerholm (10-09-2009) 
         
	
            | Kommentar Fra : Mads Aggerholm | 
  Dato :  10-09-09 20:13 |  
  |   
            > Det fungerede fortrinligt, indtil jeg stødte på et navn med "C". C 
 > omsættes til ASCII 268 i C# (det kan den fint håndtere), men på PHP-siden 
 > bliver chr(268) lavet om til chr(12) - åbenbart fordi 268 - 256 = 12, og 
 > 256 er max!
 
 Nå! Nu kan jeg se, at det "C" jeg taler om er blevet lavet om til et 
 almindeligt C i mit indlæg.
 Lad mig lige forklare, at der er tale om et C med sådan en lille hårsløjfe 
 oven på. Det bruges i  Tjekkoslovakiet, og kan ses på denne side omhandlende 
 forfatteren Karel Capek.
 
 Venlig hilsen
 Mads Aggerholm
  
 
  
            
             |   |   
            
        
 
            
         
           Bertel Lund Hansen (10-09-2009) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  10-09-09 21:28 |  
  |  
 
            Mads Aggerholm skrev:
 > Lad mig lige forklare, at der er tale om et C med sådan en lille hårsløjfe 
 > oven på. Det bruges i  Tjekkoslovakiet, og kan ses på denne side omhandlende 
 > forfatteren Karel Capek.
 Du skal have fat i noget med UTF-8 hvis du skal håndtere tegn
 over kode 256.
 Det er ikke nok at erklære UTF.-8 i HTML-sidens tegnerklæring.
 Serveren skal også sættes op til at servere det - og siderne skal
 kodes med en editor der kan benytte det.
 -- 
 Bertel
 http://bertel.lundhansen.dk/         FIDUSO:  http://fiduso.dk/
            
             |   |   
            
        
 
            
         
            Martin (10-09-2009) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  10-09-09 21:51 |  
  |   
            Bertel Lund Hansen wrote:
 > Mads Aggerholm skrev:
 > 
 >> Lad mig lige forklare, at der er tale om et C med sådan en lille hårsløjfe 
 >> oven på. Det bruges i  Tjekkoslovakiet, og kan ses på denne side omhandlende 
 >> forfatteren Karel Capek.
 > 
 > Du skal have fat i noget med UTF-8 hvis du skal håndtere tegn
 > over kode 256.
 > 
 > Det er ikke nok at erklære UTF.-8 i HTML-sidens tegnerklæring.
 > Serveren skal også sættes op til at servere det - og siderne skal
 > kodes med en editor der kan benytte det.
 > 
 
 <?php
 header('content-type: text/html; charset=utf-8');
 
 også husk at gemme dine filer som UTF-8 (her kan notepad vistnok ikke
 være med, brug fx. intype)
  
            
             |   |   
            
        
 
            
         
             Stig Johansen (11-09-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  11-09-09 13:29 |  
  |   
            Martin wrote:
 
 > også husk at gemme dine filer som UTF-8 (her kan notepad vistnok ikke
 > være med, brug fx. intype)
 
 Nåh - interessant, min notepad, som fulgte med min Win2K pro kan da gemme
 både som Ansi,Utf-8 samt UTF-16 - little og big endian.
 
 Hvilken notepad bruger du?
 
 Bortset fra det, så handler det om _unicode_  (codepoint > 127, alternativt
 > 255), hvor UTF-8 kun er en af mange encoding schemes.
 
 Selvfølgelig hvis man ikke kan 'nøjes' med iso-8859-1 eller andet single
 byte charset.
 
 -- 
 Med venlig hilsen
 Stig Johansen
  
            
             |   |   
            
        
 
            
         
              Philip Nunnegaard (11-09-2009) 
         
	
            | Kommentar Fra : Philip Nunnegaard | 
  Dato :  11-09-09 15:35 |  
  |  
 
            Stig Johansen skrev:
 > Nåh - interessant, min notepad, som fulgte med min Win2K pro kan da gemme
 > både som Ansi,Utf-8 samt UTF-16 - little og big endian.
 Min Notepad har samme 4 muligheder som du lister op.
 Jeg har Vista.
 -- 
 Philip -  http://chartbase.dk |  http://www.hitsurf.dk
            
             |   |   
            
        
 
            
         
              Martin (11-09-2009) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  11-09-09 18:21 |  
  |   
            Stig Johansen wrote:
 > Martin wrote:
 > 
 >> også husk at gemme dine filer som UTF-8 (her kan notepad vistnok ikke
 >> være med, brug fx. intype)
 > 
 > Nåh - interessant, min notepad, som fulgte med min Win2K pro kan da gemme
 > både som Ansi,Utf-8 samt UTF-16 - little og big endian.
 > 
 > Hvilken notepad bruger du?
 
 Hmm... så er det sku nok bare mig der ikke bruger den nok høhø - det er
 jeg sku ked af at have sagt så :)
 
 notepad.exe eksisterer slet ikke hos mig mere, den er kylet ud :D
 
 > 
 > Bortset fra det, så handler det om _unicode_  (codepoint > 127, alternativt
 >> 255), hvor UTF-8 kun er en af mange encoding schemes.
 > 
 > Selvfølgelig hvis man ikke kan 'nøjes' med iso-8859-1 eller andet single
 > byte charset.
 > 
 
 Hvad er egentlig det mest korrekte tegnsæt at bruge?
 - Ved enkelt sproget (dansk) ?
 - Ved flersproget (dansk, svensk og tysk fx) ?
  
            
             |   |   
            
        
 
            
         
               Bertel Lund Hansen (11-09-2009) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  11-09-09 18:24 |  
  |  
 
            Martin skrev:
 > Hvad er egentlig det mest korrekte tegnsæt at bruge?
 Et der omfatter de tegn man har brug for.
 > - Ved enkelt sproget (dansk) ?
 > - Ved flersproget (dansk, svensk og tysk fx) ?
 Alle nævnte kan skrives med ISO-8859-1.
 -- 
 Bertel
 http://bertel.lundhansen.dk/         FIDUSO:  http://fiduso.dk/
            
             |   |   
            
        
 
            
         
                Martin (11-09-2009) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  11-09-09 18:37 |  
  |   
            Bertel Lund Hansen wrote:
 > Martin skrev:
 > 
 >> Hvad er egentlig det mest korrekte tegnsæt at bruge?
 > 
 > Et der omfatter de tegn man har brug for.
 > 
 >> - Ved enkelt sproget (dansk) ?
 >> - Ved flersproget (dansk, svensk og tysk fx) ?
 > 
 > Alle nævnte kan skrives med ISO-8859-1.
 > 
 
 Dvs vi skal lidt mere syd på grækenland fx. før et andet tegnsæt er
 nødvendigt?
  
            
             |   |   
            
        
 
            
         
                 Bertel Lund Hansen (11-09-2009) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  11-09-09 20:26 |  
  |  
 
            Martin skrev:
 > Dvs vi skal lidt mere syd på grækenland fx. før et andet tegnsæt er
 > nødvendigt?
 F.eks. græsk, russisk og arabisk kan ikke skrives med latinske
 bogstaver for slet ikke at tale om kinesisk og japansk.
 -- 
 Bertel
 http://bertel.lundhansen.dk/         FIDUSO:  http://fiduso.dk/
            
             |   |   
            
        
 
            
         
                 Stig Johansen (12-09-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  12-09-09 01:39 |  
  |  
 
            Martin wrote:
 > Bertel Lund Hansen wrote:
 >> Martin skrev:
 >> 
 >>> Hvad er egentlig det mest korrekte tegnsæt at bruge?
 >> 
 >> Et der omfatter de tegn man har brug for.
 >> 
 >>> - Ved enkelt sproget (dansk) ?
 >>> - Ved flersproget (dansk, svensk og tysk fx) ?
 >> 
 >> Alle nævnte kan skrives med ISO-8859-1.
 >> 
 > 
 > Dvs vi skal lidt mere syd på grækenland fx. før et andet tegnsæt er
 > nødvendigt?
 I forbindelse med en anden diskussion lavede jeg et lille testprogram, der
 udskriver alle 'tegn' fra 1 til 255.
 < http://w-o-p-r.dk/test/iso.win.chars.asp?charset=windows-1252>
Data bliver serveret uden angivelse af charset, så øvelsen gik ud på at se
 om data blev vist forskelligt afhængig af <meta> tagget.
 Men i stedet for at sige 'mere sydpå', kan man sige, at hvis du har brug for
 tegn, der ikke vises, så er det utf-8.
 Ok, der er også andre codepages til single byte tegnsæt, men dem tror jeg
 ikke er relevante i DK.
 -- 
 Med venlig hilsen
 Stig Johansen
            
              |   |   
            
        
 
            
         
             Mads Aggerholm (11-09-2009) 
         
	
            | Kommentar Fra : Mads Aggerholm | 
  Dato :  11-09-09 19:12 |  
  |   
            >>
 >> Du skal have fat i noget med UTF-8 hvis du skal håndtere tegn
 >> over kode 256.
 >>
 >> Det er ikke nok at erklære UTF.-8 i HTML-sidens tegnerklæring.
 >> Serveren skal også sættes op til at servere det - og siderne skal
 >> kodes med en editor der kan benytte det.
 >>
 >
 > <?php
 > header('content-type: text/html; charset=utf-8');
 >
 > også husk at gemme dine filer som UTF-8 (her kan notepad vistnok ikke
 > være med, brug fx. intype)
 
 Jeg forstår ikke helt: "siderne skal kodes med en editor der kan benytte 
 det"
 
 Jeg gemmer mine "sider" som .txt, og jeg kan se i notesblok står der ANSI 
 som default.
 Hvad hjælper det at gemme dem som UTF-8?? Det er jo i princippet bare en 
 række kommandoer?
 
 Når man bruger kommandoen "chr(268)" bliver resultatet så forskelligt 
 afhængig af om selve scriptet er gemt som UTF-8 eller ej? 
 
  
            
             |   |   
            
        
 
            
         
              Martin (11-09-2009) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  11-09-09 19:21 |  
  |   
            Mads Aggerholm wrote:
 >>>
 >>> Du skal have fat i noget med UTF-8 hvis du skal håndtere tegn
 >>> over kode 256.
 >>>
 >>> Det er ikke nok at erklære UTF.-8 i HTML-sidens tegnerklæring.
 >>> Serveren skal også sættes op til at servere det - og siderne skal
 >>> kodes med en editor der kan benytte det.
 >>>
 >>
 >> <?php
 >> header('content-type: text/html; charset=utf-8');
 >>
 >> også husk at gemme dine filer som UTF-8 (her kan notepad vistnok ikke
 >> være med, brug fx. intype)
 > 
 > Jeg forstår ikke helt: "siderne skal kodes med en editor der kan benytte
 > det"
 > 
 > Jeg gemmer mine "sider" som .txt, og jeg kan se i notesblok står der
 > ANSI som default.
 > Hvad hjælper det at gemme dem som UTF-8?? Det er jo i princippet bare en
 > række kommandoer?
 > 
 > Når man bruger kommandoen "chr(268)" bliver resultatet så forskelligt
 > afhængig af om selve scriptet er gemt som UTF-8 eller ej?
 
 Bertels svar 10-09-2009 22:50 siger det perfekt...
 
 -Citat-
 Du skal have fat i noget med UTF-8 hvis du skal håndtere tegn
 over kode 256.
 
 Det er ikke nok at erklære UTF.-8 i HTML-sidens tegnerklæring.
 Serveren skal også sættes op til at servere det - og siderne skal
 kodes med en editor der kan benytte det.
 -Citat slut-
  
            
             |   |   
            
        
 
            
         
               Mads Aggerholm (11-09-2009) 
         
	
            | Kommentar Fra : Mads Aggerholm | 
  Dato :  11-09-09 20:08 |  
  |   
            >
 > Bertels svar 10-09-2009 22:50 siger det perfekt...
 >
 > -Citat-
 > Du skal have fat i noget med UTF-8 hvis du skal håndtere tegn
 > over kode 256.
 >
 > Det er ikke nok at erklære UTF.-8 i HTML-sidens tegnerklæring.
 > Serveren skal også sættes op til at servere det - og siderne skal
 > kodes med en editor der kan benytte det.
 > -Citat slut-
 
 Det med serveren kan jeg forstå.
 
 Men "Siderne skal kodes med en editor der kan benytte det" er altså sort for 
 mig.
 Jeg kan forstå, hvis planen var, at det dér "C-med-sløjfe-på" skulle skrives 
 direkte i koden - hardkodes, så at sige.
 Når man så gemmer det som alm. txt, ville det måske omskrives til et 
 almindeligt "C", ligesom når jeg sender dette her indlæg afsted.
 Men det er der jo ikke tale om. Både "C-med-sløjfe" og ASCII-værdier er jo 
 bare indhold i variabler. Om koden er gemt som det ene eller det andet burde 
 være ligegyldigt(?) 
 
  
            
             |   |   
            
        
 
            
         
              Bertel Lund Hansen (11-09-2009) 
         
	
            | Kommentar Fra : Bertel Lund Hansen | 
  Dato :  11-09-09 20:33 |  
  |  
 
            Mads Aggerholm skrev:
 > Jeg forstår ikke helt: "siderne skal kodes med en editor der kan benytte 
 > det"
 ASCII omfatter kun koder op til og med 127. ISO-8859-1 omfatter
 ASCII, men definerer derudover også koderne mellem 160 og 255.
 Derved bliver der plads til bl.a. æ, ø og å. Alle disse tegn kan
 rummes i én byte.
 UTF-8 er identisk med ASCII på de første 127 tegn, men tegn efter
 kode 127 fylder i UTF-8 to byte. Hvis din editor kun bruger én
 byte til dem, er det ikke korrekt UTF-8, og så vil tegnene ikke
 blive vist korrekt hvis det er det tegnsæt der forventes.
 > Jeg gemmer mine "sider" som .txt, og jeg kan se i notesblok står der ANSI 
 > som default.
 > Hvad hjælper det at gemme dem som UTF-8?? Det er jo i princippet bare en 
 > række kommandoer?
 Det hjælper ikke noget at læse en doc-fil i et regneark selv om
 det blot er en stribe bytes. Alle filer er jo 'bare' bytes, men
 det betyder ikke at de kan tolkes korrekt af et vilkårligt
 program.
 > Når man bruger kommandoen "chr(268)" bliver resultatet så forskelligt 
 > afhængig af om selve scriptet er gemt som UTF-8 eller ej?
 Ja.
 Tegnene gemmes kun som koder - ikke som kommandoer.
 -- 
 Bertel
 http://bertel.lundhansen.dk/         FIDUSO:  http://fiduso.dk/
            
             |   |   
            
        
 
            
         
               Martin (11-09-2009) 
         
	
            | Kommentar Fra : Martin | 
  Dato :  11-09-09 21:09 |  
  |  
 
            Bertel Lund Hansen wrote:
 > Mads Aggerholm skrev:
 > 
 >> Jeg forstår ikke helt: "siderne skal kodes med en editor der kan benytte 
 >> det"
 > 
 > ASCII omfatter kun koder op til og med 127. ISO-8859-1 omfatter
 > ASCII, men definerer derudover også koderne mellem 160 og 255.
 > Derved bliver der plads til bl.a. æ, ø og å. Alle disse tegn kan
 > rummes i én byte.
 > 
 > UTF-8 er identisk med ASCII på de første 127 tegn, men tegn efter
 > kode 127 fylder i UTF-8 to byte. Hvis din editor kun bruger én
 > byte til dem, er det ikke korrekt UTF-8, og så vil tegnene ikke
 > blive vist korrekt hvis det er det tegnsæt der forventes.
 > 
 >> Jeg gemmer mine "sider" som .txt, og jeg kan se i notesblok står der ANSI 
 >> som default.
 >> Hvad hjælper det at gemme dem som UTF-8?? Det er jo i princippet bare en 
 >> række kommandoer?
 > 
 > Det hjælper ikke noget at læse en doc-fil i et regneark selv om
 > det blot er en stribe bytes. Alle filer er jo 'bare' bytes, men
 > det betyder ikke at de kan tolkes korrekt af et vilkårligt
 > program.
 > 
 >> Når man bruger kommandoen "chr(268)" bliver resultatet så forskelligt 
 >> afhængig af om selve scriptet er gemt som UTF-8 eller ej?
 > 
 > Ja.
 > 
 > Tegnene gemmes kun som koder - ikke som kommandoer.
 > 
 Tak for udredningen, selv nu forstår jeg hvad de forskellige er   
Utroligt at man har arbejdet med webudvikling i flere år uden at vide
 hvad det egentlig med sikkerhed betød hehe.
 og synes lige at wikipediaen var lidt for uoverskulig.
 PS
 Bertel, du burde smide dit svar ind i den danske wikipedia
            
              |   |   
            
        
 
            
         
               Stig Johansen (12-09-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  12-09-09 01:32 |  
  |  
 
            Bertel Lund Hansen wrote:
 > UTF-8 er identisk med ASCII på de første 127 tegn, men tegn efter
 > kode 127 fylder i UTF-8 to byte. 
 Lidt flue**, men tegn over 127 fylder _mindst_ to bytes.
 Jeg kan ikke lige huske hvor mange, men det er op til 6-8 bytes.
 > Hvis din editor kun bruger én 
 > byte til dem, er det ikke korrekt UTF-8, og så vil tegnene ikke
 > blive vist korrekt hvis det er det tegnsæt der forventes.
 Derudover er det lidt specielt formatteret, da den første byte er en slags
 index til den næste byte, så der er særlige krav til formatteringen.
 ANSI/ISO benytter %C2 til de første 64 tegn (over 127), og %C3 til de næste
 64 tegn.
 I forbindelse med noget Ajax, har jeg lavet denne her javascript funktion,
 der sørger for at sende 'wire data' som Ansi/Iso, så man slipper for at
 konvertere serverside:
 < http://w-o-p-r.dk/javascript/UTF8toAnsi.js>
Ud fra koden kan man se lidt om hvordan strukturen er i utf-8.
 -- 
 Med venlig hilsen
 Stig Johansen
            
              |   |   
            
        
 
            
         
             Mads Aggerholm (12-09-2009) 
         
	
            | Kommentar Fra : Mads Aggerholm | 
  Dato :  12-09-09 07:41 |  
  |   
            >>
 >>> Lad mig lige forklare, at der er tale om et C med sådan en lille 
 >>> hårsløjfe
 >>> oven på. Det bruges i  Tjekkoslovakiet, og kan ses på denne side 
 >>> omhandlende
 >>> forfatteren Karel Capek.
 >>
 >> Du skal have fat i noget med UTF-8 hvis du skal håndtere tegn
 >> over kode 256.
 >>
 >> Det er ikke nok at erklære UTF.-8 i HTML-sidens tegnerklæring.
 >> Serveren skal også sættes op til at servere det - og siderne skal
 >> kodes med en editor der kan benytte det.
 >>
 >
 > <?php
 > header('content-type: text/html; charset=utf-8');
 >
 > også husk at gemme dine filer som UTF-8 (her kan notepad vistnok ikke
 > være med, brug fx. intype)
 
 Hej Martin,
 
 Tak for dit svar.
 
 Desværre ser det ikke ud til at fungere.
 
 Jeg har lavet en lille test:
 
 <?php
 
    header('content-type: text/html; charset=utf-8');
 
    echo "VER 2.20 UTF-8<br>";
    for ($i = 0; $i < 300; $i++)
    {
       $wrk = chr($i);
       echo "          ".$i."  til text:  ".$wrk."  og tilbage igen: 
 ".ord($wrk)."<br>";
    }
 
 ?>
 
 Og gemt den som UTF-8 (med notesblok som editor)
 
 Når den når til 256 begynder den forfra med chr(0).
 
 Er der andet der skal tages højde for? Jeg bemærker din sentens: "Serveren 
 skal også sættes op til at servere det " - det kunne man tro at den ikke er, 
 men det er jo ikke noget jeg er herre over(?)
 
 Venlig hilsen
 
 Mads Aggerholm 
 
  
            
             |   |   
            
        
 
            
         
              Stig Johansen (12-09-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  12-09-09 10:37 |  
  |  
 
            Mads Aggerholm wrote:
 > Når den når til 256 begynder den forfra med chr(0).
 > 
 > Er der andet der skal tages højde for? Jeg bemærker din sentens: "Serveren
 > skal også sættes op til at servere det " - det kunne man tro at den ikke
 > er, men det er jo ikke noget jeg er herre over(?)
 Nu er det godt nok Martin, du spørger, men du er ude i noget rod.
 Enkelt byte tegnsæt kan repræsenteres med værdierne 0-255.
 Unicode værdier repræsenteres med 'codepoints', som ikke nødvendigvis har
 noget at gøre med 'byte værdien'.
 Så at definere en chr(266) er udefineret, med mindre det er unicode.
 Hvis chr(266) er unicode, så afhænger context af hvilket encoding scheme der
 er brugt (UTF-8,UTF-16,UCS-2,UCS-4 - samt tilhørende little eller big
 endian).
 Unicode er tiltænkt at skulle indeholde samtlige kombinationer af
 codepoints/glyphs, men der er nogle begrænsninger i de forskellige encoding
 schemes.
 UCS-2, f. eks., som MS startede med at bruge internt i Win95 æraen, er
 begrænset til 65536 code points. De har så senere skiftet over til UTF-16,
 som også er variabel længde, men indeholder SVJH 1mio + en slat 'tegn'.
 Unicode har 'plads nok', og rygterne vil vide, at selv Klingon[1] har fået
 reserveret codepoints.
 Nu er vi nok ovre i noget upraktisk, men jeg lavede på et tidspunkt en
 mapping mellem 'Jordisk sprog' og 'Klingon':
 < http://w-o-p-r.dk/wopr.toys/klingon.alphabet.asp>
Det er ikke seriøst, kun 'just for fun'   
[1] Dem der kender Startrek.
 -- 
 Med venlig hilsen
 Stig Johansen
            
              |   |   
            
        
 
            
         
               Stig Johansen (12-09-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  12-09-09 11:14 |  
  |   |   |   
            
        
 
            
         
               Stig Johansen (12-09-2009) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  12-09-09 11:21 |  
  |  
 
            Stig Johansen wrote:
 > [1] Dem der kender Startrek.
 Jeg har aldrig fundet ud af om det er seriøst eller ej, men:
 < http://en.wikipedia.org/wiki/Klingon_writing_systems>
og angiveligt skulle codepoints:
 U+F8D0 to U+F8FF
 være forbeholdt Klingon.
 Som sagt ved jeg ikke om det er en joke eller ej, men hvis der er 'plads
 nok' i unicode, så er der vel også plads til lidt humor ;)
 -- 
 Med venlig hilsen
 Stig Johansen
            
              |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |