1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/components/ui/FileUpload.vue");import { ref } from "/node_modules/.vite/deps/vue.js?v=825bfe78" 2 3 4const _sfc_main = { 5 __name: 'FileUpload', 6 props: { 7 label: String, 8 accept: { 9 type: String, 10 default: '*/*' 11 }, 12 acceptLabel: String, 13 loading: { 14 type: Boolean, 15 default: false 16 }, 17 maxSizeMb: { 18 type: Number, 19 default: 5 20 }, 21 error: String 22}, 23 emits: ['upload'], 24 setup(__props, { expose: __expose, emit: __emit }) { 25 __expose(); 26 27const props = __props 28 29const emit = __emit 30 31const fileInput = ref(null) 32const isDragging = ref(false) 33const localError = ref('') 34 35const validateAndEmit = (file) => { 36 localError.value = '' 37 if (!file) return 38 39 const maxBytes = props.maxSizeMb * 1024 * 1024 40 if (file.size > maxBytes) { 41 localError.value = `Ukuran berkas melebihi batas maksimum (${props.maxSizeMb}MB)` 42 return 43 } 44 45 emit('upload', file) 46} 47 48const handleDrop = (e) => { 49 isDragging.value = false 50 const files = e.dataTransfer.files 51 if (files.length > 0) { 52 validateAndEmit(files[0]) 53 } 54} 55 56const handleFileSelect = (e) => { 57 const files = e.target.files 58 if (files.length > 0) { 59 validateAndEmit(files[0]) 60 // Reset file input so same file can be uploaded again if needed 61 if (fileInput.value) fileInput.value.value = '' 62 } 63} 64 65const __returned__ = { props, emit, fileInput, isDragging, localError, validateAndEmit, handleDrop, handleFileSelect, ref } 66Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true }) 67return __returned__ 68} 69 70} 71import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass } from "/node_modules/.vite/deps/vue.js?v=825bfe78" 72 73const _hoisted_1 = { class: "space-y-2" } 74const _hoisted_2 = { 75 key: 0, 76 class: "block text-xs font-bold text-slate-700" 77} 78const _hoisted_3 = ["accept"] 79const _hoisted_4 = { class: "text-[10px] text-slate-400 mt-1" } 80const _hoisted_5 = { 81 key: 0, 82 class: "w-full max-w-xs bg-slate-100 rounded-full h-1.5 overflow-hidden mt-2" 83} 84const _hoisted_6 = { 85 key: 1, 86 class: "text-[11px] font-semibold text-rose-600 mt-1" 87} 88 89function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { 90 return (_openBlock(), _createElementBlock("div", _hoisted_1, [ 91 ($props.label) 92 ? (_openBlock(), _createElementBlock("label", _hoisted_2, _toDisplayString($props.label), 1 /* TEXT */)) 93 : _createCommentVNode("v-if", true), 94 _createCommentVNode(" Drag & Drop Zone "), 95 _createElementVNode("div", { 96 onDragover: _cache[0] || (_cache[0] = _withModifiers($event => ($setup.isDragging = true), ["prevent"])), 97 onDragleave: _cache[1] || (_cache[1] = _withModifiers($event => ($setup.isDragging = false), ["prevent"])), 98 onDrop: _withModifiers($setup.handleDrop, ["prevent"]), 99 onClick: _cache[2] || (_cache[2] = $event => (_ctx.$refs.fileInput.click())), 100 class: _normalizeClass(["border-2 border-dashed rounded-xl p-6 text-center cursor-pointer transition-all flex flex-col items-center justify-center space-y-2 group", [ 101 $setup.isDragging ? 'border-academic bg-academic/5' : 'border-slate-300 hover:border-academic bg-slate-50/50 hover:bg-slate-50' 102 ]]) 103 }, [ 104 _createElementVNode("input", { 105 type: "file", 106 ref: "fileInput", 107 class: "hidden", 108 accept: $props.accept, 109 onChange: $setup.handleFileSelect 110 }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3), 111 _createCommentVNode(" Upload Icon "), 112 _cache[5] || (_cache[5] = _createElementVNode("div", { class: "p-3 bg-white rounded-full shadow-sm group-hover:scale-110 transition-transform" }, [ 113 _createElementVNode("svg", { 114 class: "h-6 w-6 text-slate-400 group-hover:text-academic", 115 xmlns: "http://www.w3.org/2000/svg", 116 fill: "none",
117 viewBox: "0 0 24 24", 118 stroke: "currentColor" 119 }, [ 120 _createElementVNode("path", { 121 "stroke-linecap": "round", 122 "stroke-linejoin": "round", 123 "stroke-width": "2", 124 d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" 125 }) 126 ]) 127 ], -1 /* CACHED */)), 128 _createElementVNode("div", null, [ 129 _cache[3] || (_cache[3] = _createElementVNode("p", { class: "text-xs font-bold text-slate-700" }, " Klik untuk unggah atau seret berkas ke sini ", -1 /* CACHED */)), 130 _createElementVNode("p", _hoisted_4, " Format: " + _toDisplayString($props.acceptLabel || $props.accept) + " (Maks. " + _toDisplayString($props.maxSizeMb) + "MB) ", 1 /* TEXT */) 131 ]), 132 _createCommentVNode(" File Preview / Loading "), 133 ($props.loading) 134 ? (_openBlock(), _createElementBlock("div", _hoisted_5, [...(_cache[4] || (_cache[4] = [ 135 _createElementVNode("div", { 136 class: "bg-academic h-1.5 rounded-full animate-pulse", 137 style: {"width":"70%"} 138 }, null, -1 /* CACHED */) 139 ]))])) 140 : _createCommentVNode("v-if", true) 141 ], 34 /* CLASS, NEED_HYDRATION */), 142 _createCommentVNode(" Error Display "), 143 ($props.error || $setup.localError) 144 ? (_openBlock(), _createElementBlock("p", _hoisted_6, _toDisplayString($props.error || $setup.localError), 1 /* TEXT */)) 145 : _createCommentVNode("v-if", true) 146 ])) 147} 148 149 150_sfc_main.__hmrId = "163a71b1" 151typeof __VUE_HMR_RUNTIME__ !== 'undefined' && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main) 152import.meta.hot.on('file-changed', ({ file }) => { 153 __VUE_HMR_RUNTIME__.CHANGED_FILE = file 154}) 155import.meta.hot.accept(mod => { 156 if (!mod) return 157 const { default: updated, _rerender_only } = mod 158 if (_rerender_only) { 159 __VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render) 160 } else { 161 __VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated) 162 } 163}) 164import _export_sfc from "/@id/__x00__plugin-vue:export-helper" 165export default /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',"G:/xampp82/htdocs/project/siakad-stkip-ahlussunnah/frontend/src/components/ui/FileUpload.vue"]]) 166//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiRmlsZVVwbG9hZC52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0yXCI+XG4gICAgPGxhYmVsIHYtaWY9XCJsYWJlbFwiIGNsYXNzPVwiYmxvY2sgdGV4dC14cyBmb250LWJvbGQgdGV4dC1zbGF0ZS03MDBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgXG4gICAgPCEtLSBEcmFnICYgRHJvcCBab25lIC0tPlxuICAgIDxkaXYgXG4gICAgICBAZHJhZ292ZXIucHJldmVudD1cImlzRHJhZ2dpbmcgPSB0cnVlXCJcbiAgICAgIEBkcmFnbGVhdmUucHJldmVudD1cImlzRHJhZ2dpbmcgPSBmYWxzZVwiXG4gICAgICBAZHJvcC5wcmV2ZW50PVwiaGFuZGxlRHJvcFwiXG4gICAgICBAY2xpY2s9XCIkcmVmcy5maWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICBjbGFzcz1cImJvcmRlci0yIGJvcmRlci1kYXNoZWQgcm91bmRlZC14bCBwLTYgdGV4dC1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1hbGwgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc3BhY2UteS0yIGdyb3VwXCJcbiAgICAgIDpjbGFzcz1cIltcbiAgICAgICAgaXNEcmFnZ2luZyA/ICdib3JkZXItYWNhZGVtaWMgYmctYWNhZGVtaWMvNScgOiAnYm9yZGVyLXNsYXRlLTMwMCBob3Zlcjpib3JkZXItYWNhZGVtaWMgYmctc2xhdGUtNTAvNTAgaG92ZXI6Ymctc2xhdGUtNTAnXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8aW5wdXQgXG4gICAgICAgIHR5cGU9XCJmaWxlXCIgXG4gICAgICAgIHJlZj1cImZpbGVJbnB1dFwiIFxuICAgICAgICBjbGFzcz1cImhpZGRlblwiIFxuICAgICAgICA6YWNjZXB0PVwiYWNjZXB0XCIgXG4gICAgICAgIEBjaGFuZ2U9XCJoYW5kbGVGaWxlU2VsZWN0XCIgXG4gICAgICAvPlxuICAgICAgXG4gICAgICA8IS0tIFVwbG9hZCBJY29uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInAtMyBiZy13aGl0ZSByb3VuZGVkLWZ1bGwgc2hhZG93LXNtIGdyb3VwLWhvdmVyOnNjYWxlLTExMCB0cmFuc2l0aW9uLXRyYW5zZm9ybVwiPlxuICAgICAgICA8c3ZnIGNsYXNzPVwiaC02IHctNiB0ZXh0LXNsYXRlLTQwMCBncm91cC1ob3Zlcjp0ZXh0LWFjYWRlbWljXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTcgMTZhNCA0IDAgMDEtLjg4LTcuOTAzQTUgNSAwIDExMTUuOSA2TDE2IDZhNSA1IDAgMDExIDkuOU0xNSAxM2wtMy0zbTAgMGwtMyAzbTMtM3YxMlwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXY+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC14cyBmb250LWJvbGQgdGV4dC1zbGF0ZS03MDBcIj5cbiAgICAgICAgICBLbGlrIHVudHVrIHVuZ2dhaCBhdGF1IHNlcmV0IGJlcmthcyBrZSBzaW5pXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxMHB4XSB0ZXh0LXNsYXRlLTQwMCBtdC0xXCI+XG4gICAgICAgICAgRm9ybWF0OiB7eyBhY2NlcHRMYWJlbCB8fCBhY2NlcHQgfX0gKE1ha3MuIHt7IG1heFNpem
166VNYiB9fU1CKVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBGaWxlIFByZXZpZXcgLyBMb2FkaW5nIC0tPlxuICAgICAgPGRpdiB2LWlmPVwibG9hZGluZ1wiIGNsYXNzPVwidy1mdWxsIG1heC13LXhzIGJnLXNsYXRlLTEwMCByb3VuZGVkLWZ1bGwgaC0xLjUgb3ZlcmZsb3ctaGlkZGVuIG10LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJnLWFjYWRlbWljIGgtMS41IHJvdW5kZWQtZnVsbCBhbmltYXRlLXB1bHNlXCIgc3R5bGU9XCJ3aWR0aDogNzAlXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRXJyb3IgRGlzcGxheSAtLT5cbiAgICA8cCB2LWlmPVwiZXJyb3IgfHwgbG9jYWxFcnJvclwiIGNsYXNzPVwidGV4dC1bMTFweF0gZm9udC1zZW1pYm9sZCB0ZXh0LXJvc2UtNjAwIG10LTFcIj57eyBlcnJvciB8fCBsb2NhbEVycm9yIH19PC9wPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQgc2V0dXA+XG5pbXBvcnQgeyByZWYgfSBmcm9tICd2dWUnXG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICBsYWJlbDogU3RyaW5nLFxuICBhY2NlcHQ6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJyovKidcbiAgfSxcbiAgYWNjZXB0TGFiZWw6IFN0cmluZyxcbiAgbG9hZGluZzoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgbWF4U2l6ZU1iOiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIGRlZmF1bHQ6IDVcbiAgfSxcbiAgZXJyb3I6IFN0cmluZ1xufSlcblxuY29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFsndXBsb2FkJ10pXG5cbmNvbnN0IGZpbGVJbnB1dCA9IHJlZihudWxsKVxuY29uc3QgaXNEcmFnZ2luZyA9IHJlZihmYWxzZSlcbmNvbnN0IGxvY2FsRXJyb3IgPSByZWYoJycpXG5cbmNvbnN0IHZhbGlkYXRlQW5kRW1pdCA9IChmaWxlKSA9PiB7XG4gIGxvY2FsRXJyb3IudmFsdWUgPSAnJ1xuICBpZiAoIWZpbGUpIHJldHVyblxuXG4gIGNvbnN0IG1heEJ5dGVzID0gcHJvcHMubWF4U2l6ZU1iICogMTAyNCAqIDEwMjRcbiAgaWYgKGZpbGUuc2l6ZSA+IG1heEJ5dGVzKSB7XG4gICAgbG9jYWxFcnJvci52YWx1ZSA9IGBVa3VyYW4gYmVya2FzIG1lbGViaWhpIGJhdGFzIG1ha3NpbXVtICgke3Byb3BzLm1heFNpemVNYn1NQilgXG4gICAgcmV0dXJuXG4gIH1cblxuICBlbWl0KCd1cGxvYWQnLCBmaWxlKVxufVxuXG5jb25zdCBoYW5kbGVEcm9wID0gKGUpID0+IHtcbiAgaXNEcmFnZ2luZy52YWx1ZSA9IGZhbHNlXG4gIGNvbnN0IGZpbGVzID0gZS5kYXRhVHJhbnNmZXIuZmlsZXNcbiAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICB2YWxpZGF0ZUFuZEVtaXQoZmlsZXNbMF0pXG4gIH1cbn1cblxuY29uc3QgaGFuZGxlRmlsZVNlbGVjdCA9IChlKSA9PiB7XG4gIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXNcbiAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICB2YWxpZGF0ZUFuZEVtaXQoZmlsZXNbMF0pXG4gICAgLy8gUmVzZXQgZmlsZSBpbnB1dCBzbyBzYW1lIGZpbGUgY2FuIGJlIHVwbG9hZGVkIGFnYWluIGlmIG5lZWRlZFxuICAgIGlmIChmaWxlSW5wdXQudmFsdWUpIGZpbGVJbnB1dC52YWx1ZS52YWx1ZSA9ICcnXG4gIH1cbn1cbjwvc2NyaXB0PlxuIl0sIm1hcHBpbmdzIjoiQUFtREEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFrQmQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFYixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUV6QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRWxCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1Qs
166Q0FBQyxDQUFDOztBQUVGLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JCOztBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUNGOztBQUVBLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25FLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUM7QUFDRjs7Ozs7Ozs7OztxQkF4R08sS0FBSyxFQUFDLFdBQVc7OztFQUNBLEtBQUssRUFBQyx3Q0FBd0M7OztxQkFnQzNELEtBQUssRUFBQyxpQ0FBaUM7OztFQU14QixLQUFLLEVBQUMsc0VBQXNFOzs7O0VBTXBFLEtBQUssRUFBQyw4Q0FBOEM7Ozs7d0JBN0NwRixvQkE4Q00sT0E5Q04sVUE4Q007S0E3Q1MsWUFBSzt1QkFBbEIsb0JBQXNGLFNBQXRGLFVBQXNGLG1CQUFoQixZQUFLOztJQUUzRSx5Q0FBeUI7SUFDekIsb0JBc0NNO01BckNILFVBQVEsc0RBQVUsaUJBQVU7TUFDNUIsV0FBUyxzREFBVSxpQkFBVTtNQUM3QixNQUFJLGlCQUFVLGlCQUFVO01BQ3hCLE9BQUssdUNBQUUsVUFBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLO01BQzdCLEtBQUssbUJBQUMsMklBQTJJO1FBQy9ILGlCQUFVOzs7TUFJNUIsb0JBTUU7UUFMQSxJQUFJLEVBQUMsTUFBTTtRQUNYLEdBQUcsRUFBQyxXQUFXO1FBQ2YsS0FBSyxFQUFDLFFBQVE7UUFDYixNQUFNLEVBQUUsYUFBTTtRQUNkLFFBQU0sRUFBRSx1QkFBZ0I7O01BRzNCLG9DQUFvQjtnQ0FDcEIsb0JBSU0sU0FKRCxLQUFLLEVBQUMsZ0ZBQWdGO1FBQ3pGLG9CQUVNO1VBRkQsS0FBSyxFQUFDLGtEQUFrRDtVQUFDLEtBQUssRUFBQyw0QkFBNEI7VUFBQyxJQUFJLEVBQUMsTUFBTTtVQUFDLE9BQU8sRUFBQyxXQUFXO1VBQUMsTUFBTSxFQUFDLGNBQWM7O1VBQ3BKLG9CQUFrSztZQUE1SixnQkFBYyxFQUFDLE9BQU87WUFBQyxpQkFBZSxFQUFDLE9BQU87WUFBQyxjQUFZLEVBQUMsR0FBRztZQUFDLENBQUMsRUFBQyx1RkFBdUY7Ozs7TUFJbkssb0JBT007a0NBTkosb0JBRUksT0FGRCxLQUFLLEVBQUMsa0NBQWtDLElBQUMsK0NBRTVDO1FBQ0Esb0JBRUksS0FGSixVQUVJLEVBRnVDLFdBQ2pDLG9CQUFHLGtCQUFXLElBQUksYUFBTSxJQUFHLFVBQVEsb0JBQUcsZ0JBQVMsSUFBRyxNQUM1RDs7TUFHRiwrQ0FBK0I7T0FDcEIsY0FBTzt5QkFBbEIsb0JBRU0sT0FGTixVQUVNO1lBREosb0JBQW1GO2NBQTlFLEtBQUssRUFBQyw4Q0FBOEM7Y0FBQyxLQUFrQixFQUFsQixlQUFrQjs7Ozs7SUFJaEYsc0NBQXNCO0tBQ2IsWUFBSyxJQUFJLGl
166CQUFVO3VCQUE1QixvQkFBZ0gsS0FBaEgsVUFBZ0gsbUJBQTFCLFlBQUssSUFBSSxpQkFBVSIsImlnbm9yZUxpc3QiOltdfQ==
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.