শুধু এমনকি বাইটস


64

দৃশ্যপট

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

কাজটি

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

ইনপুট

আপনার প্রোগ্রাম স্ট্যান্ডিন বা কমান্ড লাইন থেকে যে কোনও বিষয়বস্তু বা কোনও ফাইলের পথে নিয়ে যাবে।

আউটপুট

আপনার প্রোগ্রামটি যদি সত্যিকারের মানকে অবিচ্ছিন্ন করে দেয় তবে প্রদত্ত ফাইলটিতে বিজোড় বাইট থাকে বা প্রতি অষ্টম বিট শূন্য থাকলে মিথ্যা থাকে als

নির্ণায়ক

এটি কোড গল্ফ, সংক্ষিপ্ততম প্রোগ্রাম যা টাস্কের জয়কে সম্পূর্ণ করে। ফাইল উত্স কোডের প্রতি অষ্টম বিটকে বৈধ জমা দেওয়ার জন্য অবশ্যই শূন্য হতে হবে। আমি আপনার জমা দেওয়ার ক্ষেত্রে আপনার উত্স কোডের বাইনারিগুলির একটি অনুলিপি সহ সুপারিশ করব would

স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।

পরীক্ষার মামলা

(এএসসিআইআই এনকোডিংয়ে) ইনপুট:

"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~

Output:
falsy

Input:
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}

Output:
truthy

Input:
LOREMIPSVMDOLORSITAMETCONSECTETVRADIPISCINGELITSEDDOEIVSMODTEMPORINCIDIDVNTVTLABOREETDOLOREMAGNAALIQVA
VTENIMADMINIMVENIAMQVISNOSTRVDEXERCITATIONVLLAMCOLABORISNISIVTALIQVIPEXEACOMMODOCONSEQVAT
DVISAVTEIRVREDOLORINREPREHENDERITINVOLVPTATEVELITESSECILLVMDOLOREEVFVGIATNVLLAPARIATVR
EXCEPTEVRSINTOCCAECATCVPIDATATNONPROIDENTSVNTINCVLPAQVIOFFICIADESERVNTMOLLITANIMIDESTLABORVM

Output:
truthy

পরামর্শ

  • ভাষা নির্বাচন করুন বুদ্ধিমানভাবে এই চ্যালেঞ্জ প্রতিটি ভাষায়ই সম্ভব নাও হতে পারে

  • ইউনিক্স কমান্ড xxd -b <file name>কনসোলে একটি ফাইলের বাইনারি মুদ্রণ করবে (কিছু অতিরিক্ত বিন্যাসের সামগ্রী সহ)

  • যতক্ষণ না অন্যান্য সমস্ত বিধি অনুসরণ করা হয় আপনি এএসসিআইআই যেমন ইউটিএফ -8 ব্যতীত অন্য এনকোডিংগুলি ব্যবহার করতে পারেন


2
কিছু ভাষায় মাল্টি-লাইন ইনপুট পড়তে বেশ সময় লাগে, তবে এই চ্যালেঞ্জটি সহজ হতে বোঝানো পছন্দ করে না, তাই সম্ভবত এটি ঠিক আছে। : পি ইনপুট খালি থাকতে পারে?
ডেনিস

9
!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}যে কেউ যত্ন করে তার জন্য নিষিদ্ধ মুদ্রণযোগ্য ASCII অক্ষর। অনুমোদিত মুদ্রণযোগ্য এএসসিআইআই অক্ষরগুলি " $&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~
প্যাট্রিক রবার্টস

9
বেশ সহজ যে সমস্ত স্বর নিষিদ্ধ ...
...-)

4
স্বাগতম, বিএফের পক্ষে এই চ্যালেঞ্জের সুযোগ থাকার পক্ষে অনেক কিছুই।
TLW

2
আরও মনে রাখবেন যে ডস / উইন্ডোজ ফাইলে আপনার যদি কোনও লাইন ব্রেক [CR]থাকে তবে এর বিজোড় বিট রয়েছে। আমি আশা করছিলাম যে হোয়াইটস্পেস নিরাপদ, তবে হায় [TAB]। আপনি যদি পুরানো স্কুলে যেতে চান, EBCDIC আপনাকে তিনটি স্বর দেয়।
গিটারপিকার

উত্তর:



21

বেফুঞ্জ, 36 বাইট

আমি জানি এটি একটি পুরানো প্রশ্ন, তবে আমি এটি চেষ্টা করে দেখতে চেয়েছিলাম কারণ আমি ভেবেছিলাম এটি বেফুঞ্জে একটি আকর্ষণীয় চ্যালেঞ্জ হবে।

>~:0`|
>20`:>$.@
|` " "<
*8*82<^p24*

এটি অনলাইন চেষ্টা করুন!

1যদি ইনপুটটি দূষিত হয় (যেমন একটি বিজোড় বাইট থাকে), এবং 0যদি ঠিক থাকে তবে এটি আউটপুট করে ।

ব্যাখ্যা

সমস্যাটি কীভাবে /(ডিভাইড) বা %(মডুলো) কমান্ড অ্যাক্সেস না করে বিজোড় বাইটগুলি নির্ধারণ করতে পারে । সমাধানটি ছিল 128 (ক্রম 28*8**) দ্বারা মানটি গুন করা , তারপরে সেই ফলাফলটি খেলার মাঠে লিখুন। কঠোরভাবে স্ট্যান্ডার্ড ইন্টারপ্রেটারে, প্লেফিল্ড কোষগুলি 8 বিট মানগুলিতে স্বাক্ষরিত হয়, তাই 128 দ্বারা গুণিত একটি বিজোড় সংখ্যাটি -1 হয়ে যায় এবং এমনকি একটি সংখ্যা 0 হয়ে যায়।

অন্য কৌশলটি ছিল g(1) কমান্ড অ্যাক্সেস না করে প্লেফিল্ড থেকে -1 বা 0 পিছনে পড়া । এটির জন্য কাজটি হ'ল একটি বিদ্যমান স্ট্রিং সিকোয়েন্সের ( " ") এর মাঝখানে মানটি লিখতে হবে , তারপরে সেই সিক্যুয়েন্সটি স্ট্যাকের সাথে সংযুক্ত মানটিকে ঠেলে দিতে হবে। সেই সময়ে, বাইটের বিজোড়তা নির্ধারণ করা একটি শূন্যের চেয়ে কম সাধারণ পরীক্ষা।

একটি চূড়ান্ত দিক আলোচনা করা মূল্য আউটপুট। ভুয়া ক্ষেত্রে, আমরা >$.স্ট্যাকের কেবল একটি মান দিয়ে ক্রমটি পৌঁছেছি, সুতরাং আউটপুটকে শূন্য করে $তোলে স্ট্যাকটি সাফ করে .। সত্য ক্ষেত্রে, আমরা পথ অনুসরণ 20`:>$.। যেহেতু দুটি শূন্যের চেয়ে বড়, তুলনাটি একটিটিকে স্ট্যাকের দিকে ঠেলে দেয় এবং এটি :একটি সদৃশ অনুলিপি তৈরি করে যাতে $আউটপুট পাওয়ার আগে এটি নামবে না।


1
এটি দেরি এবং নতুন হতে পারে তবে এটি ইতিমধ্যে আমার প্রিয় উত্তর।
গম উইজার্ড 3

@ ওয়েট উইজার্ড আমি কেবল এখনই বুঝতে পেরেছি কেন এই উত্তরটি এত বেশি মনোযোগ পাচ্ছে। অনুগ্রহ করার জন্য আপনাকে ধন্যবাদ!
জেমস হোল্ডারেন্স

12

সিজেএম (11 বাইট)

"r2":(~f&2b

অনলাইন ডেমো

বিজোড় বাইটগুলি এড়ানোর জন্য কৌশলগুলি ছড়িয়ে দেওয়া, এটি হ্রাস পায়

q1f&2b

যা ইনপুটটি পড়ছে, মানচিত্রকে কিছুদূর এগিয়ে নিয়ে যায় এবং এর সাথে 1, এবং তারপরে একটি বেস রূপান্তর সম্পাদন করে, যদি ANDS এর সমস্তগুলি শূন্য হয় zero


3
এই কোডটি দুঃখজনক:(
betseg

কারণ এটি কেবলমাত্র @ বিটসেকের অর্ধেক অক্ষর থাকতে পারে
রোমান গ্রাফ

9

মুদ্রণযোগ্য .কম ফাইল, 100 বাইট

^FZjfDXVL\,LPXD$$4"PXD,lHPXDjJXDRDX@PXDjtXDH,nPXDj@XD4`@PXD,ZHPXD4,@PXD4:4"PXDH,\PXD4"PXD,hPXDRDX@P\

Hexdump:

00000000  5e 46 5a 6a 66 44 58 56  4c 5c 2c 4c 50 58 44 24  |^FZjfDXVL\,LPXD$|
00000010  24 34 22 50 58 44 2c 6c  48 50 58 44 6a 4a 58 44  |$4"PXD,lHPXDjJXD|
00000020  52 44 58 40 50 58 44 6a  74 58 44 48 2c 6e 50 58  |RDX@PXDjtXDH,nPX|
00000030  44 6a 40 58 44 34 60 40  50 58 44 2c 5a 48 50 58  |Dj@XD4`@PXD,ZHPX|
00000040  44 34 2c 40 50 58 44 34  3a 34 22 50 58 44 48 2c  |D4,@PXD4:4"PXDH,|
00000050  5c 50 58 44 34 22 50 58  44 2c 68 50 58 44 52 44  |\PXD4"PXD,hPXDRD|
00000060  58 40 50 5c                                       |X@P\|
00000064

উত্সটির খুব আলগা সংজ্ঞাটি এমন কোনও কিছু হিসাবে ব্যবহার করা যা কোনও লোক যথাযথভাবে টাইপ করতে পারে এবং EICAR স্ট্যান্ডার্ড অ্যান্টিভাইরাস টেস্ট ফাইল দ্বারা অনুপ্রাণিত ( বুগট্রাকের "EICAR টেস্ট ফাইলটির সাথে আরও মজা করুন" )।

কেবল প্রিন্টযোগ্য অ-বিজোড় এএসসিআইআই বাইট ব্যবহার করে (পাশের নোট: শব্দগুলিকে প্রভাবিত করে এমন অপকডগুলি বিজোড় বলে মনে হয়, ডাব্লু বিটটি কিছু অপকোডের এলএসবি), এটি এসপি-তে কোডের একটি অংশ তৈরি করে (যা আমরা আমাদের জেনারেটিং কোডের ঠিক আগে রেখেছি) , এবং কার্যকরকরণ উত্পন্ন কোডের মধ্যে পড়ে execution

এটি এই সত্যটি ব্যবহার করে যে স্ট্যাকটি প্রাথমিকভাবে পিএসপি শুরু করার জন্য একটি নিকটবর্তী পয়েন্টার ধারণ করে এবং পিএসপি শুরুতে INT 20hনির্দেশনা রয়েছে ( https://stackoverflow.com/questions/12591673/ এ সম্পর্কে আরও তথ্য )।

আসল উত্স:

; we want to generate the following fragment of code

;  5E                pop si             ; zero SI (pop near pointer to start of PSP)
;  46                inc si             ; set SI to 1
; loop:
;  B406              mov ah,0x6         ; \
;  99                cwd                ; >
;  4A                dec dx             ; > D-2106--DLFF
;  CD21              int 0x21           ; > DIRECT CONSOLE INPUT
;  7405              jz end             ; > jump if no more input
;  40                inc ax             ; > lsb 0/1 odd/even
;  21C6              and si,ax          ; > zero SI on first odd byte
;  EBF3              jmp short loop     ; /
; end:
;  96                xchg ax,si         ; return code
;  B44C              mov ah,0x4c        ; D-214C
;  CD21              int 0x21           ; TERMINATE WITH RETURN CODE

 pop si             ; this two opcodes don't need to be encoded
 inc si

 pop dx             ; DX = 20CD (int 0x20 at start of PSP)
 push byte +0x66
 inc sp
 pop ax
 push si
 dec sp
 pop sp             ; SP = 0x0166
 sub al,0x4c        ; B4
 push ax
 pop ax
 inc sp
 and al,0x24
 xor al,0x22        ; 06
 push ax
 pop ax
 inc sp
 sub al,0x6c
 dec ax             ; 99
 push ax
 pop ax
 inc sp
 push byte +0x4a    ; 4A
 pop ax
 inc sp
 push dx            ; [20]CD
 inc sp
 pop ax
 inc ax             ; 21
 push ax
 pop ax
 inc sp
 push byte +0x74    ; 74
 pop ax
 inc sp
 dec ax
 sub al,0x6e        ; 05
 push ax
 pop ax
 inc sp
 push byte +0x40    ; 40
 pop ax
 inc sp
 xor al,0x60
 inc ax             ; 21
 push ax
 pop ax
 inc sp
 sub al,0x5a
 dec ax             ; C6
 push ax
 pop ax
 inc sp
 xor al,0x2c
 inc ax             ; EB
 push ax
 pop ax
 inc sp
 xor al,0x3a
 xor al,0x22        ; F3
 push ax
 pop ax
 inc sp
 dec ax
 sub al,0x5c        ; 96
 push ax
 pop ax
 inc sp
 xor al,0x22        ; B4
 push ax
 pop ax
 inc sp
 sub al,0x68        ; 4C
 push ax
 pop ax
 inc sp
 push dx            ; [20]CD
 inc sp
 pop ax
 inc ax
 push ax            ; 21
 pop sp             ; now get the stack out of the way

9

এমএটিএল , 7 বাইট

l$Z$2\z

উত্স কোডটি ইউটিএফ -8 এনকোডিং ব্যবহার করে। সোর্স বাইটগুলি হ'ল (দশমিক)

108    36    90    36    50    92   122

ইনপুটটি একটি ফাইলের নাম, একক উদ্ধৃতিতে সংযুক্ত স্ট্রিং হিসাবে নেওয়া। আউটপুটটি ফাইলটিতে বিজোড় বাইটের সংখ্যা, যা সত্য সত্য যদি ইফফ ননজারো হয়।

ব্যাখ্যা

l    % Push a 1. We use `l` instead of `1` to have an even value
$    % Input specificication. This indicates that the next function takes 1 input
Z$   % Input file name implicitly, read its raw bytes and push them as an array of chars
2\   % Modulo 2
z    % Number of nonzero values. This gives the number of odd bytes. Implicitly display

8

সিজেম, 18 17 15 বাইট

"<rj":(((*~:|X&

ধরে নেওয়া যায় যে লোকেলটি ল্যাটিন -১ এ সেট করা আছে। এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

সোজা সমাধান নিম্নলিখিত হিসাবে যায়।

q       e# Read all input from STDIN and push it as a string on the stack.
 :i     e# Cast each character to its code point.
   :|   e# Take the bitwise OR of all code points.
     X  e# Push 1.
      & e# Take the bitwise AND of the logical OR and 1.

দুর্ভাগ্যক্রমে, অক্ষরগুলি qএবং iউত্স কোডে উপস্থিত হতে পারে না। এই সমস্যাটি নিয়ে কাজ করার জন্য, আমরা গতিশীলভাবে উপরের উত্স কোডের একটি অংশ তৈরি করতে যাচ্ছি, তারপরে স্ট্রিংটি মূল্যায়ন করুন।

"<rj"         e# Push that string on the stack.
     :(       e# Decrement all characters, pushing ";qi".
       (      e# Shift out the first character, pushing "qi" and ';'.
        (     e# Decrement ';' to push ':'.
         *    e# Join "qi" with separator ':', pushing "q:i". 
          ~   e# Evaluate the string "q:i", which behaves as explained before.

7

পাইথ, 20 13 বাইট

vj0>LhZ.BRj.z

বা বাইনারি:

00000000: 01110110 01101010 00110000 00111110 01001100 01101000  vj0>Lh
00000006: 01011010 00101110 01000010 01010010 01101010 00101110  Z.BRj.
0000000c: 01111010                                               z

এটি অনলাইনে চেষ্টা করুন

কিভাবে এটা কাজ করে

           .z   all lines of input
          j     join on newline
       .BR      convert each character to binary
   >LhZ         take the last (0 + 1) characters of each binary string
 j0             join on 0
v               evaluate as an integer

ফলাফলগুলির পূর্ণসংখ্যাটি সত্যবাদী (ননজারো) হয় যদি কোনও বাইট বিজোড় হয়।


4

জেলি , 13 বাইট

24‘ịØBvF|\ṪBṪ

উদ্ধৃত কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুটটি প্রত্যাশা করে। এটি অনলাইন চেষ্টা করুন!

Hexdump

0000000: 32 34 fc d8 12 42 76 46 7c 5c ce 42 ce           24...BvF|\.B.

যদি বিজোড় বাইট সীমাবদ্ধতা জন্য ছিল না, এই সমানভাবে 6 বাইট কাজ হবে: O%2¬Ạ¬
এরিক আউটগলফার

4

রেটিনা , 106 বাইট

প্রতিটি অনুমোদিত অক্ষর সরিয়ে দেয়, তারপরে বাকী কোনও অক্ষরের সাথে মেলে। সত্যবাদী মানগুলি পাওয়া যায় এমন অক্ষরের সংখ্যা। ভুয়া মান হবে 0

`"| |\$|&|\(|\*|,|\.|0|2|4|6|8|:|<|>|@|B|D|F|H|J|L|N|P|R|T|V|X|Z|\\|\^|`|b|d|f|h|j|l|n|p|r|t|v|x|z|\||~

.

এটি অনলাইনে চেষ্টা করুন

যেহেতু .ডিফল্টরূপে নতুন লাইনের সাথে মেলে না, তাই আমি সেগুলি সরাতে হবে না।


1

পার্ল 5 + -p0, 136 বাইট

অন্যান্য উত্তরের মতো, এটি সমস্ত বাইটগুলি সরিয়ে দেয় এবং কোনও বিজোড় বাইট ছেড়ে দেয় (যা সত্য y

tr<�
 "$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~€‚„†ˆŠŒŽ’”–˜šœž ¢¤¦¨ª¬®°²´¶¸º¼¾ÀÂÄÆÈÊÌÎÐÒÔÖØÚÜÞàâäæèêìîðòôöøúüþ><>d

এটি অনলাইন চেষ্টা করুন!


-0নিউলাইনগুলিতে কিছুই করে না । এটি কেবলমাত্র ইনপুটটিকে কীভাবে বিভক্ত করবেন তা নির্ধারণ করে, এটি কোনও অক্ষর অপসারণ করে না।
janrjan জোহানসেন

ওও খুব খারাপ।
janrjan জোহানসেন

@ আরজান জোহেনসেন হ্যাঁ, আপনি ঠিক বলেছেন -0, আমি পুরো ব্লকটি পিণ্ডের মতো করতে চেয়েছিলাম , তবে এটির কিছু উচিত নয়, তবে আমি এটিকে ঘিরে ধরতে পারি না ... খুব খারাপ! আমি এই মন্তব্যগুলি পরিষ্কার করব। মাথা আপ জন্য ধন্যবাদ যদিও!
ডম হেস্টিংস

এখন এটি কাজ করে? অনুমান করি আমার কিছু মন্তব্য মুছে ফেলা উচিত। সম্পাদনা ডিফারেন্ট থেকে আমি দেখতে পাচ্ছি আপনি এখন প্রোগ্রামের প্রতিটি এমনকি বাইটকে অন্তর্ভুক্ত করছেন। আমি মনে করি আপনি সম্ভবত এটি বলতে চাইবেন, যেহেতু এই সমস্ত চরিত্রগুলি দেখা যায় না (আমার পক্ষে কমপক্ষে)।
janrjan জোহানসেন

@ Janর্জনজহানসেন হ্যাঁ! আমি এখন এটি পেয়েছি বলে মনে করি। আমি মনে করি না যে অন্য সমস্ত উত্তরগুলি এমনকি সমস্ত বাইটগুলিও কভার করে, আমি মনে করি যে কয়েকটি কেবল প্রিন্টযোগ্য এএসসিআইতে কাজ করে। আমি যথেষ্ট আত্মবিশ্বাসী এটি এখন যা চেয়েছিল তা করে। আমি আশা করি যাই হোক!
ডম হেস্টিংস

0

জাপট , 10 বাইট

ø0ôH² ®dZÄ

এটি অনলাইন চেষ্টা করুন!

জাপটের কোডপেজটি আইএসও -8859-1। কোডটি falseযখন নিজেই একটি স্ট্রিং হিসাবে প্রবেশ করা হয় তখন একটি বৈধ জমা দেয়।

আনপ্যাকড এবং কীভাবে এটি কাজ করে

Uø0ôHp2  mZ{ZdZ+1

Uø      Does input string contain any element in the following array...?
0ôHp2     Range of 0 to 32**2, inclusive
mZ{       Map...
ZdZ+1       Convert the number Z to a char having charcode 2*Z+1

হচ্ছে না String.c(charcode পাওয়া, অথবা charcodes উপর MAP) ব্যাথা ছিল, কিন্তু সৌভাগ্যবশত নেই Number.d(গৃহস্থালির কাজ নম্বর রূপান্তর)।

দেখা যাচ্ছে যে সিপাম, পাইথ এবং জেলির উপরে জাপট জিতেছে :)


সীমাবদ্ধতা ছাড়াই, 6 টি বাইটে এটি করার বেশ কয়েকটি উপায় রয়েছে (আবার সিজেএম এবং জেলির সাথে সমান পার হওয়া):

®c uÃn

Unpacked: UmZ{Zc u} n

UmZ{   Map on each char...
Zc u     Convert to charcode modulo 2
}
n      Convert the resulting string to number

"000..000"এটি কত দিন নির্বিশেষে 0 নম্বরে (মিথ্যা) রূপান্তরিত হয়। অন্যদিকে, 1 থাকা যে কোনও কিছুই ননজারোতে রূপান্তরিত হয় double, বা Infinityএটি খুব বড় হলে (উভয় সত্যই)।

¬d_c u

Unpacked: q dZ{Zc u

q    Convert to array of chars
dZ{  Is something true when mapped with...
Zc u   Convert each char to charcode modulo 2

আরও সোজা পদ্ধতি যা সরাসরি ফল দেয় trueবা false

বা, 5 টি বাইট সমাধান -dফ্ল্যাগের সাহায্যে এমনকি সম্ভব :

¨c u

Unpacked: q mZ{Zc u

q     Convert to array of chars
mZ{   Map...
Zc u    Convert to charcode modulo 2

      Result is array of zeros and ones
-d    Apply .some() on the resulting array
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.