নন-জিপিএল সফ্টওয়্যার থেকে জিপিএল সফ্টওয়্যার কল করুন


30

আমি কী (আইনত) জিপিএল এর অধীনে প্রকাশিত অন্য একটি প্রোগ্রাম থেকে যেটি লিখছি এবং জিপিএলকে সম্মান করতে হবে না (যে প্রোগ্রামটি আমি লিখছি তার জন্য) কী ব্যবহার করতে পারি?

উদাহরণস্বরূপ, আমার একটি জিইউআই রয়েছে যা একটি প্রোগ্রাম ব্যবহার করে (যা জিপিএল এর অধীনে রয়েছে), আমি কি জিইউআইতে কোডটি লুকিয়ে রাখতে এবং এটি বিক্রি করতে পারি?

উত্তর:


30

আপনার প্রোগ্রামটি জিপিএল দ্বারা প্রভাবিত না হয়ে আপনি নিজের প্রোগ্রাম থেকে একটি জিপিএলড প্রোগ্রাম ব্যবহার করতে পারেন , তবে আপনি জিপিএল কোডটি আপনার প্রোগ্রামের সাথে জিপিএলের শর্ত সাপেক্ষে লিঙ্ক করতে পারবেন না।

প্রশ্নে প্রদত্ত উদাহরণে, আপনি একটি বিদ্যমান কমান্ড-লাইন প্রোগ্রামের আশেপাশে একটি জিইউআই মোড়ক লিখেছেন, আপনার জিইউআই জিপিএল এর শর্ত দ্বারা আবদ্ধ নয়, শর্ত দেওয়া হয়েছে যে এটি একটি পৃথক প্রোগ্রাম যা জিপিএলড প্রোগ্রামটি একটিতে চালায় পৃথক প্রক্রিয়া এবং কেবল বিদ্যমান ইন্টারফেস (গুলি) এর মাধ্যমে এটির সাথে যোগাযোগ করে - উদাহরণস্বরূপ, কমান্ড লাইনের ওপরে এবং / অথবা স্টিডিন / স্টিডআউট মাধ্যমে।

জিপিএল এফএকিউ থেকে কিছু প্রাসঙ্গিক বিট :

দুটি পৃথক প্রোগ্রাম, এবং দুটি প্রোগ্রাম সহ একটি প্রোগ্রামের মধ্যে রেখাটি কোথায়? এটি একটি আইনী প্রশ্ন, যা শেষ পর্যন্ত বিচারকরা সিদ্ধান্ত নেবেন। আমরা বিশ্বাস করি যে একটি যথাযথ মানদণ্ড যোগাযোগের প্রক্রিয়া (এক্সিকিউটি, পাইপস, আরপিসি, ভাগ করে নেওয়া ঠিকানার জায়গার মধ্যে ফাংশন কল ইত্যাদির উপর) এবং যোগাযোগের শব্দার্থবিজ্ঞানের (কী ধরণের তথ্য বিনিময় করা হয়) উভয়ের উপর নির্ভর করে।

যদি মডিউলগুলি একই এক্সিকিউটেবল ফাইলে অন্তর্ভুক্ত করা হয় তবে সেগুলি অবশ্যই একটি প্রোগ্রামে সংযুক্ত করা হয়। যদি মডিউলগুলি ভাগ করা ঠিকানা স্থানে একসাথে সংযুক্ত চালানোর জন্য ডিজাইন করা হয়, তবে প্রায় অবশ্যই তার অর্থ একটি প্রোগ্রামে সংযুক্ত করা।

বিপরীতে, পাইপ, সকেট এবং কমান্ড-লাইন আর্গুমেন্টগুলি সাধারণত দুটি পৃথক প্রোগ্রামের মধ্যে ব্যবহৃত যোগাযোগ ব্যবস্থা। সুতরাং যখন তারা যোগাযোগের জন্য ব্যবহৃত হয়, মডিউলগুলি সাধারণত পৃথক প্রোগ্রাম। তবে যদি যোগাযোগের শব্দার্থক শব্দগুলি যথেষ্ট ঘনিষ্ঠ হয়, জটিল অভ্যন্তরীণ ডেটা কাঠামো বিনিময় করে, এটিও দুটি অংশকে বৃহত্তর প্রোগ্রামের সাথে সংযুক্ত হিসাবে বিবেচনা করার ভিত্তি হতে পারে।


জিপিএল-আচ্ছাদিত প্লাগ-ইন লোড করার জন্য ডিজাইন করা এমন একটি অ-মুক্ত প্রোগ্রামটি কি আমি প্রকাশ করতে পারি?

এটি কীভাবে প্রোগ্রামটি তার প্লাগ-ইনগুলি চাওয়ার উপর নির্ভর করে on উদাহরণস্বরূপ, যদি প্রোগ্রামটি কেবল সাধারণ কাঁটাচামচ ব্যবহার করে এবং প্লাগইনগুলির সাথে যোগাযোগ করার জন্য এক্সিকিউটিভ ব্যবহার করে, তবে প্লাগইনগুলি পৃথক প্রোগ্রাম, সুতরাং প্লাগ-ইন লাইসেন্স মূল প্রোগ্রাম সম্পর্কে কোনও প্রয়োজনীয়তা রাখে না।

প্রোগ্রামটি যদি গতিশীলভাবে প্লাগইনগুলিতে লিঙ্ক করে এবং তারা একে অপরের সাথে ফাংশন কল করে এবং ডেটা স্ট্রাকচার ভাগ করে দেয় তবে আমরা বিশ্বাস করি যে তারা একটি একক প্রোগ্রাম গঠন করে, যা অবশ্যই মূল প্রোগ্রাম এবং প্লাগইন উভয়েরই একটি এক্সটেনশন হিসাবে বিবেচিত হবে। জিপিএল-কভার প্লাগইনগুলি ব্যবহার করতে, মূল প্রোগ্রামটি জিপিএল বা জিপিএল-সামঞ্জস্যপূর্ণ ফ্রি সফ্টওয়্যার লাইসেন্সের আওতায় প্রকাশ করতে হবে এবং মূল প্রোগ্রামটি এইগুলির সাথে ব্যবহারের জন্য বিতরণ করার সময় জিপিএলের শর্তাদি মেনে চলতে হবে প্ল্যাগ-ইনগুলি।

প্রোগ্রামটি যদি গতিশীলভাবে প্লাগ-ইনগুলিতে লিঙ্ক করে তবে তাদের মধ্যে যোগাযোগ কিছু বিকল্পের সাথে প্লাগ-ইনয়ের 'মূল' ফাংশনটি চাওয়া এবং এটি ফিরে আসার জন্য অপেক্ষা করার মধ্যে সীমাবদ্ধ, এটি একটি সীমান্তরেখার কেস।

নোট করুন যে জিপিএল যে কোনও ক্ষেত্রে অন্তর্নিহিত কমান্ড-লাইন প্রোগ্রামের সাথে পুরোপুরিভাবে প্রযোজ্য - আপনি যদি এটি বিতরণ করেন (ব্যবহারকারীরা অন্য উত্স থেকে এটি পাওয়ার বিপরীতে), আপনি জিপিএলটির একটি অনুলিপি ব্যবহারকারীদের সরবরাহ করার জন্য দায়বদ্ধ তাদের কাছে পরিষ্কার করুন যে কমান্ড-লাইন প্রোগ্রামটি জিপিএলের অধীনে রয়েছে (জিইউআই মোড়ক না থাকলেও), এবং অনুরোধে তাদের কাছে কমান্ড-লাইন প্রোগ্রামের উত্স কোডটি উপলব্ধ করে। আবার জিপিএল এফএকিউ থেকে:

লোকেরা যদি আংশিক মালিকানাধীন এমন একটি সিস্টেমকে "অংশ" বলে জিপিএল-কভারড সফ্টওয়্যার বিতরণ করে, ব্যবহারকারীরা জিপিএল-আচ্ছাদিত সফ্টওয়্যার সম্পর্কিত তাদের অধিকার সম্পর্কে অনিশ্চিত থাকতে পারে। তবে যদি তারা জানে যে তারা যা পেয়েছে তা একটি নিখরচায় প্রোগ্রাম এবং পাশাপাশি অন্য একটি প্রোগ্রাম, তাদের অধিকার পরিষ্কার হবে।

স্ট্যান্ডার্ড অস্বীকৃতি: আমি আইনজীবী নই এবং আমি আইনজীবী হলেও আমি আপনার আইনজীবী নই । আপনার যদি একটি সুনির্দিষ্ট উত্তর প্রয়োজন হয় তবে উপযুক্ত আইনী পেশাদারের সাথে পরামর্শ করুন, যিনি আপনার এখতিয়ারে অনুশীলনের জন্য লাইসেন্স পেয়েছেন।


1
এটি লক্ষ করা উচিত যে সংযোগের বিষয়ে এফএসএফের অবস্থান সংখ্যালঘু অবস্থান। (এবং, আইএমও, এটি কোনও কিছুই বোঝায় না An একটি স্বয়ংক্রিয় প্রক্রিয়া কোনও নতুন কাজ তৈরি করতে পারে না))
ডেভিড শোয়ার্জ

1
তবে, এফএসএফ জিপিএল লিখেছিল। এটি তাদের মতামতকে আরও প্রাসঙ্গিক করে তোলে। "যখন আমরা এক্স বলি, তখন আমাদের অর্থ {...}" সাধারণত আদালতে গৃহীত হয়। "আপনি যখন এক্স বলেছেন, আপনি বোঝাচ্ছেন {...}", তাই না।
এমসাল্টারস

"কেবলমাত্র কাঁটাচামচ ব্যবহার করার জন্য এবং ডেকে আনার জন্য" - এর অর্থ কী - কেউ কি এটি পরিষ্কার করতে পারে?
ক্রুনাল

তাহলে জিপিএলকে কোনও পৃথক প্রক্রিয়াতে জিপিএল কোড চালানোর জন্য কেবল পাইপ মোড়ক লিখে সহজেই বাইপাস করা যায়? এটি জিপিএলকে অপ্রাসঙ্গিক এবং কার্যকর করা অসম্ভব বলে মনে হবে। আমি যদি নিজের লাইব্রেরিটি লিখি এবং জিপিএল লাইব্রেরির সাথে এর সাথে লিঙ্ক করি তবে কী হয়। আমার পৃথক একক লাইব্রেরিটি কি তখনও জিপিএলড হয়ে যায়? জিপিএল কোড ব্যবহার করার সময় আমি যদি অন্য কারও পাঠাগারের সাথে লিঙ্ক করি? তাদের লাইব্রেরি কি জিপিএলড হয়? আপনি যদি এই প্রশ্নের কোনও উত্তর না দিয়ে থাকেন তবে সহজেই জিপিএলকে বাইপাস করার জন্য এটি একটি বিশাল লুফোলটি খোলে। যদি আপনি হ্যাঁ উত্তর দেন, তবে আপনি কপিরাইট আইন লঙ্ঘন করছেন।
সেরিন

@ সেরিন - জিপিএল কেবলমাত্র আপনার বিতরণ করা কোডের ক্ষেত্রে প্রযোজ্য। সুতরাং, আপনি যখন এমন কোনও প্রোগ্রাম লিখতে পারবেন যা জিপিএলড এবং নন-জিপিএল-সামঞ্জস্যযুক্ত লাইসেন্স উভয়ের সাথে লিঙ্ক করে, আপনি তখন সেই প্রোগ্রামটি তৃতীয় পক্ষগুলিতে বিতরণ করতে পারবেন না , কারণ এটি একই প্রক্রিয়াতে জিপিএলড এবং নন- জিপিএল-সামঞ্জস্যপূর্ণ কোড চালায়। ("পুনরায় বিতরণ ছাড়াই ব্যবহার করুন" অনেকে জিপিএলে একটি লুফোল হিসাবে দেখেন, যেহেতু এর অর্থ ওয়েব পরিষেবাদি এবং এর মতো জিপিএল পুরোপুরি পার্শ্ববর্তী হতে পারে কারণ তারা ব্যবহারকারীদের চালনা দেওয়ার পরিবর্তে সফ্টওয়্যারটি নিজে চালনা করে। জিএনইউ এজিপিএল একটি এই ইস্যুটি সমাধান করার চেষ্টা করুন))
ডেভ শেরোহমান

0

এটি ব্যবহার করে আপনি কী বোঝাতে চান তা নির্ভর করে?

  • আপনার কোড মধ্যে এটি সংকলন
  • একটি ভাগ লাইব্রেরি ব্যবহার করুন
  • একটি এক্সিকিউটেবল চালানো

এটি অন্যান্য কোডের অধীনে জিপিএলের কোন সংস্করণ / বৈকল্পিকের উপর নির্ভর করে।

  • জিপিএল
  • LGPL
  • মধ্যে AGPL
  • সম্ভবত অন্যরাও

আইনী দাবি: আমি আইনজীবী নই।


-2

এটি আপনার প্রোগ্রামটি ঠিক কীভাবে জিপিএল প্রোগ্রামটি "ব্যবহার" করছে তার উপর নির্ভর করে। জিপিএল এফএকিউ এর একটি দীর্ঘ দীর্ঘ ব্যাখ্যা রয়েছে , তবে এটি এখনও ব্যাখ্যার জন্য অনেকটা উন্মুক্ত রেখে দিয়েছে:

আপনি কোনও মালিকানাধীন সিস্টেমে জিপিএল-কভার করা সফ্টওয়্যার অন্তর্ভুক্ত করতে পারবেন না। (...) তবে, অনেক ক্ষেত্রে আপনি নিজের মালিকানাধীন সিস্টেমের পাশাপাশি জিপিএল-কভার্ড সফ্টওয়্যার বিতরণ করতে পারেন। যথাযথভাবে এটি করার জন্য, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে নিখরচায় এবং নিখরচায় প্রোগ্রামগুলি অস্ত্রের দৈর্ঘ্যে যোগাযোগ করে, সেগুলি এমনভাবে একত্রিত করা হয় না যা তাদের কার্যকরভাবে একটি একক প্রোগ্রাম হিসাবে তৈরি করে। (...) যদি দুটি প্রোগ্রাম একত্রিত হয় যাতে কার্যকরভাবে একটি প্রোগ্রামের দুটি অংশ হয়ে যায়, তবে আপনি তাদের দুটি পৃথক প্রোগ্রাম হিসাবে বিবেচনা করতে পারবেন না। সুতরাং জিপিএলকে পুরো বিষয়টি coverাকতে হবে।দুটি প্রোগ্রাম যদি সংকলক এবং কার্নেলের মতো ভালভাবে পৃথক থেকে যায় বা সম্পাদক এবং শেলের মতো হয় তবে আপনি এগুলি দুটি পৃথক প্রোগ্রাম হিসাবে বিবেচনা করতে পারেন — তবে আপনাকে এটি সঠিকভাবে করতে হবে। সমস্যাটি কেবল একটি ফর্মের: আপনি কী করছেন তা আপনি কীভাবে বর্ণনা করেন। কেন আমরা এই সম্পর্কে যত্নশীল? কারণ আমরা নিশ্চিত করতে চাই যে ব্যবহারকারীরা সংগ্রহের জিপিএল-আচ্ছাদিত সফ্টওয়্যারটির বিনামূল্যে স্থিতিটি স্পষ্টভাবে বুঝতে পারে।

আমি মনে করি আপনার একটি জিইউআইয়ের উদাহরণে মূলত একটি কমান্ড লাইন জিপিএল প্রোগ্রাম কল করার জন্য উপস্থিত রয়েছে, দু'জনেই একটি একক প্রোগ্রাম গঠন করে, তাই আপনাকে জিপিএল এর অধীনে আপনার কোডটি প্রকাশ করতে হবে।


না, তারা "পরিষ্কারভাবে একটি একক প্রোগ্রাম গঠন করে না"। এতক্ষণ যতক্ষণ না অন্তর্নিহিত কমান্ড-লাইন প্রোগ্রাম জিইউআই ওভারলেটির অনুপস্থিতিতে কাজ করতে সক্ষম থাকে, তারা "নিখরচাগুলি" দ্বারা মিলিত হয় এবং "কার্যকরভাবে কোনও একক প্রোগ্রাম" হয় না। আপনি উদ্ধৃত পাঠ্যের উদাহরণগুলি লক্ষ্য করুন - একটি সংকলক কার্নেলের উপরে বসে এবং এটি ছাড়া চলবে না, তবে সংকলকটির অভাবে কার্নেলটি সুখে চলবে।
ডেভ শেরোহমান

1
@ ডেভ: অন্তর্নিহিত কমান্ড-লাইন প্রোগ্রাম জিইউআই ওভারলের অনুপস্থিতিতে কাজ করতে সক্ষম কিনা তা প্রাসঙ্গিক হতে পারে যদি কমান্ড লাইন প্রোগ্রামের লাইসেন্সের অবস্থা প্রশ্নে থাকত - তবে প্রশ্নটি জিইউআই সম্পর্কে, যা সম্পূর্ণরূপে অকেজো ছাড়া কমান্ড লাইন প্রোগ্রাম, এবং সুতরাং এগুলি সত্য যে তারা একটি একক প্রোগ্রাম গঠন করে এমন সন্দেহের ছায়া ছাড়িয়ে।
মাইকেল বর্গওয়ার্ট

আসুন আপনি যে অংশটি উদ্ধৃত করেছেন সেখান থেকে উদাহরণগুলির মধ্যে একটিকে স্থান দিন এবং দেখুন কীভাবে এটি ধারণ করে। "... তবে প্রশ্নটি সংকলক সম্পর্কে, যা কার্নেল ব্যতীত সম্পূর্ণ অকেজো এবং এটি একক প্রোগ্রাম গঠন করে এমন সন্দেহের ছায়া ছাড়াই সত্য।" অবশ্যই, আপনি যে পাঠ্যটি উদ্ধৃত করেছেন তা ব্যতীত "আপনি তাদের দুটি পৃথক প্রোগ্রাম হিসাবে বিবেচনা করতে পারেন" states এটি যদি কেবল নির্ভরতার বিষয় হয় তবে লিনাক্সে আপনি কখনই ক্লোজড সফ্টওয়্যারটি চালাতে পারবেন না কারণ সেই সফ্টওয়্যারটি (জিপিএল) কার্নেল ব্যতীত "সম্পূর্ণ অকেজো" হতে পারে "
ডেভ শেরোহমান

@ ডেভ: অবশ্যই, এই কম্পাইলারগুলি এবং সমস্ত ধরণের বন্ধ সফ্টওয়্যার লিনাক্স কার্নেল ছাড়া অকেজো নয়, যেহেতু তারা পসিক্স এবং / অথবা সি লাইব্রেরির মান প্রয়োগ করে এমন কোনও কিছুতে চালাতে পারে এবং তাদের নিজস্ব কার্যকারিতা সরবরাহ করে । একটি নির্দিষ্ট কমান্ড লাইন প্রোগ্রাম চালনা করার জন্য একমাত্র জিইআইআই র‍্যাপারের চেয়ে সম্পূর্ণ আলাদা বিষয়।
মাইকেল বর্গওয়ার্ট

3
যদিও আপনি জিইউআইয়ের পক্ষে ভুল করছেন। সেই একই জিইউআই র‌্যাপারটি অন্যান্য সিএলআই প্রোগ্রামগুলির সাথে কাজ করবে , বিশেষত পরবর্তী সংস্করণগুলিতে। এটি এই প্রসঙ্গে প্রাসঙ্গিক, কারণ এর অর্থ হ'ল অন্তর্নিহিত প্রোগ্রামের মূল জিপিএল অধিকারগুলি এখনও ব্যবহার করা যেতে পারে। যদি আমি এটি 10% দ্রুত হতে পুনরায় রচনা করি তবে সিএলআই আমাকে বাধা দেয় না।
MSalters

-3

না।

জিপিএল কোডটি কেবলমাত্র অন্যান্য জিপিএল কোড ব্যবহার করতে পারে।

উইকিপিডিয়ায় জিপিএল নিবন্ধের প্রথম লাইনটি উদ্ধৃত করে :

জিপিএল হ'ল সাধারণ ব্যবহারের জন্য প্রথম কপিলিফ্ট লাইসেন্স, যার অর্থ যে উত্পন্ন কাজগুলি কেবল একই লাইসেন্সের শর্তে বিতরণ করা যেতে পারে।

এর বিপরীতে, জিপিএল বেশ কয়েকটি পৃষ্ঠার দীর্ঘ এবং বেশ কয়েকটি সংস্করণে বিদ্যমান।


সতর্কবাণী, সামনে ব্যক্তিগত রেন্ট!

আমি ব্যক্তিগতভাবে জিপিএল লাইসেন্সটি খুব বেশি অপছন্দ করি কারণ এটি অত্যন্ত সীমাবদ্ধ এবং ভাইরাসের মতো প্রকৃতির। তারা এটিকে "ফ্রি" বলে ডাকে তবে এটি আসলে একেবারেই বিপরীত, জিপিএল কোড অন্যান্য জিপিএল কোড ব্যতীত অন্য কোনও কিছু দ্বারা ব্যবহার করা যায় না। সুতরাং আপনার প্রকল্পটি ওপেন সোর্স কিনা তা জিপিএলে অন্য প্রকল্পগুলিকে বাধ্য করা বা পুরো লাইব্রেরিগুলি পুনরায় লেখার জন্য বাধ্য করা হচ্ছে। এখানে বিশাল ওপেনসোর্স প্রকল্প ছিল যেমন ফ্রিবিএসডি এর মতো উদাহরণস্বরূপ, কয়েক হাজার লাইনের লিনাক্স কোডের লাইন লিখতে বাধ্য করা হয়েছিল কারণ তাদের লাইসেন্সটি বেমানান ছিল, এটি "আপনি যা চান তাই করুন" অর্থে এটি খুব "মুক্ত" ছিল যা স্পষ্টতই জিপিএলের সাথে সামঞ্জস্যপূর্ণ নয়।

যদি আপনি "আপনি যা চান তাই করুন" অর্থে সত্যই একটি "নিখরচায় লাইসেন্স" চান, আমি বিএসডি বা এমআইটি লাইসেন্সের সুপারিশ করি ... আসলে অন্যান্য লাইসেন্সগুলির বেশিরভাগই ঠিক আছে। এটি কেবলমাত্র জিপিএল যা সত্যই সমস্যাযুক্ত কারণ এটি কতটা সীমাবদ্ধ এবং কীভাবে এটি অন্যকে এতে জোর করে। শেষ পর্যন্ত, এটি অত্যধিক জটিল।

আহ, হ্যাঁ, এটিও একমুখী টিকিট। জিপিএল বেশিরভাগ লাইসেন্স থেকে লাইসেন্সযুক্ত কোড / লাইব্রেরি ব্যবহার করতে পারে তবে এই লাইব্রেরি / কোডগুলি ঘুরেফিরে জিপিএল কোড ব্যবহার করতে পারে না।


এটি "উত্পন্ন কাজ" বলে। এতে কী এমন সফ্টওয়্যার অন্তর্ভুক্ত রয়েছে যা জিপিএল কোডের সাথে ডায়নামিকভাবে লিঙ্ক করে?
ডানফোন

@ ডাব্লুটিপি: অবশ্যই হ্যাঁ - এলজিপিএল এর পুরো পয়েন্টটির একটি আলাদা লাইসেন্স থাকতে হবে যা এটির অনুমতি দেয়।
মাইকেল বর্গওয়ার্ট

3
একটি GUI শেল প্রায় আবৃত একটি কম্যান্ড-লাইন প্রোগ্রাম না একটি "উদ্ভূত কাজ" হিসাবে কপিরাইট উদ্দেশ্যে সংজ্ঞায়িত।
ডেভ শেরোহমান

1
@ ডেভ শেরোহমান - এটি পরিষ্কার বলে মনে হচ্ছে না। এই প্রশ্নের স্বীকৃত উত্তর বলে: "আইএমএইচও, আত্মায়, একটি খাঁটি আবরণ যা জিপিএল প্রোগ্রামের কার্যকারিতা কেবল প্রকাশ করে তা জিপিএল হওয়া উচিত।" তারা কীভাবে যোগাযোগ করে তা কেবল প্রযুক্তিগত দিক নয়, এটি উদ্দেশ্য। উদাহরণস্বরূপ, একটি বই অনুবাদ একটি উদ্ভূত কাজ তৈরি করছে। এটিকে কিন্ডেল ফর্ম্যাটে রূপান্তর করা একটি উদ্ভট কাজ হবে। আমি একজন বিচারককে এই রায় দেখতে পেলাম যে একটি জিইউআই যুক্ত করা একটি উত্পন্ন কাজ তৈরি করছে। সতর্ক থাকুন।
স্কট হুইটলক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.