फोंट के लिए उचित MIME प्रकार


249

वेब पर खोज करने पर, मुझे विभिन्न सुझावों के ढेर मिलते हैं कि किसी फ़ॉन्ट के लिए उचित MIME प्रकार क्या है, लेकिन मेरे पास अभी तक किसी भी MIME प्रकार को आज़माने के लिए है जो मुझे Chrome चेतावनी के बारे में बताएंगे जैसे कि निम्नलिखित:

संसाधन को फ़ॉन्ट के रूप में व्याख्या किया गया लेकिन MIME प्रकार फ़ॉन्ट / otf के साथ स्थानांतरित किया गया

फ़ॉन्ट एक OTF है।

मैंने निम्नलिखित MIME प्रकार अब तक आज़माए हैं

  • फ़ॉन्ट / otf
  • आवेदन / font-otf
  • आवेदन / font
  • आवेदन / otf
  • आवेदन / ओकटेट धारा
  • आवेदन / x-font-otf
  • आवेदन / x-font-TrueType (मुझे पता है कि यह truetype नहीं है, लेकिन OTF के लिए एक स्रोत ने इसे उद्धृत किया है)

3
आप वास्तव में इसके लिए हेडर कैसे लिखते हैं? मुझे यकीन नहीं है कि मुझे क्या करना है। किसी भी मदद के लिए चीयर्स आप दे सकते हैं।
जोश स्मिथ

1
@ जोश: यदि आप कोड के माध्यम से फ़ॉन्ट की सेवा कर रहे हैं, तो आप "सामग्री-प्रकार" शीर्षक को "फ़ॉन्ट / opentype" पर सेट करना चाहते हैं (यदि आप मेरे प्रश्न के अनुसार OTF का उपयोग कर रहे हैं), लेकिन यदि आप बस एक भौतिक फ़ॉन्ट फ़ाइल की ओर इशारा करते हुए, आपके वेब सर्वर में MIME प्रकार सेट करना आसान हो सकता है। मुझे नहीं पता कि आप किस वेब सर्वर का उपयोग कर रहे हैं, इसलिए अपने पर्यवेक्षक + माइम प्रकारों के लिए एक Google खोज करें या अपनी समस्या का वर्णन करने वाले SO पर एक नया प्रश्न शुरू करें।
डेविड हेडलंड

2
शीर्षक गलत है। यह क्रोम में चेतावनी के रूप में "संसाधन के रूप में व्याख्या की गई" मैं चुप्पी कैसे साध सकता हूं
djsadinoff

2
@djs: दी गई! तुम्हें पता है, अगर मुझे क्रोम को याद रखने का एक तरीका मिल सकता है कि मैं अपना कंसोल लॉग संदेश और त्रुटियों को सूचीबद्ध करना चाहता हूं, लेकिन चेतावनी नहीं, तो एक उचित मौका है जो मैंने इस सवाल को पहली जगह में कभी नहीं पूछा होगा।
डेविड हेडलंड

Chrome हमें चेतावनी दे रहा है कि वह वही कर रहा है जो हमने पूछा था। जब आप सफलतापूर्वक एक .BMP फ़ाइल के साथ @ फॉन्ट-फेस का उपयोग करते हैं, तो यह ग्लिफ़ के लिए उपयोग करने के लिए बिटमैप्स का पता लगाते समय मैं एक चेतावनी देखता हूँ।
कार्डिफ स्पेस मैन

जवाबों:


137

"फ़ॉन्ट / opentype" का उपयोग करके देखें।


51
यह एक गैरकानूनी mimetype है, हालांकि: आधिकारिक mimetypes में कोई "फ़ॉन्ट /" नहीं है। एक बेहतर माइम प्रकार "एप्लीकेशन / एक्स-फॉन्ट-ऑपेंटाइप" या "एप्लिकेशन / ऑक्टेट-स्ट्रीम" होगा। पहला मूल रूप से "इस नाम के साथ अपंजीकृत mimetype" है, दूसरा सिर्फ "द्विआधारी डेटा"
dtech

यह मेरे लिए Chrome 16 पर काम नहीं करता है। एक काम जो किया गया था: आवेदन / vnd.oasis.opendocument.formula- टेम्पलेट।
जेरजो

16
वर्तमान विजेता की तरह दिखता है: आवेदन / x-font-woff - आशा है कि यह मदद करता है!
हलचल

7
@ इसको बदलकर एप्लिकेशन / फॉन्ट-वॉफ में बदल दिया गया है w3.org/TR/WOFF/#appendix-b
Holger

5
fontप्रकार अब आधिकारिक iana.org/assignments/media-types/media-types.xhtml#font
mems

210

कई फॉण्ट फॉरमेट हैं जो अपाचे और IIS दोनों सर्वर पर MIME प्रकार सेट कर सकते हैं। मैं पारंपरिक रूप से निम्नलिखित के साथ किस्मत में था :

svg   as "image/svg+xml"                  (W3C: August 2011)
ttf   as "application/x-font-ttf"         (IANA: March 2013)
      or "application/x-font-truetype"
otf   as "application/x-font-opentype"    (IANA: March 2013)
woff  as "application/font-woff"          (IANA: January 2013)
woff2 as "application/font-woff2"         (W3C W./E.Draft: May 2014/March 2016)
eot   as "application/vnd.ms-fontobject"  (IANA: December 2005)
sfnt  as "application/font-sfnt"          (IANA: March 2013) 

इंटरनेट इंजीनियरिंग टास्क फोर्स के अनुसार जो यहाँ बहुउद्देशीय इंटरनेट मेल एक्सटेंशन (MIME प्रकार) के बारे में प्रारंभिक दस्तावेज़ को बनाए रखते हैं: http://tools.ietf.org/html/rfc2045#section-5 ... यह बारीकियों के अनुसार कहता है:

" यह उम्मीद की जाती है कि इन प्रकारों के नए उपप्रकारों के निर्माण से आमतौर पर समर्थित प्रकारों के बड़े सेट को पूरा किया जा सकता है। भविष्य में, अधिक शीर्ष-स्तरीय प्रकारों को केवल इस मानक के लिए एक मानक-ट्रैक एक्सटेंशन द्वारा परिभाषित किया जा सकता है। यदि किसी अन्य शीर्ष-स्तरीय प्रकार का उपयोग किसी भी कारण से किया जाना है, तो उसे "X-" के साथ शुरू होने वाला नाम दिया जाना चाहिए ताकि इसकी गैर-मानक स्थिति का संकेत दिया जा सके और भविष्य के आधिकारिक नाम के साथ संभावित संघर्ष से बचा जा सके। "

जैसा कि यह था, और समय के साथ, अतिरिक्त MIME प्रकार जोड़े जाते हैं क्योंकि मानक बनाए जाते हैं और स्वीकार किए जाते हैं, इसके लिए हम विक्रेता के विशिष्ट MIME प्रकार जैसे vnd.ms-fontobject और जैसे के उदाहरण देखते हैं।

16 अगस्त, 2013: WOFF औपचारिक रूप से 3 जनवरी, 2013 को आईएएनए में पंजीकृत किया गया और 5 मार्च , 2013 को वेबकिट को अपडेट कर दिया गया और जो ब्राउज़र अपने नवीनतम संस्करणों में इस अपडेट को सोर्स कर रहे हैं, वे सर्वर के बारे में चेतावनी जारी करना शुरू कर देंगे और पुराने समय के साथ टाइप करेंगे। x-font-woff घोषणा। चूँकि चेतावनियाँ केवल कष्टप्रद हैं इसलिए मैं अनुमोदित MIME प्रकार पर तुरंत स्विच करने की सलाह दूंगा। एक आदर्श दुनिया में, चेतावनी समय में खुद को हल करेगी।

अद्यतन 26 फरवरी, 2015: WOFF2 अब W3C संपादक के ड्राफ्ट में प्रस्तावित माइम-प्रकार के साथ है। इसे अगले वर्ष (संभवतः 2016 के अंत तक) अगले हाल की प्रगति की समयसीमा पर IANA को प्रस्तुत किया जाना चाहिए। SFNT के साथ-साथ, स्केलेबल / स्पाइन कंटेनर कंटेनर फॉण्ट फॉर्मेट का उपयोग गूगल वेब फोंट के बैकबोन टेबल रेफरेंस में उनके sfntly java लाइब्रेरी के साथ किया जाता है और पहले से ही IANA के साथ एक माइम प्रकार के रूप में पंजीकृत है और इस सूची में इसे व्यक्तिगत आवश्यकता पर निर्भर किया जा सकता है।

अद्यतन अक्टूबर 4, 2017: हम WOFF2 प्रारूप की प्रगति का पालन कर सकते यहाँ प्रारूप सफलतापूर्वक समर्थन आधुनिक ब्राउज़रों के बहुमत के साथ। साथ ही, हम अनुमोदन के लिए प्रस्तावित फ़ॉन्ट प्रकारों के नवीनतम सेट के बारे में टिप्पणी (RFC) ट्रैकर और दस्तावेज़ के लिए IETF के "फ़ॉन्ट" शीर्ष-स्तरीय मीडिया प्रकार अनुरोध का पालन कर सकते हैं ।


अपने सीएसएस में उचित क्रम में टाइपफेस एम्बेड करने के इच्छुक लोगों के लिए कृपया इस लेख पर जाएँ । लेकिन फिर, मुझे निम्नलिखित आदेश के साथ भाग्य मिला है:

@font-face {
    font-family: 'my-web-font';
    src: url('webfont.eot');
    src: url('webfont.eot?#iefix') format('embedded-opentype'),
         url('webfont.woff2') format('woff2'),
         url('webfont.woff') format('woff'),
         url('webfont.ttf') format('truetype'),
         url('webfont.svg#webfont') format('svg');
    font-weight: normal;
    font-style: normal;
}

तोड़फोड़ ऑटो-संपत्तियों के लिए, इन्हें निम्नानुसार सूचीबद्ध किया जा सकता है:

# Font formats
svg   = svn:mime-type=image/svg+xml
ttf   = svn:mime-type=application/x-font-ttf
otf   = svn:mime-type=application/x-font-opentype
woff  = svn:mime-type=application/font-woff
woff2 = svn:mime-type=application/font-woff2
eot   = svn:mime-type=application/vnd.ms-fontobject
sfnt  = svn:mime-type=application/font-sfnt

अच्छे वाले, धन्यवाद। मेरे पास .woff के साथ त्रुटि संदेश थे और इसने मेरी .htaccess फ़ाइल में इसे ठीक कर दिया। मैंने इस्तेमाल कियाAddType application/x-font-woff
डैनी इंग्लैंडर

आवेदन / x-font-opentype और आवेदन / x-font-ttf लिनक्स सूक्ति शैल के लिए पूरी तरह से काम करते हैं
Schmoove

1
Ttf, otf और woff2 पुराने हैं। देखें stackoverflow.com/a/20723357/1356047
जोनास बर्लिन

126

क्रोम चेतावनी को अनदेखा करें। OTF फोंट के लिए कोई मानक MIME प्रकार नहीं है।

फ़ॉन्ट / ऑप्‍पेन्‍टाइप चेतावनी को मौन कर सकता है, लेकिन यह इसे करने के लिए "सही" बात नहीं करता है।

यकीनन, आप "अप्लीकेशन / x-opentype" के साथ एक अप करने के लिए बेहतर हैं, क्योंकि कम से कम "एप्लिकेशन" एक पंजीकृत सामग्री प्रकार है, जबकि "फ़ॉन्ट" नहीं है।

अपडेट: ओटीएफ एक समस्या बनी हुई है, लेकिन WOFF ने जनवरी 2013 में एक IANA MIME प्रकार के एप्लिकेशन / फॉन्ट-वॉफ को विकसित किया।

अद्यतन 2: OTF ने MIME प्रकार विकसित किया है: आवेदन / फ़ॉन्ट-sfnt मार्च 2013 में। यह प्रकार भी .tt पर लागू होता है।


2
दिलचस्प। क्या आपके पास कोई संदर्भ है जो इसे वापस करता है?
कजकाई

18
कोई माइम प्रकार नहीं है: "नोट: क्योंकि ट्रू टाइप, ओपन टाइप और WOFF फोंट के लिए कोई परिभाषित MIME प्रकार नहीं हैं, इसलिए निर्दिष्ट फ़ाइल का MIME प्रकार नहीं माना जाता है।" developer.mozilla.org/en/css/@font-face । नए शीर्ष-स्तरीय माइम-प्रकार न बनाएं, इसके बजाय x- का उपयोग करें: tools.ietf.org/html/rfc2045#section-5 - djsadinoff 3 मिनट पहले संपादित करें
djsadinoff

@djsadinoff मेरा मानना ​​है कि IANA IETF को सुपरसीड करता है। IETF IANA को ड्राफ्ट सबमिट करता है , और चूंकि IANA रिपोर्ट करता है कि woff एक MIME प्रकार है, तो IETF को इसकी सीमित लिस्टिंग में ओवरराइड किया जाता है।
माइक कोर्मेंडी

@MikeKormendy, मुझे आपकी टिप्पणी समझ में नहीं आती है, लेकिन आप मेरे उत्तर के पिछले संस्करण की चर्चा कर रहे होंगे जो केवल WOFF को संबोधित करता है। मैंने मूल
djsadinoff

@djsadinoff यह अजीब है, स्टैक एक्सचेंज ने कहा कि आपने उस "3 मिनट पहले" पर टिप्पणी की थी।
माइक कोरमेन्डी

85

फरवरी 2017 के बाद से RFC 8081 समूह सभी MIME प्रकारों को शीर्ष स्तर के fontमीडिया प्रकार के तहत फोंट के लिए लिखते हैं। मेरे मूल पोस्टिंग से पुराने MIME प्रकार अब पदावनत के रूप में सूचीबद्ध हैं।

IANA द्वारा सूचीबद्ध फ़ॉन्ट प्रकार अब हैं:

अन्य गैर-मानक फ़ॉन्ट प्रारूप निम्नानुसार हैं:


[आउटडेटेड मूल पोस्ट]

जैसा कि वेब फोंट के लिए माइम प्रकारों के बारे में वेब पर अभी भी बहुत भ्रम है, मैंने सोचा कि मैं एक वर्तमान उत्तर दूंगा, प्रभावी तिथियों के साथ पूरा, और आईएएनए और डब्ल्यू 3 सी के समर्थन लिंक ।

यहाँ वेब फ़ॉन्ट्स के लिए आधिकारिक MIME प्रकार हैं:

ध्यान दें कि font/XXXWOFF v2 के प्रस्ताव में W3C द्वारा समर्थित MIME प्रकारों के लिए उपरोक्त सभी को बदलने के लिए एक आंदोलन है । यह इंटरनेट इंजीनियरिंग टास्क फोर्स (IETF) द्वारा द फॉन्ट टॉप लेवल टाइप के तहत और फरवरी 2017 में RFC स्टेटस ( RFC 8081 देखें ) को मंजूरी दी गई थी, इसलिए यह अभी भी बदल सकता है!

वेब सर्वर के विषय पर, यह ध्यान देने योग्य है कि HTTP प्रतिक्रियाएँ gzip(या अन्यथा कंप्रेस) उपरोक्त सभी फॉरमेट प्रारूपों को छोड़कर .woffऔर .woff2जिन्हें बहुत अधिक संकुचित किया गया है।

मैं (फेंटम) बेडशीट के साथ वेब प्रकारों के लिए MIME प्रकारों में अधिक कहता हूं


2
डुप्लिकेट पोस्ट SO पर स्वतः-पहचानी जाती हैं, और आप दोनों पोस्ट को हटा दिए जाने का जोखिम उठाते हैं । यदि आपके पास प्रकाशित करने के लिए उपयोगी जानकारी है, तो आपको अपने स्वयं के प्रश्न पूछने और उत्तर देने पर विचार करना चाहिए।
बोरोडिन

एसीके! मैं पकड़ा गया हूँ! हाँ, मैं आलसी हो रहा था। : / मैंने अन्य उत्तर को अपडेट किया है इसलिए यह संबंधित प्रश्न के लिए अधिक प्रासंगिक है। मेरा मानना ​​है कि यह अभी भी इस पृष्ठ के लिए एक अच्छा फिट है।
स्टीव इयोन

मूल्यांकन किए जाने वाले संदिग्ध उत्तरों की एक बड़ी मात्रा है। मैं उन लोगों पर टिप्पणी करने का एक बिंदु बनाने की कोशिश करता हूं जिन्हें मैं नीचे चिह्नित करता हूं, लेकिन आमतौर पर आपके उत्तर बस गायब हो जाएंगे। कृपया सामयिक बने रहने का प्रयास करें।
बोरोडिन

@SteveEynon: प्रेस्टो आधारित ओपेरा एक छवि माइम प्रकार के साथ सेवा with फोंट प्रस्तुत नहीं करता है।
1322 बजे user2284570

12

कंप्यूटिंग में दो कठिन चीजों में से एक के एक विशिष्ट उदाहरण के रूप में, यह देखना दिलचस्प है कि इस प्रश्न के उत्तर कैसे बदल गए हैं क्योंकि यह प्रश्न मूल रूप से पोस्ट किया गया था। शुक्र है कि अराजकता के लिए लाए गए अधिकार:


इस साल फरवरी (2017) में, W3C ने स्टैंडर्ड ट्रैक RFC 8081: "फॉन्ट" टॉप-लेवल मीडिया टाइप प्रकाशित किया, जो फॉन्ट फाइल्स के लिए उपयुक्त मीडिया टाइप्स को बहुत सरल बनाता है:

यह ज्ञापन "फ़ॉन्ट" शीर्ष-स्तरीय मीडिया प्रकार को पंजीकृत करने और दस्तावेज़ करने का कार्य करता है, जिसके तहत फ़ॉन्ट के लिए प्रतिनिधित्व प्रारूपों के लिए उपप्रकारों को पंजीकृत किया जा सकता है। यह दस्तावेज़ इच्छित उपप्रकारों के सेट के लिए एक पंजीकरण आवेदन के रूप में भी कार्य करता है, जो पहले से ही उपयोग में आने वाले कुछ मौजूदा उपप्रकारों के प्रतिनिधि हैं, और वर्तमान में उनके अलग-अलग पंजीकरणों द्वारा "आवेदन" पेड़ के तहत पंजीकृत हैं।

यह काफी पठनीय दस्तावेज है और यह ऐतिहासिक संदर्भ ( "फ़ॉन्ट के लिए स्वरूपों का पंजीकरण" की कमी) का वर्णन करता है, जिसने मीडिया प्रकारों और उप-प्रकारों के भ्रामक मिश्रण को जन्म दिया। डाउनलोड करने योग्य वेब फोंट की लोकप्रियता में अपेक्षाकृत (अपेक्षाकृत) वृद्धि के साथ, W3C ने "सहज ज्ञान युक्त शीर्ष-स्तरीय फ़ॉन्ट प्रकार" की आवश्यकता को पहचान लिया । वे क्या साथ आए ... है font

तदनुसार, आईएएनए ने तब से मीडिया प्रकारोंfont और इसके सभी उप-प्रकारों के साथ मीडिया प्रकारों की अपनी आधिकारिक सूची को अपडेट किया है जिन्हें वे वर्तमान में पहचानते हैं:

collection  font/collection
otf     font/otf
sfnt    font/sfnt
ttf     font/ttf
woff    font/woff
woff2   font/woff2

यहाँ उम्मीद है कि यह आखिरी जवाब है जो इस प्रश्न की आवश्यकता है।


2
एंथोनी, यह मेरी पोस्ट के अलावा एक और महान संसाधन है। इसे यहाँ साझा करने के लिए धन्यवाद!
माइक कोरमेन्डी


6

अपाचे 2.2 VirtualHosting और mod_mime के बारे में FWIW डेबियन लिनक्स और ओएस एक्स तेंदुए और हिम तेंदुए पर परीक्षण किया गया:

यदि आपके पास VirtualHost कॉन्फ़िगरेशन है, तो आप निम्न प्रकार से AddType निर्देश के माध्यम से प्रकार जोड़ना चाहते हैं, निम्न कॉन्फ़िगरेशन के नीचे निम्नानुसार है:

....
   AddType font/opentype .otf
   AddType font/ttf .ttf
</VirtualHost>

क्रोम अनस्टेबल / ट्रंक और सफ़ारी वेबिट नाइटली के खिलाफ परीक्षण किया गया जो ttf और otf फॉन्ट दोनों प्रकार के माइम ऑक्टेट-स्ट्रीम चेतावनियों को समाप्त करता है।

नोट: VirtualHosting से निपटने पर .htaccess का शून्य प्रभाव पड़ता है। यदि आप कई साइटों के लिए विकास कर रहे हैं तो आप VirtualHosting विकास का उपयोग कर रहे हैं और प्रत्येक कॉन्फ़िगरेशन को इन AddType परिवर्धन की आवश्यकता होगी।


6

मैंने अभी IANA की आधिकारिक सूची पर कुछ शोध किया है । मेरा मानना ​​है कि यहां दिया गया उत्तर 'फ़ॉन्ट / xxx' गलत है क्योंकि MIME मानक में कोई 'फ़ॉन्ट' प्रकार नहीं है।

RFC और IANA के आधार पर, यह मई 2013 के अनुसार नाटक की वर्तमान स्थिति प्रतीत होती है:

ये तीनों IANA द्वारा आधिकारिक और असाइन किए गए हैं:

  • svg "छवि / svg + xml" के रूप में
  • "एप्लिकेशन / फ़ॉन्ट-वॉफ़" के रूप में woff
  • "आवेदन / vnd.ms-fontobject" के रूप में ईओटी

ये आधिकारिक / असाइन नहीं किए गए हैं, और इसलिए 'x-' सिंटैक्स का उपयोग करना चाहिए:

  • ttf को "एप्लिकेशन / x-font-ttf"
  • "आवेदन / x-font-opentype" के रूप में ओटीएफ

जनवरी 2013 से एप्लिकेशन / फॉन्ट-वॉफ नया और शायद केवल आधिकारिक प्रतीत होता है। इसलिए "एप्लीकेशन / एक्स-फॉन्ट-वॉफ" अल्पावधि में अधिक सुरक्षित / अधिक संगत हो सकता है।


5

मार्च 2013 से के रूप में IANA.ORG सिफारिश की गई है के लिए .otf :
application/font-sfnt

अन्य फोंट:

.eot  ->  application/vnd.ms-fontobject (as from December 2005)
.otf  ->  application/font-sfnt         (as from March 2013)
.svg  ->  image/svg+xml                 (as from August 2011)
.ttf  ->  application/font-sfnt         (as from March 2013)
.woff ->  application/font-woff         (as from January 2013)

और देखें ...


2

ईबुक स्पेस में निम्नलिखित का उपयोग किया जा सकता है:

application/vnd.ms-opentype

मुझे लगता है कि यह वेब के लिए एक ही है।




1

शायद यह किसी की मदद करेगा। मैंने देखा कि IIS 7 .ttfपर पहले से ही एक ज्ञात माइम-प्रकार है। इसे इस रूप में कॉन्फ़िगर किया गया है:

application/octet-stream

तो मैं सिर्फ ने कहा कि सभी सीएसएस फ़ॉन्ट प्रकार के लिए ( .oet, .svg, .ttf, .woff) और आईआईएस कारण उन्हें प्रदर्शन शुरू कर दिया। क्रोम देव उपकरण भी प्रकार की पुनः व्याख्या करने के बारे में शिकायत नहीं करते हैं।

चीयर्स, माइकल


1
application/octet-streamकम "ज्ञात प्रकार" और अधिक "बाइट्स का सामान्य गुच्छा" है। :) ब्राउजर की शिकायत इस प्रकार की है, क्योंकि यह इस बारे में कोई जानकारी नहीं देता है कि सामान की व्याख्या कैसे की जानी चाहिए।
cHao

-1

Chrome से इस चेतावनी को चुप कराने का एक तरीका यह होगा कि आप Chrome को अपडेट करें और फिर सुनिश्चित करें कि आपका माइम टाइप इनमें से एक है:

 "font/ttf"
 "font/opentype"
 "application/font-woff"
 "application/x-font-type1"
 "application/x-font-ttf"
 "application/x-truetype-font"

यह सूची webkit.org पर बग 111418 पर मिले पैच के अनुसार है ।

एक ही पैच संदेश को "चेतावनी" से "लॉग" में बदल देता है, इसलिए बस क्रोम को किसी भी पोस्ट मार्च -2013 संस्करण में अपग्रेड करने से पीले त्रिकोण से छुटकारा मिल जाएगा।

चूंकि प्रश्न क्रोम चेतावनी को चुप कराने के बारे में है, और लोग जो भी कारणों से पुराने क्रोम संस्करणों को पकड़ रहे होंगे, मुझे लगा कि यह जोड़ने लायक था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.