উইন্ডোজ ত্রুটি বক্সগুলি পরবর্তী স্তরে to


15

আপনি সেই উইন্ডোজ বাক্সগুলি জানেন যেখানে আপনি কেবল একটি কাজ করতে পারেন?

উইন্ডোজ ত্রুটি বাক্স: এগিয়ে যাওয়া আপনার হার্ড ড্রাইভের সামগ্রী মুছে ফেলবে।  আপনি কি করতে চান?  <প্রচার> <মুছে ফেলুন>

এর পরবর্তী স্তরে নিয়ে যাওয়া যাক!

চ্যালেঞ্জ

এমন একটি বোতামের সাহায্যে একটি ডায়ালগ বক্স করুন যা আপনার কর্সারকে সর্বত্র অনুসরণ করে!

চশমা

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

অনুমান যে আপনি করতে পারেন

  • আপনি ধরে নিতে পারেন যে কার্সার অঙ্কন ক্যানভাসের মধ্যেই থাকবে।
  • আপনি ধরে নিতে পারেন যে উইন্ডোটি ফোকাসে থাকবে, তবে যতক্ষণ না বোতামটি টিপবে না ততক্ষণ আপনি উইন্ডোটিকে ফোকাসের বাইরে রাখবেন না।

সিউডোকোড উদাহরণ

এখানে সিউডোকোডের কয়েকটি উদাহরণ রয়েছে:

Open Dialog Box
Add Button to Dialog Box at position X, Y
WHILE True:
    SET Dialog Box to CursorX - X, CursorY - Y

এই চ্যালেঞ্জের জন্য পরীক্ষার কেস সরবরাহ করা যায় না

এটি একটি কোড-গল্ফ চ্যালেঞ্জ, তাই 14 ই মার্চ (পাই দিবস) এর মধ্যে সংক্ষিপ্ততম বৈধ জমাটি জয়!

উত্তর:


9

ম্যাটল্যাব, 86 63 বাইট

set(warndlg,'WindowButtonM',@(s,e)movegui(get(0,'Po')-[99,20]))

এই দ্রষ্টব্যটি ম্যাটল্যাবের (সাধারণত বিরক্তিকর) আংশিক সম্পত্তির নাম ব্যবহার করার ক্ষমতার সুযোগ নেয় যতক্ষণ না প্রদত্ত অংশটি কেবল স্বার্থের সম্পত্তির জন্যই অনন্য।

এই সমাধানটি warndlg"ওকে" বোতামের সাহায্যে একটি সতর্কতা ডায়ালগ তৈরি করতে বিল্টিন ব্যবহার করে । এই ফাংশনটি একটি figureহ্যান্ডেল দেয় যা আমরা তারপরে WindowButtonMotionFcnকলব্যাক সেট করতে (সংক্ষিপ্ত নাম ব্যবহার করে 'WindowButtonM') ব্যবহার করতে পারি ।

উইন্ডোটির অভ্যন্তরে কার্সারটি সরিয়ে নেওয়ার সময় যে কলব্যাকটি মূল্যায়ন করা হয় তা কার্সারের বর্তমান অবস্থান পায় (এর বৈশিষ্ট্যটি ব্যবহার করে PointerLocation) এটির সংক্ষিপ্ত নাম ব্যবহার মূল গ্রাফিক্স সামগ্রীর ব্যবহার করে 'Po')। তারপরে আমরা একটি অফসেট প্রয়োগের পরে চিত্রটির নতুন অবস্থানটি Positionব্যবহার করে moveguiএবং নির্দিষ্ট করে নির্দিষ্ট করে রাখি [99, 20]যাতে কার্সারটি বোতামে রাখা হয়।

অবশেষে বোতামটি ক্লিক করা হলে চিত্রটি মুছে ফেলা হবে এবং সমস্ত কলব্যাক স্বয়ংক্রিয়ভাবে প্রকাশিত হবে।

এখানে চিত্র বর্ণনা লিখুন


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

3
@AlexL। দুর্ভাগ্যক্রমে এই কোডটি কীভাবে কাজ করে তা দেখানোর জন্য কোনও নিখরচায় অনলাইন ইউটিলিটি নেই। এমনকি থাকলেও ইউআই নিয়ন্ত্রণগুলি ওয়েব ইন্টারফেসে রেন্ডার হবে না। কোডটি কাজ করে দেখানোর জন্য আমি জিআইএফ অন্তর্ভুক্ত করেছি।
সুইভার

ঠিক আছে. আমি তখন পরীক্ষার বিরক্ত করব না। ভাল কাজ, একটি +1 আছে।
হাইপারনিউটারিনো

উইন্ডোজ R2014a এ কয়েকটি সমস্যা। ডায়লগ বাক্সটি অনুসরণ করে থামিয়ে দিতে পারেন: ১. আপনার মাউসটি (ডায়লগের সাথে) বাক্সটি টাস্কবারে সরিয়ে নিয়ে যাওয়া (আমার টাস্কবারটি স্ক্রিনের ডানদিকে রয়েছে) এবং ডায়ালগ বক্সটি মাউস অনুসরণ করা বন্ধ করবে; ২. আপনার মাউসটিকে দ্রুত পর্যায়ে নিয়ে যাওয়া যেমন মাউসটি কোনও ফ্রেমের ডায়ালগ বক্সের বাইরে থাকে, সেই বাক্সে মাউস অনুসরণ করা বন্ধ হয়ে যায়। ডায়ালগ বক্সের স্টাইলটি স্পষ্টতই অন্য কোনও কিছুর উপর নির্ভরশীল ... বর্তমান কোড সহ, আমার মাউস সবেমাত্র ঠিক আছে বোতামটি মিস করেছে এবং আমাকে কাজ করতে 99 থেকে 120 পরিবর্তন করতে হবে। যাইহোক, ভাল কাজ!
উন্মাদ লি

আমার দৃষ্টিকোণ থেকে এটিই আমি দেখছি। আমার মাউস কোথাও সেই রেড ক্রোশারের কাছে।
উন্মাদ লি

4

সি # (উইন্ডোজ ফর্ম অ্যাপ্লিকেশন), 200 114 বাইট

void F(){var p=Cursor.Position;MouseMove+=(r,t)=>{Controls.Add(new Button());Location=new Point(p.X-30,p.Y-40);};}

আন Golfed

void F()
{
     Controls.Add(new Button());

     MouseMove += (r, t) =>
     {
        var p = Cursor.Position;
        Location = new Point(p.X - 30, p.Y - 40);
     };
}

পুরানো 200-বাইট সমাধান:

public void F(){var t=this;var b=new Button();b.Click+=delegate{t.Close();};t.Controls.Add(b);t.Show();for(;;){Application.DoEvents();t.Location=new Point(Cursor.Position.X-30,Cursor.Position.Y-40);}}

আন Golfed

    public void F()
    {
        var t = this;
        var b = new Button();

        b.Click += delegate
        {
            t.Close();
        };

        t.Controls.Add(b);
        t.Show();

        for (;;)
        {
            Application.DoEvents();
            t.Location = new Point(Cursor.Position.X - 30, Cursor.Position.Y - 40);
        }
    }

এখানে চিত্র বর্ণনা লিখুন



1
অপেক্ষা করুন .... সুতরাং সি # তে, আপনি কি করে ইভেন্ট শ্রোতাদের যুক্ত করতে পারেন Event += listener? এটি দুর্দান্ত :-)
ETH প্রোডাকশনগুলি

আপনি যদি অপারেটরটিকে ওভারলোড করে থাকেন তবে ইথ প্রডাকশনগুলি সম্ভবত সি ++ এও করতে পারত +। এখনও খুব সংক্ষিপ্ত।
কার্সিজিনিট


1

জাভা 7, 294 289 286 264 220 বাইট

import java.awt.*;public class B extends java.applet.Applet{Button b;public B(){add(b=new Button());}public void paint(Graphics g){Point p=MouseInfo.getPointerInfo().getLocation();b.setLocation(p.x-9,p.y-65);repaint();}}

-22 MouseInfo (থেকে চুরি ধন্যবাদ বাইট Zavada ) আমি AWT লাইব্রেরি> পছন্দ করি না।>

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

পপআপ


ভাল কাজ, +1! আমি সম্মতি জানাই, ডাব্লু লাইব্রেরিগুলি কিছুটা কুৎসিত, তবে এটি গল্ফিয়ার।
হাইপারনিউট্রিনো

আপনি মুছে ফেলা 24 বাইট সংরক্ষণ করতে পারেনimport java.awt.event.*;
জাভাদা

@ জাভাডা *ওয়াইল্ডকার্ড পুনরাবৃত্তভাবে সাবপ্যাকেজ আমদানি করে না। আমি প্রয়োজন java.awt.eventজন্য MouseAdapterএবংMouseEvent
অকর্মা

দুঃখিত, আমি মোট ব্রেইনফার্ট ছিল!
জাভাদা

1

জাভা, 172 199 235 বাইট

Golfed:

import java.awt.*;interface D{static void main(String[]z){new javax.swing.JDialog(){{setSize(9,99);setVisible(1>0);add(new Button());a();}void a(){for(Point p;;p=MouseInfo.getPointerInfo().getLocation(),setLocation(p.x-9,p.y-70));}};}}

Ungolfed:

import java.awt.*;
interface D{
    static void main(String[]z){
        new javax.swing.JDialog(){
            {
                setSize(9,99);
                setVisible(1>0);
                add(new Button());
                a();
            }
            void a(){

                for(;;) {
                    Point p = MouseInfo.getPointerInfo().getLocation();
                    setLocation(p.x-9,p.y-70);
                }
            }
        };

    }
}

ব্যাখ্যা: আমি আমার নতুন জেডায়লগ ঘোষণায় ডাবল ব্রেস সূচনা ব্যবহার করি। এই JDialog সম্প্রসারণ ব্যতীত দ্বারা বাইট সংরক্ষিত (আমি বাদে বাইট সংরক্ষণ করতে সক্ষম হবেন publicথেকে main)। JDialog এর বেনামে সাবক্লাসের ভিতরে আমি এটিকে দৃশ্যমান করে তুলি ( 1>0পরিবর্তে ব্যবহার করে true) এবং কল করি a()যা প্রয়োজনীয় কারণ ইনটিটালাইজারের একটি সংকলন-সময় ত্রুটি থাকে যদি লুপটি সাধারণত এতে বসে থাকে। আমি একটি মাউস শ্রোতা যুক্ত করার সাথে যুক্ত সমস্ত অতিরিক্ত কোডের চেয়ে মাউসইনফো ব্যবহার করতে পছন্দ করেছি।

সম্পাদনা করুন: যোগ করতে 27 টির সংখ্যা বাড়িয়ে দিতে হয়েছিল add(new java.awt.Button()); । আমি ভেবেছিলাম প্রযুক্তিগতভাবে জডিডোগস একটি অন্তর্নিহিত বোতাম ছিল, কিন্তু আমি ভুল বলে মনে হচ্ছে।

সম্পাদনা 2: setSizeবোতামটি ক্লিকযোগ্যযোগ্য করতে মাউসের অবস্থান যুক্ত এবং অফসেট করতে হয়েছিল।

কথোপকথন


এটি যথেষ্ট কাজ করে না; আমি বোতাম টিপতে পারছি না কারণ কার্সারটি ক্রমাগত উইন্ডোটির উপরের বাম কোণে থাকে। দয়া করে এটি ঠিক করুন! :)
হাইপারনিউটারিনো

দুঃখিত, এখনই স্থির করা উচিত!
জাভাদা

হাঁ। এখন কাজ! +1
হাইপারনিউটারিনো

আমি জানতাম না / মনে রাখেনি মাউসআইএনফো একটি জিনিস ছিল। এটি একটি ঝরঝরে উত্তর।
পোকে দিন

1
@ পোকে ধন্যবাদ। আমি আপনার উত্তরটি অ্যাপলেটগুলি ব্যবহার করে দেখেছি এবং অ্যাপলেটগুলির প্রতি আমার অযৌক্তিক ঘৃণা রয়েছে, তাই আমি অনুভব করেছি যে এটি দোলাচলে করা খুব সুন্দর হবে। আপনার উত্তরটি যদিও দুর্দান্ত তবে :)
জাভাদা

0

পরিবর্তিত প্রসেসিং Js 102 108 বাইট

draw=function(){background(0);rect(mouseX,mouseY,9,9);rect(mouseX,mouseY,4,4);if(mouseIsPressed){fill(9);}};

এটি অনলাইন চেষ্টা করুন! সবেমাত্র আমার লিংক আপডেট!

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


আপনি ভরাট কাছাকাছি বন্ধনীগুলি মুছে ফেলতে পারেন
ক্রিটিং লিথোস

@ ক্রিটিক্সিলিথোস আমি আসলে পারি না :(
ক্রিস্টোফার

এটি একটি কঠোরভাবে ভাষার সংস্করণ
ক্রিস্টোফার

আপনি তখন অন্য ধরণের প্রসেসিং ব্যবহার করতে পারেন বাইটস সংরক্ষণ করতে
ক্রিটিক্সী লিথোস

@ ক্রিটিক্সিলিথস আসলে তারপরে আমাকে একটি পর্দার আকারও সেট আপ করতে হবে এবং এটি বাইট যুক্ত করবে। । (সাইড নোট আমি শুধু "জন্য অনুপযুক্ত বিষয়বস্তু চ্যাট থেকে লাথি পেয়েছিলাম কোন ধারণা কেন এটা একটি বট ছিলেন chat.stackexchange.com/messages/35631789/history কেন
ক্রিস্টোফার

0

ক্লোজার, 525 বাইট

(ns d(:require[quil.core :as q][quil.middleware :as m]))(def w 500)(def h 200)(def t 30)(def n 200)(def m 100)(q/defsketch d :size[999 999]:setup(fn[](q/stroke 0 0 0)(q/text-font(q/create-font""(* t 1.3))){:x 0 :y 0}):draw(fn[{x :x y :y}](let[r q/rect f q/fill o(- x(/ w 2))p(- y (/ h 2))](q/background 99 99 99)(f 0 0 255)(r o p w h)(f 200 200 200)(r o(+ p t)w(- h t))(f 255 0 0)(r(-(+ o w)t)p t t)(f 255 255 255)(q/text"X"(- (+ o w) t)(+ p t))(r(- x(/ n 2))(- y (/ m 2))n m))):mouse-moved(fn[_ e]e):middleware[m/fun-mode])

কি না একটি জেনুইন উইন্ডোজ ডায়ালগ তৈরি করুন। পরিবর্তে, এটি একটি নকল তৈরি করে এবং মাঝখানে একটি ডামি (অ-কার্যক্ষম) বোতাম তৈরি করে।

মন্তব্যগুলিতে এটি ওপি দ্বারা অনুমোদিত হয়েছিল।

কোয়েল লাইব্রেরি ব্যবহার করে ।

(ns bits.golf.following-dialog
  (:require [quil.core :as q]
            [quil.middleware :as m]))

(def width 500)
(def height 200)

(def top-bar-height 30)

(def b-width 200)
(def b-height 100)

(defn -main []
  (q/defsketch d
    :size [999 999]
    :setup (fn []
             ; Set the border color
             (q/stroke 0 0 0)

             ; Set the font size
             (q/text-font (q/create-font "" (* top-bar-height 1.3)))

             ; The initial state
             {:x 0 :y 0})

    :draw (fn [{x :x y :y}]
            (let [r q/rect ; Shortcut functions for brevity
                  f q/fill

                  ; The top-left coordinates of the window
                  window-x  (- x (/ width 2))
                  window-y (- y (/ height 2))]

              ; Wipe the previous screen
              (q/background 99 99 99)

              ; Blue top bar
              (f 0 0 255)
              (r window-x
                 window-y
                 width height)

              ; Grey window background
              (f 200 200 200)
              (r window-x
                 (+ window-y top-bar-height)
                 width (- height top-bar-height))

              ; Red top right "button"
              (f 255 0 0)
              (r (- (+ window-x width)
                    top-bar-height)
                 window-y
                 top-bar-height top-bar-height)

              ; The X
              (f 255 255 255)
              (q/text "X" (- (+ window-x width) top-bar-height)
                          (+ window-y top-bar-height))

              ; The main "button"
              (r (- x (/ b-width 2))
                 (- y (/ b-height 2))
                 b-width
                 b-height)))

    ; When the mouse is moved, set the current state to the event object, which
    ;  conveniently has :x and :y properties
    :mouse-moved (fn [_ e] e)

    ; Needed for ease of state management. May try to factor out.
    :middleware [m/fun-mode]))

ভুয়া ডায়ালগ


আমি আপনার প্রতিশ্রুতিটি 1000 হওয়ায় এটি উত্থাপন না করার জন্য প্রলুব্ধ হই এবং এটি দেখতে খুব সুন্দর লাগে ... আমি এটিকে একটি বৈধ সমাধান হিসাবে গণনা করছি (কেবলমাত্র আমি ইতিমধ্যে একটি অনুরূপ সমাধান যা বৈধ না করে বৈধতা দিয়েছি " বাস্তব "উইন্ডো), সুতরাং একটি +1 করুন। : পি
হাইপারনিউট্রিনো

@ হাইপারনিট্রিনো ধন্যবাদ, যদিও এটি কার্যের জন্য স্থূল ওভারকিল, এবং এমনকি 1 কে রেপটিও দুর্দান্ত। আমি এটি দিয়ে মজা ছিল! সম্ভবত আমি তুলনার জন্য খুব বেশি একটি এডাব্লুটি সংস্করণ তৈরি করব। সম্ভবত অর্ধেক দৈর্ঘ্যের মতো হবে।
কার্সিজিনিট

আপনি তখন 2k অপেক্ষা করতে পারেন! : ডি
হাইপার নিউট্রিনো

0

পগ / স্লিম + সিএসএস / এসসিএসএস / কম / স্টাইলাস + ইএস 6 জাভাস্ক্রিপ্ট (98 বাইট)

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

পগ (10 ইউটিএফ -8 বাইট)

button#a X

স্টাইলাস (18 ইউটিএফ -8 বাইট)

#a{position:fixed}

জেএস (70 ইউটিএফ -8 বাইট)

onmousemove=e=>{with(a.style){top=e.clientY+'px';left=e.clientX+'px'}}

সজ্জিত, বিশৃঙ্খলাবদ্ধ এবং স্নিপেট ব্যাখ্যা করেছেন:

document.addEventListener('mousemove', function(e) {
  // Get element with an id of "id"
  var el = document.getElementById("id");
  // Set the vertical position
  el.style.top = e.clientY + 'px';
  // Set the horizontal position
  el.style.left = e.clientX + 'px';
})
/* Get element with an id of "id" */

#id {
  /* Position it relative to the viewport*/
  position: fixed;
}
<!-- A basic HTML button with an ID of "id" -->
<button id='id'>
  X
</button>


0

গণিত 226 বাইট

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

{s,d,w}={SetOptions,Dynamic,WindowMargins->m};With[{p=d@MousePosition["ScreenAbsolute"]},
m=d@{{p[[1]]-50,0},{0,p[[2]]-35}}];s[$FrontEndSession,FrontEndEventActions->{"MouseMoved":>s[a,w]}];a=CreateDialog[{DefaultButton[]},w];

PS যখন আপনি টেস্টিং শেষ করেন, সামনের শেষ বিকল্পটি সরাতে এটি চালান।

SetOptions[$FrontEndSession,FrontEndEventActions->None]

স্ক্রিন অ্যানিমেশন


কার্যকারিতা প্রমাণের জন্য আপনি কি একটি জিআইএফ যুক্ত করতে পারেন? আমি ম্যাথমেটিকাকে পরীক্ষা দিতে পারি না। ধন্যবাদ!
হাইপারনিউট্রিনো

-1

জাভাস্ক্রিপ্ট (ES6) + HTML + সিএসএস, 139 বাইট

এইচটিএমএল:

<d id=d><button>X

সিএসএস:

d{background:red;padding:9px;position:absolute

javascript:

onmousemove=e=>{with(d.style){top=e.clientY-20+'px';left=e.clientX-20+'px'}}

যেহেতু আপনি সতর্কতা ডায়ালগগুলি অবস্থান করতে পারবেন না, তাই আমি HTML এ আমার কাস্টম সুপার অভিনব ডায়ালগ তৈরি করেছি। জাভাস্ক্রিপ্ট উইন্ডো অবজেক্টে একটি ইভেন্ট হ্যান্ডলার নিবন্ধভুক্ত করে এবং ইভেন্টের স্থানাঙ্কগুলিতে অবস্থান নির্ধারণ করে।

এটি অনলাইনে ব্যবহার করে দেখুন: https://jsfiddle.net/1yohswje/


আমি এটি অবৈধ বলতে চাই, কারণ এটি বৈধ "উইন্ডো" এর মতো কিছু তৈরি করে না এবং পাশাপাশি আপনি এটিও বলতে পারবেন না যে এটি একটি বোতামযুক্ত উইন্ডো হতে বোঝায়। তবে এটি একটি আকর্ষণীয় সমাধান!
হাইপারনিউট্রিনো

@ হাইপারনিউট্রিনো আমি আমার উত্তর আপডেট করেছি। আপনি এই কি মনে করেন?
করভাস_192

ঠিক আছে. এটি এখন আমার মান মেনে চলে। একটি +1 থাকুন
হাইপার নিউট্রিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.