PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
// Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // ChaCha8 is ChaCha with 8 rounds. // See https://cr.yp.to/chacha/chacha-20080128.pdf. // // ChaCha8 operates on a 4x4 matrix of uint32 values, initially set to: // // const1 const2 const3 const4 // seed seed seed seed // seed seed seed seed // counter64 0 0 // // We use the same constants as ChaCha20 does, a random seed, // and a counter. Running ChaCha8 on this input produces // a 4x4 matrix of pseudo-random values with as much entropy // as the seed. // // Given SIMD registers that can hold N uint32s, it is possible // to run N ChaCha8 block transformations in parallel by filling // the first register with the N copies of const1, the second // with N copies of const2, and so on, and then running the operations. // // Each iteration of ChaCha8Rand operates over 32 bytes of input and // produces 992 bytes of RNG output, plus 32 bytes of input for the next // iteration. // // The 32 bytes of input are used as a ChaCha8 key, with a zero nonce, to // produce 1024 bytes of output (16 blocks, with counters 0 to 15). // First, for each block, the values 0x61707865, 0x3320646e, 0x79622d32, // 0x6b206574 are subtracted from the 32-bit little-endian words at // position 0, 1, 2, and 3 respectively, and an increasing counter // starting at zero is subtracted from each word at position 12. Then, // this stream is permuted such that for each sequence of four blocks, // first we output the first four bytes of each block, then the next four // bytes of each block, and so on. Finally, the last 32 bytes of output // are used as the input of the next iteration, and the remaining 992 // bytes are the RNG output. // // See https://c2sp.org/chacha8rand for additional details. // // Normal ChaCha20 implementations for encryption use this same // parallelism but then have to deinterlace the results so that // it appears the blocks were generated separately. For the purposes // of generating random numbers, the interlacing is fine. // We are simply locked in to preserving the 4-way interlacing // in any future optimizations. package chacha8rand import ( "internal/goarch" "unsafe" ) // setup sets up 4 ChaCha8 blocks in b32 with the counter and seed. // Note that b32 is [16][4]uint32 not [4][16]uint32: the blocks are interlaced // the same way they would be in a 4-way SIMD implementations. func setup(seed *[4]uint64, b32 *[16][4]uint32, counter uint32) { // Convert to uint64 to do half as many stores to memory. b := (*[16][2]uint64)(unsafe.Pointer(b32)) // Constants; same as in ChaCha20: "expand 32-byte k" b[0][0] = 0x61707865_61707865 b[0][1] = 0x61707865_61707865 b[1][0] = 0x3320646e_3320646e b[1][1] = 0x3320646e_3320646e b[2][0] = 0x79622d32_79622d32 b[2][1] = 0x79622d32_79622d32 b[3][0] = 0x6b206574_6b206574 b[3][1] = 0x6b206574_6b206574 // Seed values. var x64 uint64 var x uint32 x = uint32(seed[0]) x64 = uint64(x)<<32 | uint64(x) b[4][0] = x64 b[4][1] = x64 x = uint32(seed[0] >> 32) x64 = uint64(x)<<32 | uint64(x) b[5][0] = x64 b[5][1] = x64 x = uint32(seed[1]) x64 = uint64(x)<<32 | uint64(x) b[6][0] = x64 b[6][1] = x64 x = uint32(seed[1] >> 32) x64 = uint64(x)<<32 | uint64(x) b[7][0] = x64 b[7][1] = x64 x = uint32(seed[2]) x64 = uint64(x)<<32 | uint64(x) b[8][0] = x64 b[8][1] = x64 x = uint32(seed[2] >> 32) x64 = uint64(x)<<32 | uint64(x) b[9][0] = x64 b[9][1] = x64 x = uint32(seed[3]) x64 = uint64(x)<<32 | uint64(x) b[10][0] = x64 b[10][1] = x64 x = uint32(seed[3] >> 32) x64 = uint64(x)<<32 | uint64(x) b[11][0] = x64 b[11][1] = x64 // Counters. if goarch.BigEndian { b[12][0] = uint64(counter+0)<<32 | uint64(counter+1) b[12][1] = uint64(counter+2)<<32 | uint64(counter+3) } else { b[12][0] = uint64(counter+0) | uint64(counter+1)<<32 b[12][1] = uint64(counter+2) | uint64(counter+3)<<32 } // Zeros. b[13][0] = 0 b[13][1] = 0 b[14][0] = 0 b[14][1] = 0 b[15][0] = 0 b[15][1] = 0 } func _() { // block and block_generic must have same type x := block x = block_generic _ = x } // block_generic is the non-assembly block implementation, // for use on systems without special assembly. // Even on such systems, it is quite fast: on GOOS=386, // ChaCha8 using this code generates random values faster than PCG-DXSM. func block_generic(seed *[4]uint64, buf *[32]uint64, counter uint32) { b := (*[16][4]uint32)(unsafe.Pointer(buf)) setup(seed, b, counter) for i := range b[0] { // Load block i from b[*][i] into local variables. b0 := b[0][i] b1 := b[1][i] b2 := b[2][i] b3 := b[3][i] b4 := b[4][i] b5 := b[5][i] b6 := b[6][i] b7 := b[7][i] b8 := b[8][i] b9 := b[9][i] b10 := b[10][i] b11 := b[11][i] b12 := b[12][i] b13 := b[13][i] b14 := b[14][i] b15 := b[15][i] // 4 iterations of eight quarter-rounds each is 8 rounds for round := 0; round < 4; round++ { b0, b4, b8, b12 = qr(b0, b4, b8, b12) b1, b5, b9, b13 = qr(b1, b5, b9, b13) b2, b6, b10, b14 = qr(b2, b6, b10, b14) b3, b7, b11, b15 = qr(b3, b7, b11, b15) b0, b5, b10, b15 = qr(b0, b5, b10, b15) b1, b6, b11, b12 = qr(b1, b6, b11, b12) b2, b7, b8, b13 = qr(b2, b7, b8, b13) b3, b4, b9, b14 = qr(b3, b4, b9, b14) } // Store block i back into b[*][i]. // Add b4..b11 back to the original key material, // like in ChaCha20, to avoid trivial invertibility. // There is no entropy in b0..b3 and b12..b15 // so we can skip the additions and save some time. b[0][i] = b0 b[1][i] = b1 b[2][i] = b2 b[3][i] = b3 b[4][i] += b4 b[5][i] += b5 b[6][i] += b6 b[7][i] += b7 b[8][i] += b8 b[9][i] += b9 b[10][i] += b10 b[11][i] += b11 b[12][i] = b12 b[13][i] = b13 b[14][i] = b14 b[15][i] = b15 } if goarch.BigEndian { // On a big-endian system, reading the uint32 pairs as uint64s // will word-swap them compared to little-endian, so we word-swap // them here first to make the next swap get the right answer. for i, x := range buf { buf[i] = x>>32 | x<<32 } } } // qr is the (inlinable) ChaCha8 quarter round. func qr(a, b, c, d uint32) (_a, _b, _c, _d uint32) { a += b d ^= a d = d<<16 | d>>16 c += d b ^= c b = b<<12 | b>>20 a += b d ^= a d = d<<8 | d>>24 c += d b ^= c b = b<<7 | b>>25 return a, b, c, d }