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 2011 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. package net import ( "context" "errors" "internal/bytealg" "internal/itoa" "io" "os" ) // cgoAvailable set to true to indicate that the cgo resolver // is available on Plan 9. Note that on Plan 9 the cgo resolver // does not actually use cgo. const cgoAvailable = true func query(ctx context.Context, filename, query string, bufSize int) (addrs []string, err error) { queryAddrs := func() (addrs []string, err error) { file, err := os.OpenFile(filename, os.O_RDWR, 0) if err != nil { return nil, err } defer file.Close() _, err = file.Seek(0, io.SeekStart) if err != nil { return nil, err } _, err = file.WriteString(query) if err != nil { return nil, err } _, err = file.Seek(0, io.SeekStart) if err != nil { return nil, err } buf := make([]byte, bufSize) for { n, _ := file.Read(buf) if n <= 0 { break } addrs = append(addrs, string(buf[:n])) } return addrs, nil } type ret struct { addrs []string err error } ch := make(chan ret, 1) go func() { addrs, err := queryAddrs() ch <- ret{addrs: addrs, err: err} }() select { case r := <-ch: return r.addrs, r.err case <-ctx.Done(): return nil, &DNSError{ Name: query, Err: ctx.Err().Error(), IsTimeout: ctx.Err() == context.DeadlineExceeded, } } } func queryCS(ctx context.Context, net, host, service string) (res []string, err error) { switch net { case "tcp4", "tcp6": net = "tcp" case "udp4", "udp6": net = "udp" } if host == "" { host = "*" } return query(ctx, netdir+"/cs", net+"!"+host+"!"+service, 128) } func queryCS1(ctx context.Context, net string, ip IP, port int) (clone, dest string, err error) { ips := "*" if len(ip) != 0 && !ip.IsUnspecified() { ips = ip.String() } lines, err := queryCS(ctx, net, ips, itoa.Itoa(port)) if err != nil { return } f := getFields(lines[0]) if len(f) < 2 { return "", "", errors.New("bad response from ndb/cs") } clone, dest = f[0], f[1] return } func queryDNS(ctx context.Context, addr string, typ string) (res []string, err error) { return query(ctx, netdir+"/dns", addr+" "+typ, 1024) } func handlePlan9DNSError(err error, name string) error { if stringsHasSuffix(err.Error(), "dns: name does not exist") || stringsHasSuffix(err.Error(), "dns: resource does not exist; negrcode 0") || stringsHasSuffix(err.Error(), "dns: resource does not exist; negrcode") { return &DNSError{ Err: errNoSuchHost.Error(), Name: name, IsNotFound: true, } } return &DNSError{ Err: err.Error(), Name: name, } } // toLower returns a lower-case version of in. Restricting us to // ASCII is sufficient to handle the IP protocol names and allow // us to not depend on the strings and unicode packages. func toLower(in string) string { for _, c := range in { if 'A' <= c && c <= 'Z' { // Has upper case; need to fix. out := []byte(in) for i := 0; i < len(in); i++ { c := in[i] if 'A' <= c && c <= 'Z' { c += 'a' - 'A' } out[i] = c } return string(out) } } return in } // lookupProtocol looks up IP protocol name and returns // the corresponding protocol number. func lookupProtocol(ctx context.Context, name string) (proto int, err error) { lines, err := query(ctx, netdir+"/cs", "!protocol="+toLower(name), 128) if err != nil { return 0, err } if len(lines) == 0 { return 0, UnknownNetworkError(name) } f := getFields(lines[0]) if len(f) < 2 { return 0, UnknownNetworkError(name) } s := f[1] if n, _, ok := dtoi(s[bytealg.IndexByteString(s, '=')+1:]); ok { return n, nil } return 0, UnknownNetworkError(name) } func (*Resolver) lookupHost(ctx context.Context, host string) (addrs []string, err error) { // Use netdir/cs instead of netdir/dns because cs knows about // host names in local network (e.g. from /lib/ndb/local) lines, err := queryCS(ctx, "net", host, "1") if err != nil { if stringsHasSuffix(err.Error(), "dns failure") { return nil, &DNSError{Err: errNoSuchHost.Error(), Name: host, IsNotFound: true} } return nil, handlePlan9DNSError(err, host) } loop: for _, line := range lines { f := getFields(line) if len(f) < 2 { continue } addr := f[1] if i := bytealg.IndexByteString(addr, '!'); i >= 0 { addr = addr[:i] // remove port } if ParseIP(addr) == nil { continue } // only return unique addresses for _, a := range addrs { if a == addr { continue loop } } addrs = append(addrs, addr) } return } func (r *Resolver) lookupIP(ctx context.Context, network, host string) (addrs []IPAddr, err error) { if order, conf := systemConf().hostLookupOrder(r, host); order != hostLookupCgo { return r.goLookupIP(ctx, network, host, order, conf) } lits, err := r.lookupHost(ctx, host) if err != nil { return } for _, lit := range lits { host, zone := splitHostZone(lit) if ip := ParseIP(host); ip != nil { addr := IPAddr{IP: ip, Zone: zone} addrs = append(addrs, addr) } } return } func (r *Resolver) lookupPort(ctx context.Context, network, service string) (port int, err error) { switch network { case "ip": // no hints if p, err := r.lookupPortWithNetwork(ctx, "tcp", "ip", service); err == nil { return p, nil } return r.lookupPortWithNetwork(ctx, "udp", "ip", service) case "tcp", "tcp4", "tcp6": return r.lookupPortWithNetwork(ctx, "tcp", "tcp", service) case "udp", "udp4", "udp6": return r.lookupPortWithNetwork(ctx, "udp", "udp", service) default: return 0, &DNSError{Err: "unknown network", Name: network + "/" + service} } } func (*Resolver) lookupPortWithNetwork(ctx context.Context, network, errNetwork, service string) (port int, err error) { lines, err := queryCS(ctx, network, "127.0.0.1", toLower(service)) if err != nil { if stringsHasSuffix(err.Error(), "can't translate service") { return 0, &DNSError{Err: "unknown port", Name: errNetwork + "/" + service, IsNotFound: true} } return } if len(lines) == 0 { return 0, &DNSError{Err: "unknown port", Name: errNetwork + "/" + service, IsNotFound: true} } f := getFields(lines[0]) if len(f) < 2 { return 0, &DNSError{Err: "unknown port", Name: errNetwork + "/" + service, IsNotFound: true} } s := f[1] if i := bytealg.IndexByteString(s, '!'); i >= 0 { s = s[i+1:] // remove address } if n, _, ok := dtoi(s); ok { return n, nil } return 0, &DNSError{Err: "unknown port", Name: errNetwork + "/" + service, IsNotFound: true} } func (r *Resolver) lookupCNAME(ctx context.Context, name string) (cname string, err error) { if order, conf := systemConf().hostLookupOrder(r, name); order != hostLookupCgo { return r.goLookupCNAME(ctx, name, order, conf) } lines, err := queryDNS(ctx, name, "cname") if err != nil { if stringsHasSuffix(err.Error(), "dns failure") || stringsHasSuffix(err.Error(), "resource does not exist; negrcode 0") { return absDomainName(name), nil } return "", handlePlan9DNSError(err, cname) } if len(lines) > 0 { if f := getFields(lines[0]); len(f) >= 3 { return f[2] + ".", nil } } return "", errors.New("bad response from ndb/dns") } func (r *Resolver) lookupSRV(ctx context.Context, service, proto, name string) (cname string, addrs []*SRV, err error) { if systemConf().mustUseGoResolver(r) { return r.goLookupSRV(ctx, service, proto, name) } var target string if service == "" && proto == "" { target = name } else { target = "_" + service + "._" + proto + "." + name } lines, err := queryDNS(ctx, target, "srv") if err != nil { return "", nil, handlePlan9DNSError(err, name) } for _, line := range lines { f := getFields(line) if len(f) < 6 { continue } port, _, portOk := dtoi(f[4]) priority, _, priorityOk := dtoi(f[3]) weight, _, weightOk := dtoi(f[2]) if !(portOk && priorityOk && weightOk) { continue } addrs = append(addrs, &SRV{absDomainName(f[5]), uint16(port), uint16(priority), uint16(weight)}) cname = absDomainName(f[0]) } byPriorityWeight(addrs).sort() return } func (r *Resolver) lookupMX(ctx context.Context, name string) (mx []*MX, err error) { if systemConf().mustUseGoResolver(r) { return r.goLookupMX(ctx, name) } lines, err := queryDNS(ctx, name, "mx") if err != nil { return nil, handlePlan9DNSError(err, name) } for _, line := range lines { f := getFields(line) if len(f) < 4 { continue } if pref, _, ok := dtoi(f[2]); ok { mx = append(mx, &MX{absDomainName(f[3]), uint16(pref)}) } } byPref(mx).sort() return } func (r *Resolver) lookupNS(ctx context.Context, name string) (ns []*NS, err error) { if systemConf().mustUseGoResolver(r) { return r.goLookupNS(ctx, name) } lines, err := queryDNS(ctx, name, "ns") if err != nil { return nil, handlePlan9DNSError(err, name) } for _, line := range lines { f := getFields(line) if len(f) < 3 { continue } ns = append(ns, &NS{absDomainName(f[2])}) } return } func (r *Resolver) lookupTXT(ctx context.Context, name string) (txt []string, err error) { if systemConf().mustUseGoResolver(r) { return r.goLookupTXT(ctx, name) } lines, err := queryDNS(ctx, name, "txt") if err != nil { return nil, handlePlan9DNSError(err, name) } for _, line := range lines { if i := bytealg.IndexByteString(line, '\t'); i >= 0 { txt = append(txt, line[i+1:]) } } return } func (r *Resolver) lookupAddr(ctx context.Context, addr string) (name []string, err error) { if order, conf := systemConf().addrLookupOrder(r, addr); order != hostLookupCgo { return r.goLookupPTR(ctx, addr, order, conf) } arpa, err := reverseaddr(addr) if err != nil { return } lines, err := queryDNS(ctx, arpa, "ptr") if err != nil { return nil, handlePlan9DNSError(err, addr) } for _, line := range lines { f := getFields(line) if len(f) < 3 { continue } name = append(name, absDomainName(f[2])) } return } // concurrentThreadsLimit returns the number of threads we permit to // run concurrently doing DNS lookups. func concurrentThreadsLimit() int { return 500 }