| 123456789101112131415161718192021222324252627282930313233343536 | 
							- import parse from './parse.js';
 
- import { unsafeStringify } from './stringify.js';
 
- export function stringToBytes(str) {
 
-     str = unescape(encodeURIComponent(str));
 
-     const bytes = new Uint8Array(str.length);
 
-     for (let i = 0; i < str.length; ++i) {
 
-         bytes[i] = str.charCodeAt(i);
 
-     }
 
-     return bytes;
 
- }
 
- export const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
 
- export const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
 
- export default function v35(version, hash, value, namespace, buf, offset) {
 
-     const valueBytes = typeof value === 'string' ? stringToBytes(value) : value;
 
-     const namespaceBytes = typeof namespace === 'string' ? parse(namespace) : namespace;
 
-     if (typeof namespace === 'string') {
 
-         namespace = parse(namespace);
 
-     }
 
-     if (namespace?.length !== 16) {
 
-         throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');
 
-     }
 
-     let bytes = new Uint8Array(16 + valueBytes.length);
 
-     bytes.set(namespaceBytes);
 
-     bytes.set(valueBytes, namespaceBytes.length);
 
-     bytes = hash(bytes);
 
-     bytes[6] = (bytes[6] & 0x0f) | version;
 
-     bytes[8] = (bytes[8] & 0x3f) | 0x80;
 
-     if (buf) {
 
-         offset = offset || 0;
 
-         for (let i = 0; i < 16; ++i) {
 
-             buf[offset + i] = bytes[i];
 
-         }
 
-         return buf;
 
-     }
 
-     return unsafeStringify(bytes);
 
- }
 
 
  |